External DNS는 Kubernetes 클러스터에 배포된 서비스의 IP 주소를 자동으로 DNS 서비스에 등록해 주는 Kubernetes 애드온입니다. 이 도구를 사용하면 클러스터 내부에서 생성된 서비스나 인그레스 리소스의 변경 사항을 감지하여, 해당 서비스의 DNS 레코드를 외부 DNS 관리 서비스(예: AWS Route 53, Google Cloud DNS, Cloudflare 등)에 자동으로 생성하고 업데이트합니다.
# Helm Repo 추가
helm repo add external-dns <https://kubernetes-sigs.github.io/external-dns/>
# 배포
helm upgrade --install external-dns external-dns/external-dns
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"route53:ChangeResourceRecordSets"
],
"Resource": [
"arn:aws:route53:::hostedzone/"
]
},
{
"Effect": "Allow",
"Action": [
"route53:ListHostedZones",
"route53:ListResourceRecordSets",
"route53:ListTagsForResource"
],
"Resource": [
"*"
]
}
]
}