본문 바로가기

Deploy/kubernates

파이프라인에 배포 완료했는데 다시 배포 rollback 하는 방법 with kubectl

stage 환경 배포 파이프라인을 Build -> Deploy까지 아무 문제 없이 끝냈는데 막장 stage 환경 사이트에서 내가 배포 나갔던 부분이 500,503 에러를 내뿜고 있었다. 

 

이를 다시 rollback을 해줘야 했는데, Build가 되고 Deploy 하는 중에는 배포를 Cancle 할 수 있는 버튼이 활성화 되어있었으나, Deploy가 끝나고 난 후에는 Cancle을 할 수 있는 버튼조차 없었어서 멘붕이 왔는데 알고보니 kubectl rollback 명령어로 해결할 수 있었다. 

 

해결 방법 

kubectl rollout history deployment <배포 파이프라인 이름> 

-> 배포 나간 파이프라인의 history를 확인한다. 여기서 버전(REVISION)이 여러 개 보인다. 

 

** 버전의 상세 내역을 보려면 kubectl rollout history deploy(ment) <stage 배포 파이프라인 이름> --revision=8 이런 식으로 확인할 수 있다. 

 

kubectl rollout undo deployment <배포 파이프 이름> --to-revision=8 

-> history 내역 확인 후 revision할 번호를 적고, 직전 버전으로 돌아가려면 rollout undo를 하면 된다. 

여기서 --to-revision 옵션은 특정 버전으로 돌아가기 위함이고, 지정된 revision의 버전을 통해 실행중인 pod로 되돌릴 수 있다. 

 

kubectl rollout restart deployment/<배포 파이프라인 이름>

-> 원하는 버전으로 돌아갔으니, 배포를 다시 진행한다. 

 

추가) 

배포 멈추기 

kubectl rollout pause deployment/배포 파이프라인 이름 

배포 재개하기 

kubectl rollout deploy/배포 파이프라인 이름

배포 진행상태 확인하기 

kubectl rollout status

-> 배포 중간에도 pause를 이용해서 배포를 멈출 수 있는데, 멈췄던 배포는 resume을 활용하여 다시 진행시킬 수 있다.