IL-0030 Zalando · 2019-02-11 (게시일)kubernetesaws
이 사례는 Zalando 의 Henning Jacobs 가 2019-02-11 함부르크 밋업에서 발표한 쿠버네티스 장애 사례 가운데 첫 번째다. 쿠버네티스 v1.7.4+coreos.0 을 쓰는 클러스터에서 노드들이 동시에 NotReady 가 되어 쓸 수 있는 노드가 20% 미만으로 줄었다. 노드들은 15분 뒤 동시에 저절로 회복했다.
팀은 API 서버가 AWS ELB 뒤에 있다는 점과 다른 사용자들도 같은 일을 겪고 있다는 점을 단서로 업스트림 이슈 kubernetes/kubernetes#48638 을 찾았다. 이 버그는 쿠버네티스 1.8 에서 고쳐졌고 1.7.8 로 백포트됐다.
클러스터에서 쓸 수 있는 노드가 전체의 20% 미만으로 줄었다. 노드들이 같은 시각에 한꺼번에 비정상이 됐다.
발표 슬라이드에는 kubectl get nodes 출력 일부가 실려 있다. 이 출력에서 노드 11대 가운데 5대가 NotReady, 4대가 Ready, 2대가 Ready,SchedulingDisabled 였다. 노드 버전은 모두 v1.7.4+coreos.0 이었다.
노드들은 같은 시각에 비정상이 되고 같은 시각에 회복했다. 클러스터는 15분 뒤 저절로 복구됐다.
팀은 단서를 모으면서 API 서버가 AWS ELB 뒤에 있다는 점에 주목했다. 다른 사용자들도 같은 일을 겪고 있었고, 그중 일부는 거의 매달 이 일이 일어난다고 보고했다.
증상 ? 노드 NotReady
원인 ? 소프트웨어 결함
–
–
–
같은 원인 · 공통 클라우드 로드 밸런서
같은 원인 · 공통 쿠버네티스 API 서버
같은 원인 · 공통 클라우드 로드 밸런서
같은 원인 · 공통 쿠버네티스 API 서버
같은 원인 · 공통 클라우드 로드 밸런서
같은 원인 · 공통 쿠버네티스 API 서버
같은 원인 · 공통 쿠버네티스 API 서버