반응형
Ingress가 트래픽 경로를 정의하면, ExternalDNS가 이를 감지해 Route53에 DNS 레코드를 자동 등록한다.
EKS 환경에서 도메인을 효율적으로 관리하고 싶다면 반드시 알아야 할 구성이라고 본다.
동작 원리 요약
1. Ingress 리소스 생성 (예: host: app.example.com)
2. Ingress Controller (예: ALB) 가 실제 로드밸런서 생성
3. ExternalDNS 가 Ingress 리소스를 감지
4. Route53 Hosted Zone에 DNS 레코드 등록
- A 레코드: app.example.com → ALB DNS 이름
- TXT 레코드: 소유권 확인용 메타 정보 저장
1. Ingress 리소스 생성 (host: app.example.com)
│
▼
2. Ingress Controller(ALB 등)가 실제 로드밸런서 생성
│
▼
3. ExternalDNS가 Ingress 리소스를 감지
│
▼
4. Route53에 도메인 등록
- A 레코드: app.example.com → ALB DNS 이름
- TXT 레코드: 소유권 확인용 메타 정보 저장
Ingress Controller 예시
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-app
annotations:
external-dns.alpha.kubernetes.io/hostname: app.example.com
# ExternalDNS가 추적할 수 있는 힌트 제공
spec:
rules:
- host: app.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service
port:
number: 80
💡 주요 포인트: external-dns.alpha.kubernetes.io/hostname 어노테이션은 ExternalDNS가 이 Ingress를 감지할 수 있게 해준다.
ExternalDNS 역할
- Kubernetes Ingress나 Service 리소스의 도메인 정보를 감지
- 감지된 정보를 기반으로 AWS Route53에 A 레코드 및 TXT 레코드를 자동 등록
- 생성되는 레코드:
- A 레코드: app.example.com → ALB의 DNS 주소
- TXT 레코드: app.example.com의 소유권 메타 정보
(예: "heritage=external-dns,external-dns/owner=my-cluster")
Route53과 연동
- ExternalDNS는 Route53의 API를 이용해 Hosted Zone에 레코드를 등록한다.
- 따라서 IAM 권한이 필수이다.
정리하자면, EKS 환경에서 도메인 자동화의 핵심은 ExternalDNS + Ingress + Route53의 유기적인 연결이다.
ExternalDNS는 수동 설정 없이 도메인 등록을 자동화하여, 운영 효율성과 안정성을 크게 향상시켜 준다.
반응형
'OPS' 카테고리의 다른 글
Kubernetes Pod와 Deployment 수정 방법 정리 (0) | 2025.04.28 |
---|---|
DevOps 스터디 - 인그레스(Ingress) #1 (0) | 2025.04.27 |
Zonal shift delegated to dns가 뭐야? (0) | 2025.04.23 |
[AWS 실무 팁] S3 aws s3 sync 시 AccessDenied 해결법 (0) | 2025.04.22 |
[AWS 실무 작업기] Datadog Lambda Forwarder 버전 업그레이드 (v3.73.0 적용 및 트러블슈팅) (0) | 2025.04.21 |