19장. 외부 DNS Operator
19.1. OpenShift Container Platform의 외부 DNS Operator
외부 DNS Operator는 ExternalDNS
를 배포 및 관리하여 외부 DNS 공급자에서 OpenShift Container Platform으로 서비스 및 경로에 대한 이름 확인을 제공합니다.
19.1.1. 외부 DNS Operator
외부 DNS Operator는 olm.openshift.io
API 그룹에서 외부 DNS API를 구현합니다. 외부 DNS Operator는 서비스, 경로 및 외부 DNS 공급자를 업데이트합니다.
사전 요구 사항
-
yq
CLI 툴을 설치했습니다.
프로세스
OperatorHub에서 필요에 따라 외부 DNS Operator를 배포할 수 있습니다. 외부 DNS Operator를 배포하면 Subscription
개체가 생성됩니다.
다음 명령을 실행하여 설치 계획의 이름을 확인합니다.
$ oc -n external-dns-operator get sub external-dns-operator -o yaml | yq '.status.installplan.name'
출력 예
install-zcvlr
다음 명령을 실행하여 설치 계획의 상태가
Complete
인지 확인합니다.$ oc -n external-dns-operator get ip <install_plan_name> -o yaml | yq '.status.phase'
출력 예
Complete
다음 명령을 실행하여
external-dns-operator
배포의 상태를 확인합니다.$ oc get -n external-dns-operator deployment/external-dns-operator
출력 예
NAME READY UP-TO-DATE AVAILABLE AGE external-dns-operator 1/1 1 1 23h
19.1.2. 외부 DNS Operator 로그
oc logs
명령을 사용하여 외부 DNS Operator 로그를 볼 수 있습니다.
프로세스
다음 명령을 실행하여 외부 DNS Operator의 로그를 확인합니다.
$ oc logs -n external-dns-operator deployment/external-dns-operator -c external-dns-operator
19.1.2.1. 외부 DNS Operator 도메인 이름 제한
외부 DNS Operator는 TXT 레코드에 대한 접두사를 추가하는 TXT 레지스트리를 사용합니다. 이렇게 하면 TXT 레코드의 도메인 이름의 최대 길이가 줄어듭니다. 해당 TXT 레코드 없이는 DNS 레코드를 존재할 수 없으므로 DNS 레코드의 도메인 이름은 TXT 레코드와 동일한 제한을 따라야 합니다. 예를 들어 < domain_name_from_source
>의 DNS 레코드는 external-dns-<record_type>-<domain_name_from_source
>의 TXT 레코드를 생성합니다.
외부 DNS Operator에서 생성한 DNS 레코드의 도메인 이름에는 다음과 같은 제한 사항이 있습니다.
레코드 유형 | 문자 수 |
---|---|
CNAME | 44 |
AzureDNS의 와일드카드 CNAME 레코드 | 42 |
A | 48 |
AzureDNS의 와일드카드 A 레코드 | 46 |
생성된 도메인 이름이 도메인 이름 제한 사항을 초과하는 경우 외부 DNS Operator 로그에 다음 오류가 표시됩니다.
time="2022-09-02T08:53:57Z" level=error msg="Failure in zone test.example.io. [Id: /hostedzone/Z06988883Q0H0RL6UMXXX]" time="2022-09-02T08:53:57Z" level=error msg="InvalidChangeBatch: [FATAL problem: DomainLabelTooLong (Domain label is too long) encountered with 'external-dns-a-hello-openshift-aaaaaaaaaa-bbbbbbbbbb-ccccccc']\n\tstatus code: 400, request id: e54dfd5a-06c6-47b0-bcb9-a4f7c3a4e0c6"