❗️문제 상황
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를 받아오지 못한다는 것이었다.
구글링을 해보니 나와 동일한 문제를 겪은 깃허브 이슈가 존재했다.
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를 주입하니 정상적으로 동작하는 것을 볼 수 있다.