❗️문제 상황
helm으로 다음과 같은 명령어를 이용해 aws alb controller를 설치하였다.
helm install aws-load-balancer-controller eks/aws-load-balancer-controller \
-n kube-system \
--set clusterName=<클러스터 이름> \
--set serviceAccount.create=false \
--set serviceAccount.name=aws-load-balancer-controller \
하지만 정상적으로 동작하지 않았고 로그를 보니 다음과 같은 오류 메시지가 나왔다.
failed to get VPC ID: failed to fetch VPC ID from instance metadata:
error in fetching vpc id through ec2 metadata: get mac metadata:
operation error ec2imds: GetMetadata, canceled, context deadline exceeded
💡 원인 파악 및 해결 과정
failed to get VPC ID: failed to fetch VPC ID from instance metadata:
error in fetching vpc id through ec2 metadata: get mac metadata:
operation error ec2imds: GetMetadata, canceled, context deadline exceeded
우선 에러메시지를 자세히 보면 VPC ID를 받아오지 못한다는 것이었다.
구글링을 해보니 나와 동일한 문제를 겪은 깃허브 이슈가 존재했다.
Reaching `failed to introspect region from EC2Metadata...` on container start-up - vanilla EKS/Fargate · Issue #1561 · kuberne
Mostly a smooth process to implement v2.0.0 of the load balancer controller. On start-up of the aws-load-balancer-controller pod, however, I'm receiving the following error. {"level":"error","ts":1...
github.com
VPC ID를 받아오지 못해 발생하는 문제였기 때문에 helm upgrade를 통해 VPC ID를 직접 주입해주면 된다는 소리였다.
helm upgrade -i aws-load-balancer-controller eks/aws-load-balancer-controller \
--set clusterName=<cluster-name>\
--set serviceAccount.create=false \
--set serviceAccount.name=aws-load-balancer-controller \
--set vpcId=<vpc#> -n kube-system
설치 과정에서도 추가해줄 수 있다.
helm install aws-load-balancer-controller eks/aws-load-balancer-controller\
-n kube-system \
--set clusterName=kube-study \
--set serviceAccount.create=false \
--set serviceAccount.name=aws-load-balancer-controller \
--set vpcId=vpc-0687860284bf36c74
해당 명령어를 통해 VPC ID를 주입하니 정상적으로 동작하는 것을 볼 수 있다.