Info
25년 9월 작업 중 겪었던 내용을 간략하게 요약한 글입니다.
문제 상황
NGINX Ingress가 갑자기 접속되지 않는 현상이 발생했습니다. 브라우저 등에서 서비스에 접근할 수 없었고, ALB Target group이 업데이트되지 않는 문제가 있었습니다.
문제 원인
25일에 EKS Terraform 모듈 및 코드를 최신으로 업데이트했고, 이 때 IAM Role과 Policy가 새로 생성되었습니다. 하지만 ALB Controller에는 이 변경사항이 반영되지 않았고 계속 이전 Role을 사용하고 있었습니다.
Pod 업데이트 작업으로 Ingress Pod가 재시작되었을 때, ALB Controller는 이전 Role을 참조하여 ALB 작업에 403 에러가 발생했고, 결과적으로 Target group이 업데이트되지 않았습니다.
이는 Kubernetes의 IRSA (IAM Roles for Service Accounts) 메커니즘에서 Pod가 시작될 때 Service Account의 annotation을 읽고 해당 IAM Role을 가정하기 때문입니다. IAM Role이 외부에서 업데이트되더라도, 이미 실행 중인 Pod는 이전 설정을 계속 사용합니다.
해결 방법
설정 변경을 확인한 후 ALB Controller Deployment를 재시작하여 해결했습니다.
kubectl rollout restart deployment/aws-load-balancer-controller -n kube-system
재시작 후 Pod가 새로운 IAM Role을 정상적으로 사용하고, ALB 관련 작업이 정상적으로 수행되었습니다.