IL-0152 DigitalOcean · 2024-01-23kubernetes
2024-01-23 12:21 UTC 에 DigitalOcean 은 정비 작업 중 FRA1 리전의 내부 인프라 클러스터에 잘못된 설정을 적용했다. 이 인프라 클러스터는 FRA1 의 DOKS 클러스터 일부를 받치고 있었다. DOKS 는 DigitalOcean 의 관리형 쿠버네티스 서비스다. 설정 변경이 연쇄 반응을 일으켜, DOKS 컨트롤 플레인이 올라가 있던 하부 컴퓨트 자원이 자동으로 삭제되기 시작했다. 12:30 에는 이 인프라 클러스터 위의 DOKS 컨트롤 플레인이 모두 지워졌다. 영향받은 클러스터는 컨트롤 플레인에 접근할 수 없게 됐고 컨트롤 플레인 데이터 일부를 잃었다.
12:36 에 잘못된 설정을 원인으로 짚고 복구 준비를 시작했고, 12:48 에 내부 장애 대응을 꾸려 영향받은 클러스터를 찾고 복구를 추적했다. DOKS 의 etcd 클러스터는 클러스터마다 무작위 일정으로 하루 두 번 백업되고 있었다. 복구는 각 클러스터의 가장 최근 백업으로 etcd 를 되살리는 방식이었고, 가장 나쁜 경우 컨트롤 플레인 데이터가 12시간 전 상태로 돌아갔다. etcd 를 되살린 뒤 상태가 없는 컨트롤 플레인 컴포넌트를 다시 올려 컨트롤 플레인 복구를 마쳤다. 13:00 에 복구 과정에서 예상하지 못한 문제가 생겨 복구 메커니즘을 추가로 패치해야 했고, 이 문제는 15:00 에 해결됐다. 20:31 에 HA DOKS 클러스터가 모두 복구됐고, 21:21 에 영향받은 DOKS 클러스터가 모두 복구됐다. 데이터 플레인의 기존 워크로드는 그동안 계속 동작했다.
2024-01-23 13:02 UTC 에 DigitalOcean 은 12:18 UTC 부터 FRA1 리전의 쿠버네티스 클러스터 문제를 조사하고 있다고 공지했다. 사용자는 FRA1 클러스터와 통신할 때 오류를 겪을 수 있었다.
15:12 UTC 공지에서 원인을 찾았다고 밝혔다. 영향받은 클러스터는 200개였고, 사용자는 여전히 이 클러스터에 접근할 수 없었다. 컨트롤 플레인에는 접근할 수 없었지만, 노드에서 돌던 기존 워크로드는 복구가 끝날 때까지 계속 동작했다.
18:44 UTC 공지에서는 작은 버그를 하나 더 찾아 고쳤고 클러스터의 약 10% 가 접근을 되찾았다고 알렸다. 22:50 UTC 에 해결을 발표하면서, 고객이 일부 쿠버네티스 리소스를 다시 구성해야 할 수 있다고 덧붙였다.
증상 ? 리소스 삭제컨트롤 플레인 무응답
원인 ? 설정 변경
13:02 UTC 의 첫 상태 페이지 공지는 12:18 UTC 부터 조사 중이라고 했다. 사후 보고서의 타임라인에서는 12:36 에 잘못된 설정을 원인으로 확인했다.
컨트롤 플레인을 받치는 인프라 클러스터의 설정 변경 하나가 한 리전의 DOKS 클러스터 200개의 컨트롤 플레인을 한꺼번에 지웠다. 하루 두 번 받아 둔 etcd 백업으로 클러스터를 되살릴 수 있었지만, 컨트롤 플레인 데이터는 백업 주기만큼, 최대 12시간 전 상태로 돌아갔다. 컨트롤 플레인이 사라진 동안에도 노드의 워크로드는 계속 돌았다.
같은 원인 · 공통 etcd
같은 원인 · 공통 쿠버네티스 API 서버
같은 원인 · 공통 쿠버네티스 API 서버
같은 원인 · 공통 쿠버네티스 API 서버
같은 원인 · 공통 쿠버네티스 API 서버
같은 원인 · 공통 쿠버네티스 API 서버