전공영역 공부 기록

ExternalDNS로 Route53에 cname레코드 등록 방법

악분 2024. 3. 29. 01:05
반응형

시작하며

종종 Route53에 cname 설정이 필요할 때가 있습니다. EKS에서 ExternalDNS를 사용하면 디폴트 설정으로 A레코드가 등록됩니다. 따라서 ExternalDNS로 cname을 설정할려면 추가 설정이 필요합니다.

 

cname설정 방법

방법은 간단합니다. ingress annotations필드에 "external-dns.alpha.kubernetes.io/target"를 지정하면, A레코드 대신 cname이 설정됩니다.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx-ingress
  annotations:
    external-dns.alpha.kubernetes.io/hostname: nginx.example.com
    external-dns.alpha.kubernetes.io/target: cname.example.com
    
 ... 이하생략

 

에러 케이스

ExternalDNS pod에 txt registry설정을 했다면, 아래와 같이 "already exists" 또는 conflict에러가 발생하면서 cname레코드 생성이 안됩니다. cname레코드와 txt레코드가 동일한 이름으로 생성되어서 중복에러가 발생한 겁니다. 

is not permitted because a conflicting RRSet of type  CNAME with the same DNS name already exists

 

에러를 해소하기 위해 txt레코드 앞에 접두사를 붙이는 "--txt-prefix"를 ExternalDNS pod의 args에 추가합니다. 아래 예는 txt레코드에 "external-dns."접두사를 붙입니다.

containers:
  - name: external-dns
    args:
      - --txt-prefix=external-dns.
... 이하생략

 

 

참고자료

 

 

반응형

'전공영역 공부 기록' 카테고리의 다른 글

EKS IPv6에서 IPv4통신 원리  (0) 2024.03.31
EKS IPv6 pod간 통신  (0) 2024.03.31
EKS IPv6에서 ArgoCD 설치 방법  (0) 2024.03.24
EKS IPv6 VPC CNI 특징  (0) 2024.03.23
EKS IPv6 생성방법  (0) 2024.03.17