본문 바로가기

DevOps/쿠버네티스

쿠버네티스 Deployment를 통한 배포 및 롤백



쿠버네티스 롤백

$ k rollout status deployment kubia

## deployment 확인하여 error가 있는지 확인


$ k rollout undo deployment kubia

## 이전 버젼으로 deploynment 배포(롤백)


특정버젼으로 롤백하기

$ k rollout undo deployment kubia --to-revision=1
## revision 숫자로 돌아감.



배포관련 옵션 설정

spec:
  strategy:
    maxSurge: 1 ## 최대 신규 버젼 배포추가 가능건
    maxUnavailable: 0 
  type: RollingUpdate



## rolling update에 있어서 새버젼을 먼저 배포하고 기존 배포건을 지울 것인지, 혹은 기존배포건을 지우고 새버젼을 배포할 것인지 설정이 가능하다.
## 삭제를 먼저하는 것을 권장하지 않는다. 기존 버젼을 날리고 시작해버리니깐..


배포 일시 중지 및 재생

$ k rollout pause deployment kubia
## 배포중에 멈추기 몇개가 새로운 버젼이 되어있고, 몇개가 기존 버젼으로 배포되어 있음

$ k rollout resume deployment kubia
## 멈춘 배포를 계속함.


배포하면서 헬스체크도 같이 하기

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: kubia
spec:
  replicas: 3
  minReadySeconds: 10
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
    type: rollingUpdate
  template:
    metadata:
      labels:
        app: kubia
    spec:
      containers:
      - name: kubia
        image: reg.cloud.com/kubia:v3 ## 오류가나는 놈
        readinessProbe:
          periodSeconds: 1
          httpGet:
            path: /
            port: 8080
        ports:
        - containerPort: 8080

## 배포시에 헬스체크를 어떻게 할것인지 적용.
## 헬스체크 내용에 따라 배포를 못하게 할 수 있음.


$ k apply -f test-deploy.yml

## 신규 적용시키기

## v3가 readinessProbe에 의해서 문제가 있음을 확인하였기 때문에, 배포를 계속 진행시키지 않는다.