Rollout restart vs apply
Deployment 나 Kubernetes의 여러가지 Object들을 생성하기 위해서 Apply 명령어를 많이 쓴다.
그렇다면 deployment 를 재시작
하기 위해서는 어떤 명령어를 써야할까?
Apply
kubectl apply
는 모든 쿠버네티스의 Obejct들 (Pod
,Deployment
,ConfigMaps
,Secrets
, etc) 에 모두 적용이 가능하다.- 명세(yaml) 파일의
spec
필드의 변경이 있어야 apply 실행시 적용이 가능함.
Rollout restart
Kubectl rollout
은Deployments
,Statefulsets
와 같은 연산이 가능한 부분에 대해서만 적용이 가능함.spec
필드의 변경과 같은 어떠한 변화의 필요 없이 pod 재시작이 가능하다.
간단하게 정리하자면 Rollout restart 를 하게 되면 Gracefully 하게 pod가 Terminating 되고 새로운 pod가 생성된다.
하지만 Apply는 rollout restart 처럼 파드가 재시작되지는 않는다. config (yaml) 값이 변경되어야만 재시작이 됨.
이외에도 replace와 같은 명령어를 사용하게 되면 Gracefull 하진 않지만, pod가 delete 되고 create된다.
참고 : https://stackoverflow.com/a/66420597/14995221