{"id":"IL-0105","org":"DFDS","date":"2021-06-22","docs":[],"title":{"en":"Replacing the AWS VPC CNI during a Terraform refactoring detached the ALB target groups, and every service in the Kubernetes cluster returned 503","ko":"VPC CNI 교체로 ALB 에서 타깃 그룹이 떨어져 나가 쿠버네티스 클러스터의 모든 서비스가 503 을 냈다"},"domain":["kubernetes","aws","networking"],"impact":{"scope":"all inbound traffic to the Kubernetes cluster; all services returned 503","users":"unknown","region":"unknown"},"review":{"written_by":"session","reviewed_at":null,"reviewed_by":null},"lessons":{"en":"The change to the de-registration delay had been weighed mainly for performance. Critical pipeline runs should be watched while they run. Everyone should receive the alerts and react to them, and alert messages that were unclear should be reworded.","ko":"팀은 등록 해제 지연을 주로 성능 측면에서만 보고 바꿨다. 중요한 파이프라인 실행은 끝날 때까지 지켜봐야 한다. 알림은 모든 사람이 받고 대응해야 한다. 뜻이 분명하지 않은 알림 문구는 고쳐 써야 한다."},"related":[],"sources":[{"url":"https://github.com/dfds/postmortems/blob/master/PM2021-005%20-%20All%20services%20returning%20503%20in%20Kubernetes.md","kind":"github","license":"unknown","archived":null}],"summary":{"en":"DFDS was refactoring and cleaning up its infrastructure code so that EKS add-ons would be managed by native Terraform instead of kubectl. As part of that work the pipeline replaced the VPC CNI at 08:21 UTC. The change to the VPC CNI detached the target groups from the Application Load Balancer, so all inbound traffic failed to reach the cluster and every service answered 503.\n\nThe postmortem names two contributing factors: the de-registration delay of the ALB target groups had earlier been lowered permanently to speed up node roll-overs, and an essential network component was replaced. The team committed a fix at 08:33 that reverted the infrastructure-modules reference, re-ran the pipeline after an AWS API timeout, and at 08:46 the pipeline reattached the target groups to the ALB. Time to detection was 8 minutes and time to recovery 25 minutes.","ko":"2021-06-22 DFDS 는 EKS 애드온을 kubectl 대신 Terraform 으로 직접 관리하려고 리팩터링과 정리를 하고 있었다. 이 변경으로 파이프라인이 VPC CNI 를 교체했고, 그 과정에서 타깃 그룹이 ALB 에서 떨어져 나갔다. 그 결과 클러스터로 들어오는 트래픽이 하나도 클러스터에 닿지 못했다.\n\n팀은 기여 요인으로 두 가지를 꼽았다. 하나는 노드 교체를 빠르게 하려고 ALB 타깃 그룹의 등록 해제 지연을 영구히 낮춰 둔 것이다. 다른 하나는 핵심 네트워크 구성 요소를 교체한 것이다.\n\n팀은 08:33 에 infrastructure-modules 참조를 되돌리는 수정을 커밋했다. 파이프라인이 AWS API 타임아웃으로 멈추자 팀은 08:38 에 파이프라인을 다시 돌렸다. 08:46 에 파이프라인이 타깃 그룹을 ALB 에 다시 붙이면서 서비스가 복구되었다. 감지까지 8분, 복구까지 25분이 걸렸다."},"trigger":{"en":"The pipeline replaced the AWS VPC CNI as part of a refactoring that moved EKS add-ons from kubectl to native Terraform management.","ko":"EKS 애드온을 kubectl 대신 Terraform 으로 관리하려는 리팩터링과 정리 작업 중에 파이프라인이 VPC CNI 를 교체했다."},"severity":"unknown","symptoms":["service-unavailable","high-error-rate"],"timeline":{"detected_after":"8m","resolved_after":"25m"},"date_kind":"incident","detection":{"en":"Alerts fired at 08:29 UTC, eight minutes after the VPC CNI was replaced; a customer reported the issue at 08:32.","ko":"08:29 UTC 에 알림으로 감지했다. 파이프라인이 VPC CNI 를 교체한 지 8분 뒤였다. 08:32 에는 고객도 문제를 알려 왔다."},"components":["vpc-cni","cloud-load-balancer","terraform"],"root_cause":"config-change","remediation":[{"text":{"en":"committed a fix that reverted the infrastructure-modules reference","ko":"infrastructure-modules 참조를 되돌리는 수정을 커밋했다."}},{"text":{"en":"re-triggered the pipeline after it failed on an AWS API timeout","ko":"AWS API 타임아웃으로 멈춘 파이프라인을 다시 돌렸다."}},{"text":{"en":"let the pipeline reattach the target groups to the ALB","ko":"파이프라인이 타깃 그룹을 ALB 에 다시 붙였다."}}],"action_items":[{"text":{"en":"Revert the ALB de-registration delay to the default of 300 seconds","ko":"ALB 의 등록 해제 지연을 기본값 300초로 되돌린다."}},{"text":{"en":"Update the roll-over script to set the ALB de-registration delay to zero temporarily before a roll-over","ko":"노드 교체 스크립트가 교체 전에 ALB 등록 해제 지연을 잠시 0 으로 낮추도록 고친다."}},{"text":{"en":"Create an ingress test suite","ko":"Ingress 테스트 스위트를 만든다."}}],"contributing":["assumption-unverified","no-config-tests"],"recurrence_of":null,"symptoms_text":{"en":"At 08:29 UTC on 22 June 2021 alerts fired because all services in the Kubernetes cluster were returning 503. No inbound traffic was reaching the cluster. A customer reported the problem at 08:32.\n\nEight minutes before the alerts, at 08:21, the deployment pipeline had replaced the VPC CNI. The investigation started at 08:30, and when the fix was pushed through the pipeline it first failed on an AWS API timeout and had to be started again at 08:38.","ko":"2021-06-22 08:29 UTC 에 알림이 울렸다. 쿠버네티스 클러스터로 들어오는 트래픽이 모두 실패했고, 모든 서비스가 503 을 냈다.\n\n알림은 08:21 에 파이프라인이 VPC CNI 를 교체하고 8분 뒤에 왔다. 팀은 08:30 에 조사를 시작했고, 08:32 에는 고객도 문제를 알려 왔다."},"updated_at":"2026-11-10T00:00:33.368514Z","url":"https://benchlet.com/incidentlib/app/cases/IL-0105","org_slug":"dfds"}