Автор оригинала: Matthew Davis.
Сначала мы создадим новое приложение Spring Boot , реализующее базовую конечную точку службы HTTP GET. Как только ваше приложение будет запущено и запущено, мы сможем создать образ docker и запустить контейнер docker, чтобы протестировать наш сервис. И, наконец, мы возьмем наш образ docker и развернем его в кластере Kubernetes для развертывания на уровне производства.
И, наконец, мы возьмем наш образ docker и развернем его в кластере Kubernetes для развертывания на уровне производства.
Докерфайл
Мы используем стандартное изображение jr из openjdk для запуска нашего приложения внутри:
FROM openjdk:8-jre-alpine COPY build/libs/k8-byexamples-spring-rest-0.0.1-SNAPSHOT.jar /application.jar CMD ["java", "-jar", "/application.jar"]
Сделать файл (необязательно)
Я создал простой Makefile, чтобы ускорить процесс. Просто сделайте все , чтобы создать и нажать изображение docker. Аналогично вы можете сделать k8/установить для установки манифестов kubernetes:
VERSION ?= $(shell git rev-parse HEAD) APP ?= k8-byexamples-spring-rest IMAGE ?= gcr.io/matthewdavis-byexamples/$(APP):$(VERSION) .PHONY: build all: build push build: docker build -t $(IMAGE) . run: docker run -p 8080:8080 $(IMAGE) push: docker push $(IMAGE) k8/install: kubectl apply -f manifests/ k8/delete: kubectl delete -f manifests/
Аналогично вы можете || сделать k8/установить || для установки манифестов kubernetes:
Это простой контроллер REST, который отвечает на запросы HTTP POST (т. Е.: https:///test/echo):
package com.example.k8byexamplesspringrest; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/test") public class TestRestController { @PostMapping("/echo") public ResponseEntity> testResponse(@RequestBody String body) { return new ResponseEntity<>("You said: " + body, HttpStatus.OK); } }
Хранилища исходного Кода:
Смотрите больше на https://matthewdavis.io
Оригинал: “https://www.codementor.io/@yomateo/spring-boot-docker-on-kubernetes-from-scratch-devops-software-architecture-omk197zjc”