쿠버네티스 배포
## pod들이 배포되어있을때 어떻게 배포할까?
## green blue전략 : 똑같은 수의 pod을 추가로 만들어서 service가 바라보는 쪽을 변경하는 전략. 그러나 리소스가 제한적일 때는 적용 힘듦.
## Rolling update전략 : scale out하면서 기존의 version1 pod들을 제거하는 전략. zero down time, 리소스가 적더라도 적용 가능. 그러나 일정시간에는 고객에게 version1, version2가 혼재함.
※ update version마다 rc가 만들어져야함 중요!! 그러므로 name에 version명을 적어주는게 좋음.
apiVersion: v1 kind: ReplicationController metadata: name: kubia-v1 spec: replicas: 3 selector: app: kubia template: metadata: labels: app: kubia spec: containers: - name: kubia image: reg.cloud.com/kubia:v1 ports: - containerPort: 8080
$ k create -f test-rc-v1.yml
$ k create -f test-service.yml
쿠버네티스 롤링 업데이트 하기(구식)
$ k rolling-update kubia-v1 kubia-v2 --image=reg.cloud.com/kubia:v2
## reg.cloud.com/kubia:v2로 부터 이미지를 들고와서 kubia-v1를 스케일다운, kubia-v2를 신규로 스케일 아웃한다.
## 기존 rs를 지우기 때문에 롤백하기 어렵다!!
Deployments를 통한 자동 배포하기
apiVersion: apps/v1beta1 kind: Deployment ## kubernetes deployment사용하기 metadata: name: kubia spec: replicas: 3 template: metadata: labels: app: kubia spec: containers: - name: kubia image: reg.cloud.com/kubia:v1 ports: - containerPort: 8080
$ k create -f test-deploy.yml
## deployment는 k create -f 로 배포하면안됨. 업데이트 관리를 따로 해야하기 때문임.
$ k create -f test-deploy.yml --record
## 모든 기록을 남기기 위해 record옵션을 넣어준다.
$ k rollout status deployment kubia
## kubia의 status 확인
$ k rollout history deployment kubia
## kubia의 작업내용 histroy를 추적가능 순서대로 볼 수 있음
$ k set image deploy kubia kubia=reg.cloud.com/kubia:v2
## code container image를 가져와서 update하기
$ k get rs
## rs를 확인하게 되면 v2가 올라가고 v1은 내려감을 알 수 있다.
## 기존 v1 rs가 그대로 살아있고 history가 남아있기 때문에 매우 유용함.(롤백 등에 사용가능)
$ k rollout status deployment kubia
## kubia의 deploy 정상적인지 확인
minReadySeconds 적용하기
그림출처 : https://livebook.manning.com/#!/book/kubernetes-in-action/chapter-9/22
'DevOps > 쿠버네티스' 카테고리의 다른 글
쿠버네티스 관리자 계정 들어가기 (1080) | 2018.05.03 |
---|---|
쿠버네티스에서 POD, Node의 리스소 관리(CPU, memory, 등) (1111) | 2018.05.03 |
쿠버네티스 Deployment를 통한 배포 및 롤백 (931) | 2018.05.03 |
쿠버네티스 배포를 하기 위한 준비 readinessProbe, livenessProbe (957) | 2018.05.03 |
INGRESS를 사용한 쿠버네티스 네트워크 심화(sticky session, ssl connection) (942) | 2018.05.03 |
INGRESS를 사용한 쿠버네티스 네트워크 설치 및 연결 (1412) | 2018.05.03 |