본문 바로가기
CLOUD & MLOPS

[Kubernetes] kubectl Rollback and Rollout command

by Coding_WONI 2024. 4. 29.

Rollback은 시스템이나 애플리케이션에 대한 업데이트 또는 변경 사항을 이전 버전으로 되돌리는 과정입니다. 

 

Kubernetes에서 rollback을 수행하기 위해 kubectl rollout undo 명령을 사용할 수 있습니다. 다음은 그 방법입니다:

  1. 배포의 이전 버전으로 롤백하려면 다음 명령을 실행하면 됩니다
  2. 특정 리비전으로 롤백하려면 명령에 리비전 번호를 지정할 수 있습니다
  3. 각 리비전에서 어떤 변경 사항이 있는지 확실하지 않은 경우 kubectl rollout history 명령을 사용하여 롤아웃 기록을 확인할 수 있습니다
kubectl rollout undo deployment <deployment-name>	# 1

kubectl rollout undo deployment <deployment-name> --to-revision=<revision-number>	# 2

kubectl rollout history deployment <deployment-name>	# 3

 

Google Cloud Console에는 직접 롤백 기능이 없지만, Cloud Shell을 사용하여 위에서 언급한 kubectl 명령을 실행할 수 있습니다.

 

Rollout은 Kubernetes에서 애플리케이션의 업데이트를 관리하는 방법입니다. 업데이트를 수행할 때, rollout새로운 버전의 애플리케이션을 배포하고 이전 버전을 대체하는 과정을 의미합니다. rollout을 통해 애플리케이션을 안정적으로 업데이트하고 롤백할 수 있습니다.

rollout을 수행하는 동안 다음과 같은 작업을 수행할 수 있습니다:

  1. Pause: rollout을 일시 중지하여 업데이트를 일시적으로 중단할 수 있습니다. 이는 작은 수정 사항이 자주 릴리스되는 환경에서 특히 유용합니다. kubectl rollout pause 명령을 사용하여 rollout을 일시 중지할 수 있습니다.
  2. Resume: rollout을 다시 시작하여 중지된 업데이트를 재개할 수 있습니다. kubectl rollout resume 명령을 사용하여 rollout을 재개할 수 있습니다.
  3. Status: rollout의 상태를 모니터링할 수 있습니다. kubectl rollout status 명령을 사용하여 rollout의 상태를 확인할 수 있습니다.
  4. Delete: rollout이 완료된 후에는 해당 배포를 삭제할 수 있습니다. kubectl delete 명령을 사용하여 배포를 삭제할 수 있습니다.
kubectl rollout pause deployment [deployment-name]	# rollout 일시 정지
kubectl rollout status deployment [deployment-name]	# rollout status 확인
kubectl rollout resume deployment [deployment-name]	# rollout resume
kubectl delete deployment [deployment-name]		# deployment 삭제

rollout을 사용하여 애플리케이션을 업데이트하고 관리하는 방법에 대한 자세한 내용은 "Kubernetes Operations" 모듈에서 배울 수 있습니다.