기존 K8s 실습 에 이어 업데이트 된 버전 배포하기
🎯 목표
1️⃣ Spring Boot 앱의 코드를 살짝 수정해서 버전2 만들기
2️⃣ 새 이미지를 빌드하여 Minikube 에 올리기
3️⃣ Deployment 만 수정해서 서비스 다운 없이 교체되는 걸 확인하기
기존 HelloController 수정
package com.springk8sdemo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello K8s! 🚀 this is version2!!";
}
}
✅ Minikube 에 이미지 넣기
eval $(minikube docker-env)
./gradlew build
✅ Docker 로 V2 이미지 생성
docker build -t spring-k8s-demo:v2 .
✅ 기존 spring-k8s-deployment.yaml 파일 수정
spec:
containers:
- name: spring-k8s-demo
image: spring-k8s-demo:v2
imagePullPolicy: Never
ports:
- containerPort: 8080
(이미지 빌드 명과 동일하게)✅ 적용 하기
kubectl apply -f spring-k8s-deployment.yaml
→ 반환
deployment.apps/spring-k8s-demo configured
service/spring-k8s-service unchanged
✅ 해당 커맨드로 확인
minikube service spring-k8s-service
→ 반환
|-----------|--------------------|-------------|---------------------------|
| NAMESPACE | NAME | TARGET PORT | URL |
|-----------|--------------------|-------------|---------------------------|
| default | spring-k8s-service | 8080 | http://192.168.49.2:30080 |
|-----------|--------------------|-------------|---------------------------|
🏃 spring-k8s-service 서비스의 터널을 시작하는 중
|-----------|--------------------|-------------|------------------------|
| NAMESPACE | NAME | TARGET PORT | URL |
|-----------|--------------------|-------------|------------------------|
| default | spring-k8s-service | | http://127.0.0.1:62867 |
|-----------|--------------------|-------------|------------------------|
🎉 Opening service default/spring-k8s-service in default browser...
❗ darwin 에서 Docker 드라이버를 사용하고 있기 때문에, 터미널을 열어야 실행할 수 있습니다
👉 제공받은 http://127.0.0.1:62867/hello 로 브라우저 에서 접근

HelloController 에 작성한 Hello K8s! 🚀 this is version2!! 가 출력된다.✅ spring-k8s-deployment.yaml 파일을 바꾸고 싶은 버전으로 수정
spec:
containers:
- name: spring-k8s-demo
image: spring-k8s-demo
imagePullPolicy: Never
ports:
- containerPort: 8080
image: spring-k8s-demo:v2 에서 image: spring-k8s-demo 로 변경하고 싶은 이미지로 수정✅ 다시 빌드 하기
kubectl apply -f spring-k8s-deployment.yaml
👉 기존에 제공받은 http://127.0.0.1:62867/hello 로 브라우저 에서 접근

Hello K8s! 가 출력된다.