AWS EKS 클러스터 삭제 실패 – 포드의 중단 예산을 위반하므로 포드를 제거할 수 없습니다.


문제

Service Mesh 설치를 망친 데모 EKS 클러스터를 제거해야 했습니다. 불행히도 정리하기에는 다소 끔찍한 상태로 남아 있으므로 삭제해야합니다.

force 인수를 포함하여 일반적인 eksctl delete 명령을 시도했을 때 다음과 같은 오류가 발생했습니다.

2021-12-21 23:52:22 [!] pod eviction error ("error evicting pod: istio-system/istiod-76f699dc48-tgc6m: Cannot evict pod as it would violate the pod's disruption budget.") on node ip-192-168-27-182.us-east-2.compute.internal


최종 오류 출력:

Error: Unauthorized





원인

글쎄, 오류 메시지는 원인을 호출하지 않습니다. 기존 포드를 다른 노드로 이동하는 것은 구성된 설정으로 인해 실패합니다. 기본적으로 EKS는 모든 노드를 배수하려고 시도하고 클러스터를 삭제할 때 모든 것을 잘 종료합니다. 그냥 다 닫고 닦는 것이 아닙니다. 이는 Kubernetes 내부에 AWS 구성 요소와 상호 작용하기 위한 작업을 호출하고(이론적으로) 깔끔하게 정리하는 여러 종료자가 있기 때문입니다.

이 문제를 해결하기 위해 먼저 다음 명령을 시도했습니다. 배수를 기다리지 않고 노드 그룹을 삭제하면 문제가 우회될 것이라고 생각했습니다.

 eksctl delete nodegroup standard --cluster veducate-eks --drain=false --disable-eviction


이렇게 하면 클러스터를 삭제할 수 없지만 여전히 동일한 오류 메시지가 표시됩니다.


수정

그래서 오류 메시지로 돌아가서 그것이 나를 정면으로 응시하고 있다는 것을 깨달았습니다!

Cannot evict pod as it would violate the pod's disruption budget


Pod Disruption Budget은 무엇입니까? 본질적으로 누군가가 우발적으로 죽이는 것으로부터 포드의 가용성을 보장하는 방법입니다.

A PDB limits the number of Pods of a replicated application that are down simultaneously from voluntary disruptions. For example, a quorum-based application would like to ensure that the number of replicas running is never brought below the number needed for a quorum. A web front end might want to ensure that the number of replicas serving load never falls below a certain percentage of the total.


구성된 모든 포드 중단 예산을 찾으려면:

kubectl get poddisruptionbudget -A


그런 다음 필요에 따라 삭제합니다.

kubectl delete poddisruptionbudget {name} -n {namespace}




마지막으로 클러스터를 삭제할 수 있어야 합니다.



문안 인사



게시물Deleting AWS EKS Cluster fails – Cannot evict pod as it would violate the pod’s disruption budgetvEducate.co.uk에 처음 등장했습니다.

좋은 웹페이지 즐겨찾기