{"id":"IL-0148","org":"Microsoft","date":"2024-07-24","docs":["https://github.com/kubernetes/kubernetes/issues/124930"],"title":{"en":"A kube-scheduler regression in Kubernetes v1.27.14, v1.28.10 and v1.29.5 made the scheduler panic on a pod whose node affinity named a nonexistent node, so no pods were scheduled on affected AKS clusters","ko":"클러스터에 없는 노드를 가리키는 노드 어피니티를 가진 파드 하나 때문에 kube-scheduler 가 패닉에 빠져 AKS 클러스터에서 파드가 하나도 스케줄되지 않았다"},"domain":["kubernetes","azure"],"impact":{"scope":"AKS clusters on Kubernetes v1.27.14, v1.28.10 or v1.29.5 that contained a pod with a node affinity naming a nonexistent node: no pods were scheduled","users":"unknown","region":"unknown"},"review":{"written_by":"session","reviewed_at":null,"reviewed_by":null},"lessons":null,"related":[],"sources":[{"url":"https://github.com/Azure/AKS/issues/4434","kind":"github","license":"unknown","archived":null}],"summary":{"en":"The AKS team found a regression in kube-scheduler that affected Kubernetes v1.27.14, v1.28.10 and v1.29.5. With the bug, a single pod whose node affinity points at a nonexistent node made the scheduler panic, which stopped scheduling for every pod in the cluster. The bug is upstream, tracked as kubernetes/kubernetes#124930.\n\nThe AKS team announced the bug in a pinned GitHub issue on July 24, 2024. AKS engineers fixed the affected clusters and rolled out a fixed kube-scheduler to all regions, applied automatically without customer action. The issue was closed on August 29, 2024, with a note that the upstream fix had shipped in the July AKS releases.","ko":"AKS 팀은 Kubernetes v1.27.14, v1.28.10, v1.29.5 의 kube-scheduler 에서 회귀 버그를 찾았다. 회귀는 이전 버전에서는 정상이던 동작이 새 버전에서 깨진 것을 말한다. 이 버전들에서는 클러스터에 잘못된 노드 어피니티를 가진 파드가 하나라도 있으면 kube-scheduler 가 패닉에 빠졌고, 그 뒤로 어떤 파드도 스케줄되지 않았다. 원인은 업스트림 쿠버네티스의 버그였다. 쿠버네티스 쪽 이슈 번호는 kubernetes/kubernetes#124930 이다.\n\nAKS 팀은 2024년 7월 24일 Azure/AKS 깃허브 이슈로 이 버그를 알렸다. Azure Kubernetes Service 엔지니어들은 영향을 받은 클러스터를 모두 고쳤고, 고친 kube-scheduler 를 모든 리전에 배포했다. 이 수정은 고객 클러스터에 자동으로 적용됐다. 2024년 8월 29일 AKS 는 이 업스트림 문제가 7월 AKS 릴리스에서 고쳐졌다며 이슈를 닫았다."},"trigger":{"en":"A pod in the cluster with a required node affinity whose matchFields term names a node that does not exist.","ko":"클러스터에 없는 노드를 가리키는 노드 어피니티를 가진 파드가 생겼다."},"severity":"unknown","symptoms":["pod-pending"],"timeline":{"detected_after":null,"resolved_after":null},"date_kind":"published","detection":{"en":"The AKS team found the bug; the issue does not say how.","ko":"AKS 팀이 직접 버그를 찾았고, 2024년 7월 24일 Azure/AKS 깃허브 이슈로 고객에게 알렸다."},"components":["pod-scheduling"],"root_cause":"software-bug","remediation":[{"text":{"en":"AKS engineers fixed the impacted clusters","ko":"Azure Kubernetes Service 엔지니어들이 영향을 받은 클러스터를 모두 고쳤다."}},{"text":{"en":"Rolled out a fixed kube-scheduler to all regions, applied to clusters automatically","ko":"고친 kube-scheduler 를 모든 리전에 배포해 고객 클러스터에 자동으로 적용했다."}}],"action_items":[],"contributing":[],"recurrence_of":null,"symptoms_text":{"en":"On AKS clusters running Kubernetes v1.27.14, v1.28.10 or v1.29.5, kube-scheduler panicked whenever the cluster contained a pod with a bad node affinity, and from then on no pod in the cluster was scheduled.\n\nThe AKS team's example of a pod that triggers the bug sets a required node affinity (requiredDuringSchedulingIgnoredDuringExecution) with a nodeSelectorTerms entry using matchFields on the key metadata.name, operator In, and the value \"invalid-node\", a node that does not exist.","ko":"Kubernetes v1.27.14, v1.28.10, v1.29.5 를 쓰는 AKS 클러스터에서 kube-scheduler 가 패닉에 빠졌다. 그 뒤로 클러스터의 어떤 파드도 스케줄되지 않았다.\n\n문제는 클러스터에 잘못된 노드 어피니티를 가진 파드가 있을 때 일어났다. AKS 팀이 예로 든 파드는 nodeAffinity 의 requiredDuringSchedulingIgnoredDuringExecution 아래 nodeSelectorTerms 에 matchFields 조건을 두었다. 이 조건은 metadata.name 키를 In 연산자로 걸고, 값으로 클러스터에 없는 노드 이름 invalid-node 를 넣었다."},"updated_at":"2026-11-09T11:55:51.929561Z","url":"https://benchlet.com/incidentlib/app/cases/IL-0148","org_slug":"microsoft"}