External DNS IAM Role 설정 (IRSA)
본인은 Terraform으로 생성하였지만 AWS 공식문서에 나와있는대로 eksctl로 설치해도 무방하다.
문서 : https://aws.amazon.com/ko/premiumsupport/knowledge-center/eks-set-up-externaldns/
지원 내역
본인은 Istio와 AWS LoadBalancer Controller에서 사용해보았다.
https://github.com/kubernetes-sigs/external-dns#deploying-to-a-cluster
Helm으로 external-dns 설치
위의 Github으로 접속하여 values.yaml을 Local로 가져온다. 이는 본인 환경에 맞게 values.yaml을 변경하기 위함이다.
https://github.com/kubernetes-sigs/external-dns/tree/master/charts/external-dns
Helm 으로 External DNS 구성
# Repo 설치
helm repo add external-dns https://kubernetes-sigs.github.io/external-dns/
helm repo update external-dns
# Helm Values를 통해 External DNS 설치
helm upgrade --install -f values.yaml \
--namespace kube-system external-dns external-dns/external-dns
# 업그레이드
helm upgrade -f values.yaml \
--namespace kube-system external-dns external-dns/external-dns
values.yaml 수정 내역
[1] ServiceAccount
External DNS의 IAM Role ARN을 기입할 수 있도록 SA Annotation에 추가
[2] nodeSelector
특정 Nodegroup에 배치될 수 있도록 nodeSelector 지정
[3] extraArgs
추가 Argument들을 기입.
이 부분이 중요한데, aws-zone-types, assume-role, zone-id-filter, zone-name-fiolter, exclude-domains, domain-filter 등 여러가지 추가 옵션을 설정할 수 있다.
참고로 aws-assume-role 설정은 Cross Account Role 설정을 수행하도록 도와주는 옵션이다.
해당 SA의 Annotation에 기입된 IAM Role은 Cross Account IAM Role에 대해 sts:assumeRole 수행할 권한이 부여되어 있어야 하고 Cross Account의 IAM Role은 신뢰관계에 등록되어 있어야 한다.
'AWS' 카테고리의 다른 글
[Istio] EKS 환경에서 Istio로 여러개의 ALB, NLB 모두 사용하기 (0) | 2022.09.17 |
---|---|
[EKS 애드온 #2] Cluster Autoscaler Helm으로 설치하기 (0) | 2022.08.27 |
[EKS] EKS Cluster 구축 시 고려 사항 정리 (Terraform, Terragrunt, IRSA, Atlantis, Addon, ..) (1) | 2022.08.12 |
[ECS] FireLens로 ECS Fargate 컨테이너 로그 ElasticSearch로 보내기 (0) | 2022.05.02 |
[ECS] ECS Exec를 사용하여 ECS Fargate 컨테이너에 접속하기 (0) | 2022.04.29 |