쿠버네티스 node가 not ready가 되면 무슨 일이 일어날까?
- 쿠버네티스 노드가 Not Ready 상태가 되면, 해당 노드에 taint(unableToSchedule, unableToExecute)가 설정됩니다. 🚫
- Not Ready 노드의 taint는 Pod가 해당 노드에 스케줄링되지 않도록 방지합니다. 🛡️
- Not Ready 상태가 5분 지속되면, 해당 노드에서 실행 중인 Pod는 eviction(강제 제거)됩니다. 💥
- eviction된 Pod는 새로운 Pod가 생성되어 정상적인 노드에 스케줄링됩니다. 🔄
- Pod eviction은
terminationGracePeriodSeconds
(기본값 300초, 5분)에 의해 제어됩니다. ⏱️
- Node의 LifeCycle controller가 Not Ready 상태를 감지하고, Taint Manager가 taint를 설정합니다. ⚙️
- Taint-based eviction은 kubelet 로그, Kubernetes 이벤트, kube-controller-manager 로그를 통해 확인 가능합니다. 🔎
default-toleration-seconds
어드미션 컨트롤러가 Pod의 terminationGracePeriodSeconds
를 기본값으로 설정합니다. 📜