{"id":"IL-0169","org":"Scaleway","date":"2024-01-24","docs":["https://status.scaleway.com/"],"title":{"en":"The Scaleway Kubernetes API in FR-PAR ran out of memory under simultaneous deployments, and because it also handled node authentication, Kapsule and Kosmos nodes went NotReady","ko":"FR-PAR 의 Scaleway Kubernetes API 가 메모리 부족으로 쓰러져 노드 인증이 막히고 Kapsule 노드가 NotReady 가 됐다."},"domain":["kubernetes"],"impact":{"scope":"Customers of the managed Kubernetes services Kapsule and Kosmos, mutualized and dedicated, and some products such as Cockpit; nodes went NotReady and API Gateway requests timed out","users":"unknown","region":"FR-PAR"},"review":{"written_by":"session","reviewed_at":null,"reviewed_by":null},"lessons":{"en":"Because the Kubernetes API also handled node authentication, its memory exhaustion made some nodes NotReady, and the endless retries of those nodes added load on the API Gateway. Scaleway plans a local authentication cache and further work on node authentication.","ko":"탄탄한 모니터링과 빠른 대응 체계가 중요하다. Kubernetes API 가 노드 인증까지 맡고 있어서 API 의 메모리 부족이 곧장 노드 NotReady 로 번졌다. Scaleway 는 이를 막으려고 로컬 인증 캐시와 노드 인증 개선을 계획했다."},"related":[],"sources":[{"url":"https://www.scaleway.com/en/blog/update-fr-par-kapsule-api/","kind":"blog","license":"unknown","archived":"https://web.archive.org/web/2024/https://www.scaleway.com/en/blog/update-fr-par-kapsule-api/"}],"summary":{"en":"Simultaneous deployments in FR-PAR drove the Scaleway Kubernetes API, the service behind Kapsule and Kosmos, out of memory. This API was also handling node authentication at the time, so when it failed the kubelets on customer nodes could not renew their leases, the nodes went NotReady, and they retried indefinitely. Requests from these malfunctioning components flooded the API Gateway, which slowed down and timed out on some requests but did not go fully down; changes made after an earlier incident helped it absorb the spike.\n\nOn-call engineers took the incident at 00:00:10 and by 00:30 had identified the out-of-memory condition as the cause. Between 00:35 and 00:40 they raised the memory limit and garbage collection thresholds of the Kubernetes managed services and launched more replicas of key services. API Gateway requests began falling fast at 00:43, nodes came back from 00:54 while a heavy queue of instance actions was watched, and from 01:03 all FR-PAR clusters began to stabilise after further steps such as purging the registry cache. Cockpit metrics came back at 01:13.","ko":"2024-01-24 23:48 CET, FR-PAR 리전의 Scaleway Kubernetes API 가 메모리 부족 상태에 빠졌다. 동시에 몰린 배포가 원인이었다. 이 API 는 노드 인증도 맡고 있었다. 그래서 API 가 쓰러지자 kubelet 이 lease 를 갱신하지 못했고, 노드는 NotReady 가 된 채 끝없이 재시도했다. 관리형 Kubernetes 서비스인 Kapsule 과 Kosmos 를 공유 환경과 전용 환경에서 쓰는 고객, 그리고 Cockpit 같은 일부 제품이 영향을 받았다.\n\nKubernetes 쪽에서 고장 난 구성 요소들이 보내는 요청이 API Gateway 로 몰려 부하가 크게 늘었다. API Gateway 는 응답 시간이 늘어 일부 요청이 타임아웃까지 갔지만 완전히 멈추지는 않았다. 과거 장애 뒤에 해 둔 설정 조정 덕분에 갑작스러운 요청 급증도 전보다 잘 견뎠다.\n\n엔지니어들은 00:35 부터 00:40 사이 Kubernetes API 의 메모리 한도와 가비지 컬렉션 임계값을 올리고 주요 서비스의 복제본을 늘렸다. 00:43 에 API Gateway 요청이 빠르게 줄었고, 00:54 에 노드가 돌아오기 시작했다. 인스턴스 작업이 대량으로 밀려 있어 이를 지켜봤다. 01:03 에 레지스트리 캐시를 비우는 등 추가 조치를 하자 모든 FR-PAR 클러스터가 안정되기 시작했고, 01:13 에 Cockpit 지표가 다시 나타나며 완전히 복구됐다."},"trigger":{"en":"Simultaneous deployments in the FR-PAR region pushed the Scaleway Kubernetes API out of memory.","ko":"FR-PAR 에서 동시에 몰린 배포가 Scaleway Kubernetes API 의 메모리를 바닥냈다."},"severity":"unknown","symptoms":["node-not-ready","oom-killed","intermittent-timeouts","monitoring-down"],"timeline":{"detected_after":"0m","resolved_after":"1h 15m"},"date_kind":"incident","detection":{"en":"Increased load on the API Gateway was detected at 23:48, the minute the incident began, and the incident was escalated to on-call engineers at 00:00:10.","ko":"23:48 에 API Gateway 부하가 늘어난 것이 감지됐고, 00:00:10 에 내부 에스컬레이션을 거쳐 당직 엔지니어가 맡았다."},"components":["memory-limit","kubelet"],"root_cause":"capacity","remediation":[{"text":{"en":"raised the memory limit and garbage collection thresholds of the Kubernetes managed services","ko":"관리형 Kubernetes 서비스의 메모리 한도와 가비지 컬렉션 임계값을 곧바로 올렸다."}},{"text":{"en":"deployed additional replicas of key services","ko":"늘어난 부하를 받도록 주요 서비스에 복제본을 추가로 배포했다."}},{"text":{"en":"purged the registry cache and monitored the clusters as they stabilised","ko":"레지스트리 캐시를 비우고, 클러스터가 안정되는 동안 지켜봤다."}},{"text":{"en":"adjusted service configurations after the incident to keep the platform stable","ko":"장애 뒤에도 계속 모니터링하며 서비스 설정을 조정했다."}}],"action_items":[{"text":{"en":"Implement a local authentication cache","ko":"로컬 인증 캐시를 구현한다."}},{"text":{"en":"Further develop node authentication","ko":"노드 인증 방식을 더 개선한다."}},{"text":{"en":"Enhance monitoring, adjust rate limiting strategies and improve incident response protocols","ko":"모니터링을 강화하고 레이트 리밋 전략을 조정했으며 장애 대응 절차를 개선했다."}}],"contributing":["single-point-of-failure","retry-storm"],"recurrence_of":null,"symptoms_text":{"en":"At 23:48 CET on 24 January 2024 the Scaleway Kubernetes API for the FR-PAR region ran out of memory. At the same minute Scaleway saw requests to its API Gateway spike.\n\nNodes of customer clusters could not authenticate with their control plane, so their kubelets could not update their leases, and some nodes became NotReady and kept retrying without end. Response times of the API Gateway rose until some requests reached timeouts. Where it applied, the cluster auto-healing process started and replaced nodes automatically.\n\nCustomers of the managed Kubernetes services Kapsule and Kosmos were affected, in both mutualized and dedicated environments, along with some other products such as Cockpit, whose metrics were missing until the end of the incident.","ko":"2024-01-24 23:48 CET, FR-PAR 리전에서 Kapsule 과 Kosmos 고객 클러스터의 일부 노드가 NotReady 로 바뀌었다. 같은 시각 API Gateway 로 들어오는 요청이 크게 치솟았다.\n\nAPI Gateway 응답 시간이 늘어 일부 요청은 타임아웃까지 갔다. 노드는 컨트롤 플레인에 인증하지 못해 일시적으로 NotReady 상태가 됐고, 해당하는 클러스터에서는 자동 복구가 돌아 노드를 교체했다. Cockpit 같은 다른 제품도 영향을 받아 지표가 끊겼다가 01:13 에 다시 나타났다.\n\n00:00:10 에 내부 에스컬레이션을 거쳐 당직 엔지니어가 장애를 맡았다. 00:00 부터 00:30 사이에 진단한 결과, Kubernetes API 의 메모리 부족이 원인으로 확인됐다."},"updated_at":"2026-11-10T00:00:37.172684Z","url":"https://benchlet.com/incidentlib/app/cases/IL-0169","org_slug":"scaleway"}