4.2. 외부 DNS 운영자 이해
외부 DNS 운영자는 외부 DNS 공급자에서 OpenShift Container Platform으로의 서비스와 경로에 대한 이름 확인을 제공하기 위해 ExternalDNS를
배포하고 관리합니다.
4.2.1. 외부 DNS Operator 링크 복사링크가 클립보드에 복사되었습니다!
외부 DNS 운영자는 olm.openshift.io
API 그룹의 외부 DNS API를 구현합니다. 외부 DNS 운영자는 서비스, 경로 및 외부 DNS 공급자를 업데이트합니다.
사전 요구 사항
-
yq
CLI 도구를 설치했습니다.
프로세스
OperatorHub에서 필요에 따라 외부 DNS 운영자를 배포할 수 있습니다. 외부 DNS 운영자를 배포하면 구독
개체가 생성됩니다.
다음 명령을 실행하여
install-zcvlr
과 같은 설치 계획의 이름을 확인하세요.oc -n external-dns-operator get sub external-dns-operator -o yaml | yq '.status.installplan.name'
$ oc -n external-dns-operator get sub external-dns-operator -o yaml | yq '.status.installplan.name'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 설치 계획의 상태가
완료
인지 확인하세요.oc -n external-dns-operator get ip <install_plan_name> -o yaml | yq '.status.phase'
$ oc -n external-dns-operator get ip <install_plan_name> -o yaml | yq '.status.phase'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
external-dns-operator
배포 상태를 확인하세요.oc get -n external-dns-operator deployment/external-dns-operator
$ oc get -n external-dns-operator deployment/external-dns-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY UP-TO-DATE AVAILABLE AGE external-dns-operator 1/1 1 1 23h
NAME READY UP-TO-DATE AVAILABLE AGE external-dns-operator 1/1 1 1 23h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.2. 외부 DNS 운영자 로그 보기 링크 복사링크가 클립보드에 복사되었습니다!
oc logs
명령을 사용하면 외부 DNS 운영자 로그를 볼 수 있습니다.
프로세스
다음 명령을 실행하여 외부 DNS 운영자의 로그를 확인하세요.
oc logs -n external-dns-operator deployment/external-dns-operator -c external-dns-operator
$ oc logs -n external-dns-operator deployment/external-dns-operator -c external-dns-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.2.1. 외부 DNS 운영자 도메인 이름 제한 링크 복사링크가 클립보드에 복사되었습니다!
외부 DNS 운영자는 TXT 레코드에 접두사를 추가하는 TXT 레지스트리를 사용합니다. 이렇게 하면 TXT 레코드에 대한 도메인 이름의 최대 길이가 줄어듭니다. DNS 레코드는 해당 TXT 레코드 없이는 존재할 수 없으므로 DNS 레코드의 도메인 이름은 TXT 레코드와 동일한 제한을 따라야 합니다. 예를 들어, <domain_name_from_source>
의 DNS 레코드는 external-dns-<record_type>-<domain_name_from_source>
의 TXT 레코드를 생성합니다.
외부 DNS 운영자가 생성한 DNS 레코드의 도메인 이름에는 다음과 같은 제한이 있습니다.
레코드 유형 | 문자 수 |
---|---|
씨네임 | 44 |
AzureDNS의 와일드카드 CNAME 레코드 | 42 |
A | 48 |
AzureDNS의 와일드카드 A 레코드 | 46 |
생성된 도메인 이름이 도메인 이름 제한을 초과하는 경우 외부 DNS 운영자 로그에 다음 오류가 나타납니다.
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"
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"