2019. 6. 1. 05:28ㆍ[정리] 기능별 개념 정리/Kubernetes
지금까지의 minikube 프로젝트 클러스터 환경은 다음과 같다.
1개의 어플리케이션 프로젝트 (kubernetes-bootcamp)
1개의 마스터
1개의 deployment
1개의 public service
1개의 node
1개의 pod
목표 Scale out
1개의 어플리케이션 프로젝트 (kubernetes-bootcamp)
1개의 마스터
1개의 deployment
1개의 public service
3개의 node
4개의 pod
kubectl scale deployments/kubernetes-bootcamp --replicas=4
복제 본을 4개로 늘려서 scale out 한다.
kubectl describe services/kubernetes-bootcamp
LoadBalancing 에 의해서 endpoint 가 4개가 된 것을 확인한다.
export NODE_PORT=$(kubectl get services/kubernetes-bootcamp -o go-template='{{(index .spec.ports 0).nodePort}}')
curl $(minikube ip):$NODE_PORT
노출된 NodePort 타입의 Service 의 port 번호를 가져와서 curl 을 날려본다.
Rolling update : 인스턴스 여러개를 이용해서 서버가 다운되지 않고도 버전을 올리는 방법
업데이트할 때 pod 의 갯수를 percent 를 이용해서 끄고 켜가면서 업데이트하게 할 수 있다.
ex. 10% 씩 업데이트해라.
Rolling update 의 목표
1. 어플리케이션을 컨테이너 이미지를 바꾸는 방법으로 버전 업을 지원한다.
2. 롤백을 지원한다.
3. 다운 타임 없이 CICD 를 지원한다.
kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2
이미지를 v2 로 줘서 업데이트를 한다. (이미지가 존재하지 않는 이미지이면 ImagePullBackOff 상태가된다.)
kubectl describe pods
현재 pod의 버전을 Image 필드를 통해 확인해본다.
kubectl rollout status deployments/kubernetes-bootcamp
Rolling update를 승인한다.
kubectl rollout undo deployments/kubernetes-bootcamp
Rolling update 를 거절하고 rollback 한다.
'[정리] 기능별 개념 정리 > Kubernetes' 카테고리의 다른 글
쿠버네티스 입문 정리 - 00 - 아키텍쳐 (0) | 2020.04.03 |
---|---|
쿠버네티스 helm 저장소 추가 (0) | 2019.06.24 |
쿠버네티스 helm (0) | 2019.06.21 |
쿠버네티스 강의 정의 ( 2강 : Pod, Node, Service ) (0) | 2019.06.01 |
쿠버네티스 강의 정리 ( 1강 : 오버뷰, Deployment) (0) | 2019.06.01 |