IL-0019 UK Ministry of Justice · 2023-09-18kubernetesaws
2023-09-18, UK Ministry of Justice 의 Cloud Platform 팀은 EKS 모듈을 버전 18 로 올리고 노드를 새 노드 그룹으로 옮기고 있었다. 이 변경으로 런치 템플릿이 바뀌면서 새 노드의 디스크가 100Gb 에서 20Gb 로 줄었다. 여러 노드에서 디스크가 모자라 이미지 풀이 no space left on device 로 실패했고, Evicted 나 ContainerStateUnKnown 상태의 파드도 여럿 보였다.
팀은 15:34 에 예전 기본 노드 그룹을 uncordon 하고, 15:35 부터 새 노드를 drain 해 워크로드를 예전 노드 그룹으로 되돌렸다. 17:54 에 복구됐고, 첫 감지부터 4시간 12분이 걸렸다. 다음 날 팀은 런치 템플릿 변경 내용을 검토해 고칠 곳을 찾았고, 9월 20일 manager 클러스터에 먼저, 이어서 live 클러스터에 수정을 적용했다.
수정한 노드로 옮기려고 예전 노드 그룹을 drain 하는 동안 ContainerCreating 에 머무는 파드가 늘었고, 팀은 IP 접두사가 모자란 탓일 수 있다고 봤다. 19:18 에 모든 노드의 drain 이 끝나고 오류 상태의 파드가 없어지면서 장애가 종료됐다. 종료까지는 35시간 36분이 걸렸다.
2023-09-18 13:42, 팀은 High-priority-alert 채널에서 RootVolUtilisation-Critical 알림을 봤다. 14:03 에는 한 사용자가 이미지 풀이 no space left on device 오류로 실패한다고 알렸다.
그때 팀은 EKS 모듈을 버전 18 로 올리면서 노드를 drain 하고 있었다. 14:27 에는 Evicted 와 ContainerStateUnKnown 상태의 파드가 여럿 보였다. 클러스터의 여러 노드에서 디스크가 모자라, 배포가 노드에 고르게 스케줄되지 않거나 실패할 수 있었다.
15:26 에 팀이 예전 노드와 새 노드에 할당된 디스크 크기를 비교해 보니, 새 노드에는 20Gb 만 할당돼 있었다.
9월 20일 팀이 고친 설정을 적용하고 예전 노드 그룹을 drain 하는 동안에는 다른 증상이 나타났다. 15:04 에 ContainerCreating 상태의 파드가 늘었고, 15:25 에는 "failed to assign an IP address to container" eni 오류가 늘었다. CNI 로그에는 Unable to get IP address from CIDR: no free IP available in the prefix 가 찍혔다. 팀은 IP 접두사가 모자란 탓으로 봤고, 예전 노드를 drain 하면 접두사 일부가 풀려날 것으로 판단했다.
13:42 에 High-priority-alert 채널로 RootVolUtilisation-Critical 알림이 왔다. 14:03 에 사용자가 이미지 풀 실패를 보고했고, 장애 선언은 15:12 였다.
이 글은 교훈 대신 후속 조치를 적었다. 조치를 보면 팀에는 빈틈이 두 가지 있었다. 하나는 모듈 업그레이드가 바꾼 런치 템플릿을 배포 전에 비교하지도, 드리프트 테스트로 잡지도 않은 것이다. 다른 하나는 drain 중 팀이 의심한 IP 접두사 부족을 확인할 CNI 와 ipamd 로그도, 알림도 없었던 것이다.
IL-0114 클러스터 용량을 늘리던 중 버전이 고정되지 않은 VPC CNI 플러그인이 자동으로 업데이트돼 새 파드가 IP 를 받지 못하고 Pending 에 머물렀고, 메인넷 운영 환경의 정산이 약 3.5시간 멈췄다.CoW Protocol · 2024같은 원인 · 공통 AWS VPC CNI, 노드 풀
IL-0017 live 클러스터 노드 6대에서 VPC CNI 가 IP 주소를 할당하지 못해 새 파드가 ContainerCreating 에 멈췄다UK Ministry of Justice · 2023같은 원인 · 공통 AWS VPC CNI, 노드 풀
IL-0109 로그 수집을 고치려던 EKS 노드 롤오버가 꼬이면서 Auto Scaling 그룹이 정상 워커 노드를 모두 종료해 클러스터에 노드가 하나도 남지 않았다.DFDS · 2023 · sev1같은 원인 · 공통 노드 풀, 노드 런치 템플릿
IL-0091 Terraform 으로 노드 인스턴스 타입을 바꾸자 노드가 한꺼번에 교체되어 사용자 운영 파드가 모두 지워지고 서비스가 내려갔다UK Ministry of Justice · 2023같은 원인 · 공통 노드 풀
같은 원인 · 공통 AWS VPC CNI
https://incidentlib-mcp.benchlet.com/mcpAPI 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.
같은 원인 · 공통 노드 풀
IL-0017 편집자가 연결함