Argo-Rollouts-Pod-Lifecycle

Argo Rollouts 의 쿨다운에 대한 이야기를 하려고한다. 이글은 Argo Roullouts 의 scaleDownDelaySeconds 옵션부터 preStop terminationGracePeriodSeconds 까지의 과정을 다룬다. Argo Rollouts 는 배포를 도와주는 툴로 블루그린 카나리등과 같은 부분을 도와주는 도구이다. 간략하게 동작을 설명하겠다. 블루그린이 완료된이후 RS는 축소하지 않고 30초간 대기한다. 이 30초간 대기하는 옵션이 scaleDownDelaySeconds다. 혹시나모를 롤백 상황에 대해서 기다리는 옵션인것이다. 이시간이 종료되면 이제 RS는 replicas 를 0으로 수정해서 pod 들은 축소된다. replicas 가 0으로 수정되면 pod는 일반적인 pod 의 lifecycle 를 거친다. pod 는 여러 차례 말했지만 N+1개의 컨테이너의 집합이고 컨테이너는 프로세스이므로 프로세스의 종료 과정이 그대로 pod 의 lifecycle 를 따르나 쿠버네티스는 이 프로세스를 컨트롤하는 고도화된 툴이므로 다양한 과정을 컨트롤 할수있게 만들어져 있다. ...

December 28, 2023 · 1 min · 📁 Kubernetes · 🏷️ preStop, argo rollouts, terminationGracePeriodSeconds

pod graceful shutdown

spec: containers: - name: nginx image: nginx:latest ports: - containerPort: 80 resources: limits: cpu: 500m requests: cpu: 200m lifecycle: preStop: exec: command: ["/bin/sleep", "30"] ```bash . . hpa 발생시 pod의 갑작스런 종료로 pod에 연결된 사용자가 502를 받게된다. 모든 리퀘스트를 처리 후에 종료되도록 30초간의 유예를 준다 설정 변경 lifecycle preStop 를 이용하여 우아한 종료를!

March 15, 2023 · 1 min · 📁 Kubernetes · 🏷️ lifecycle, preStop