IL-0139 Google Cloud · 2022-09-15kubernetesgcpnetworking
Google Cloud 는 2022-09-15 16:01 US/Pacific 에 Calico 를 켠 GKE 클러스터를 1.22 이상으로 업그레이드하면 파드가 Terminating 에 멈출 수 있다고 공지했다. 첫 공지는 1.22 이상에서 특정 조건일 때 파드 종료에 문제가 생긴다고만 알렸다. 9월 21일 공지부터는 Pending 으로 멈추는 경우도 포함했고, 원인을 Calico 네트워크 정책을 쓸 때 생기는 경쟁 조건이라고 밝혔다. 문제는 Calico 컴포넌트에서 생겼고, GKE 는 Calico 프로젝트와 함께 수정을 만들었다.
수정은 먼저 1.24.4-gke.800 에 들어갔다. 9월 16일에는 검증이 끝나면 1.22 와 1.23 으로 백포트를 서두르겠다고 했고, 9월 23일에는 1.23 과 1.22 에 수정을 넣은 다음 릴리스가 시작됐다고 알렸다. 그사이 고객에게는 kubelet 과 calico-node 재시작, Calico 네트워크 정책 끄기, Google Cloud 지원팀을 통한 내부 패치, 1.24.4-gke.800 이상으로의 수동 업그레이드를 우회책으로 안내했다. 2022-09-29 13:45 US/Pacific 에 영향받은 모든 사용자에게서 문제가 해결됐다고 발표했다. 공지 페이지는 asia-east1 부터 us-west4 까지 34개 리전을 영향 지역으로 적었다.
GKE 를 1.22 이상으로 업그레이드한 뒤 Calico 네트워크 정책을 쓰는 클러스터에서 파드가 Terminating 이나 Pending 상태에서 빠져나오지 못했다. 실제로 파드가 멈춘 클러스터는 소수였다.
파드를 종료할 때 Calico CNI 플러그인이 다음 오류를 냈다. Warning FailedKillPod 36m (x389 over 121m) kubelet error killing pod: failed to "KillPodSandbox" for "af9ab8f9-d6d6-4828-9b8c-a58441dd1f86" with KillPodSandboxError: "rpc error: code = Unknown desc = networkPlugin cni failed to teardown pod "myclient-pod-6474c76996" network: error getting ClusterInformation: connection is unauthorized: Unauthorized" 이 예에서는 121분 동안 같은 실패가 389번 반복됐다.
영향받는 버전은 1.22 의 모든 GKE 버전, 1.23 의 모든 GKE 버전, 1.24.4-gke.800 이전의 1.24 버전이었다. 클러스터 오토스케일러를 쓰면 경쟁 조건에 걸릴 확률이 높아졌다.
–
클러스터 오토스케일러를 쓰면 이 경쟁 조건에 걸릴 확률이 높아진다. 수정 버전으로 올리기 전에는 kubelet 과 calico-node 를 재시작해 멈춘 파드를 풀 수 있고, Calico 가 꼭 필요하지 않다면 Calico 네트워크 정책을 끄는 방법도 있다.
IL-0112 나중에 회수된 EKS 노드 AMI 로 노드를 교체한 뒤 노드가 PLEG is not healthy 를 보고하며 NotReady 를 오갔고 파드 네트워크 타임아웃이 났다DFDS · 2022같은 원인 · 공통 kubelet
같은 원인 · 공통 kubelet
같은 원인 · 공통 파드 종료 처리
IL-0074 워커 노드가 잇달아 Not Ready 에 빠지고 네트워크와 DNS 실패로 사이드카가 죽으면서, AirMap 플랫폼의 모든 서비스가 다섯 시간 동안 응답하지 않았다.AirMap · 2018같은 원인 · 공통 kubelet
IL-0038 kubelet 설정 변경을 롤링 업데이트하다 쿠버네티스 버그로 kubelet 이 올라오지 못해 한 클러스터의 노드가 NotReady 가 되고 파드 절반쯤이 축출됐다Oath · 2018같은 원인 · 공통 kubelet
https://incidentlib-mcp.benchlet.com/mcpAPI 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.
같은 원인 · 공통 kubelet