cordon, drain

Hermaeus Mora ·

아래 상황을 가정해보자

nodepool-1 ~ nodepool-6 까지의 노드가 있다. nodepool-3 노드가 메모리, cpu 사용량이 가장 적어서 해당 노드를 풀에서 제거하고 싶다. nodepool-3에는 istiod 파드가 1개 있고, pdb minAvailable 1, hpa minReplicas 1이다. 또한 coredns 파드 2개(전체 파드 2개)가 몰려있고 pdb가 없다.

이 상태에서 nodepool-3를 cordon -> drain 하면 어떻게 되는가? pdb가 없으므로 coredns 파드 2개가 동시에 evicted된다. 노드 로컬 캐시된 dns는 문제 없지만, 마침 신규 배포된 서비스는 dns를 찾지 못해 에러가 발생한다. istiod는 파드가 1개, pdb minAvailable 1로 인해 영원히 drain에 실패한다.