IL-0148 Microsoft · 2024-07-24 (게시일)kubernetesazure
AKS 팀은 Kubernetes v1.27.14, v1.28.10, v1.29.5 의 kube-scheduler 에서 회귀 버그를 찾았다. 회귀는 이전 버전에서는 정상이던 동작이 새 버전에서 깨진 것을 말한다. 이 버전들에서는 클러스터에 잘못된 노드 어피니티를 가진 파드가 하나라도 있으면 kube-scheduler 가 패닉에 빠졌고, 그 뒤로 어떤 파드도 스케줄되지 않았다. 원인은 업스트림 쿠버네티스의 버그였다. 쿠버네티스 쪽 이슈 번호는 kubernetes/kubernetes#124930 이다.
AKS 팀은 2024년 7월 24일 Azure/AKS 깃허브 이슈로 이 버그를 알렸다. Azure Kubernetes Service 엔지니어들은 영향을 받은 클러스터를 모두 고쳤고, 고친 kube-scheduler 를 모든 리전에 배포했다. 이 수정은 고객 클러스터에 자동으로 적용됐다. 2024년 8월 29일 AKS 는 이 업스트림 문제가 7월 AKS 릴리스에서 고쳐졌다며 이슈를 닫았다.
Kubernetes v1.27.14, v1.28.10, v1.29.5 를 쓰는 AKS 클러스터에서 kube-scheduler 가 패닉에 빠졌다. 그 뒤로 클러스터의 어떤 파드도 스케줄되지 않았다.
문제는 클러스터에 잘못된 노드 어피니티를 가진 파드가 있을 때 일어났다. AKS 팀이 예로 든 파드는 nodeAffinity 의 requiredDuringSchedulingIgnoredDuringExecution 아래 nodeSelectorTerms 에 matchFields 조건을 두었다. 이 조건은 metadata.name 키를 In 연산자로 걸고, 값으로 클러스터에 없는 노드 이름 invalid-node 를 넣었다.
증상 ? 파드 Pending
원인 ? 소프트웨어 결함
AKS 팀이 직접 버그를 찾았고, 2024년 7월 24일 Azure/AKS 깃허브 이슈로 고객에게 알렸다.
–
–
–