kubectl rollout restart로 파드 롤링 재시작
조회 0 · 댓글 0
ConfigMap이나 Secret 내용을 바꿔도 이미 떠 있는 파드는 자동으로 다시 읽지 않습니다. 이럴 때 이미지 태그를 건드리지 않고 파드만 새로 띄우고 싶으면 kubectl rollout restart를 씁니다. Deployment뿐 아니라 DaemonSet, StatefulSet에도 동작합니다.
# 특정 Deployment 재시작
kubectl rollout restart deployment/nginx
# 네임스페이스 전체 Deployment
kubectl rollout restart deployment -n test-namespace
# 라벨로 골라서
kubectl rollout restart deployment --selector=app=nginx
# 진행 상황 확인
kubectl rollout status deployment/nginx동작 원리는 간단합니다. 파드 템플릿(spec.template.metadata.annotations)에 kubectl.kubernetes.io/restartedAt 애너테이션을 현재 시각으로 넣습니다. 템플릿이 바뀌었으니 컨트롤러가 새 파드를 만들어 교체하는데, 이때 Deployment에 설정된 전략(기본 RollingUpdate의 maxSurge, maxUnavailable)을 그대로 따릅니다.
주의할 점은 전체를 한 번에 죽이는 게 아니라 롤링으로 천천히 교체한다는 것입니다. 즉시 전부 내리는 게 아니므로 완료 여부는 위의 rollout status로 확인하는 게 안전합니다.
🔗 https://kubernetes.io/docs/reference/kubectl/generated/kubectl_rollout/kubectl_rollout_restart
로그인 후 답글을 남길 수 있습니다.