Kubernetes에서 "롤링 업데이트"는 애플리케이션과 서비스를 중단 없이 점진적으로 업데이트하기 위한 방법입니다.
이는 기존 버전을 점진적으로 새 버전으로 교체함으로써 서비스의 가용성과 안정성을 유지하는 것이 주요 목적입니다.
< 적용 방법론 >
<점검 point>
* Pod로 라우팅하는 NLB service의 TargetGroup이 재생성 되는 과정에서 연결 장애 유무
<절 차>
1) 현재 pod의 image 확인
kubectl get deploy
kubectl get pod
kubectl describe pods <pod명>
2) version2로 애플리케이션의 이미지 업데이트
kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2
3) update 확인
kubectl rollout status deployments/kubernetes-bootcamp
kubectl get pod
kubectl describe pods <pod명> => 이미지 field에서 이미지 버전 확인
kubectl describe services/kubernetes-bootcamp
4) Service 확인
kubectl get service
5) 노출된 Service의 IP와 port를 통해, curl로 접속
curl (svc ip):PORT => 매번 다른 pod로 loadbalancing됨
6) 업데이트 Rollback (옵션)
kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=gcr.io/google-samples/kubernetes-bootcamp:v10
kubectl get deployments => deployment의 상태 확인
kubectl get pods
kubectl rollout undo deployments/kubernetes-bootcamp
kubectl get pods
kubectl rollout restart deployment -n
kubectl rollout restart deployment -n <deployment 이름>
kubectl get svc -n <네임스페이스 명> -o yaml | kubectl replace --force -f-

kubectl get deployment -n live
kubectl scale deploy <deployment 이름> -n live --replicas=5 // pod 개수 scale out
kubectl rollout status deploy <deployment 이름> -n live // 디플로이먼트의 롤아웃 상태를 보기
kubectl get deployment -n live