본문 바로가기
IT/Kubernetes

[ingress] alb 생성이 되지 않는 문제

by FreeYourMind 2022. 5. 28.

k8s 환경은 node group 내부에서 생성된다.

ingress의 load balancer를 생성은 node group 외부의 cloud 자원이므로 해당 자원 생성 권한을 k8s service account가 가지고 있어야만 한다.

이 권한을 부여해주기 위해서는 EKS cluster의 OIDC provider에 aws resource를 생성할 수 있는 권한을 부여하고 이를 k8s service account와 연결해주는 작업이 필요하다.

 

1. EKS cluster OIDC provider 생성 

- aws_iam_openid_connect_provider (in terraform)

2. OIDC provider에 권한 부여

- aws_iam_policy_attachment (in terraform)

3. k8s sa(aws-load-balancer-controller) 생성 및 권한 부여

- kubernetes_service_account (in terraform)

4. helm, 3번의 sa를 통해 aws lb를 control하는 pod를 배포

- helm install aws-load-balancer-controller eks/aws-load-balancer-controller -n kube-system --set clusterName=${} --set serviceAccount.create=false --set serviceAccount.name=${}

 

참고

https://devblog.croquis.com/ko/2022-03-31-3-build-eks-cluster-with-terraform/ 

https://verifa.io/blog/how-to-assume-an-aws-iam-role-from-a-service-account-in-eks-with-terraform/index.html 

https://aws.amazon.com/ko/blogs/containers/diving-into-iam-roles-for-service-accounts/ 

https://aws.amazon.com/ko/premiumsupport/knowledge-center/eks-pods-iam-role-service-accounts/ 

https://veluxer62.github.io/study/kubernetes-study-05/ 

https://tech.devsisters.com/posts/pod-iam-role/ '

https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc_verify-thumbprint.html#thumbstep2 

https://aws.amazon.com/ko/premiumsupport/knowledge-center/load-balancer-troubleshoot-creating/ 

 

 

 

 

댓글