This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.第16章 外部 DNS Operator
16.1. OpenShift Container Platform の外部 DNS Operator リンクのコピーリンクがクリップボードにコピーされました!
外部 DNS Operator は、ExternalDNS
をデプロイして管理し、外部 DNS プロバイダーから OpenShift Container Platform へのサービスおよびルートの名前解決を提供します。
16.1.1. 外部 DNS Operator リンクのコピーリンクがクリップボードにコピーされました!
外部 DNS Operator は、olm.openshift.io
API グループから外部 DNS API を実装します。外部 DNS Operator は、デプロイメントリソースを使用して ExternalDNS
をデプロイします。外部 DNS デプロイメントは、クラスター内のサービスやルートなどのリソースを監視し、外部 DNS プロバイダーを更新します。
手順
OperatorHub からオンデマンドで ExternalDNS Operator をデプロイできます。これにより、Subscription
オブジェクトが作成されます。
インストールプランの名前を確認してください。
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 出力例
install-zcvlr
install-zcvlr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow インストールプランのステータスを確認します。インストールプランのステータスは
Complete
でなければなりません。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 出力例
Complete
Complete
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get
コマンドを使用してDeployment
ステータスを表示します。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
16.1.2. 外部 DNS Operator ログ リンクのコピーリンクがクリップボードにコピーされました!
oc logs
コマンドを使用して、外部 DNS Operator のログを表示できます。
手順
外部 DNS Operator のログを表示します。
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
16.1.2.1. 外部 DNS Operator のドメイン名の制限 リンクのコピーリンクがクリップボードにコピーされました!
外部 DNS Operator は、新しい形式に従って TXT レコードの接頭辞を追加する TXT レジストリーを使用します。これにより、TXT レコードのドメイン名の最大長が短くなります。DNS レコードは対応する TXT レコードなしでは存在できないため、DNS レコードのドメイン名は TXT レコードと同じ制限に従う必要があります。たとえば、DNS レコードは <domain-name-from-source>
で、TXT レコードは external-dns-<record-type>-<domain-name-from-source>
です。
外部 DNS Operator によって生成される DNS レコードのドメイン名には、次の制限があります。
レコードの種類 | 文字数 |
---|---|
CNAME | 44 |
AzureDNS のワイルドカード CNAME レコード | 42 |
A | 48 |
AzureDNS のワイルドカード A レコード | 46 |
外部 DNS によって生成されたドメイン名がドメイン名の制限を超えている場合、外部 DNS インスタンスは次のエラーを返します。
oc -n external-dns-operator logs external-dns-aws-7ddbd9c7f8-2jqjh
$ oc -n external-dns-operator logs external-dns-aws-7ddbd9c7f8-2jqjh
- 1
external-dns-aws-7ddbd9c7f8-2jqjh
パラメーターは、外部 DNS Pod の名前を指定します。
出力例
time="2022-09-02T08:53:57Z" level=info msg="Desired change: CREATE external-dns-cname-hello-openshift-aaaaaaaaaa-bbbbbbbbbb-ccccccc.test.example.io TXT [Id: /hostedzone/Z06988883Q0H0RL6UMXXX]" time="2022-09-02T08:53:57Z" level=info msg="Desired change: CREATE external-dns-hello-openshift-aaaaaaaaaa-bbbbbbbbbb-ccccccc.test.example.io TXT [Id: /hostedzone/Z06988883Q0H0RL6UMXXX]" time="2022-09-02T08:53:57Z" level=info msg="Desired change: CREATE hello-openshift-aaaaaaaaaa-bbbbbbbbbb-ccccccc.test.example.io A [Id: /hostedzone/Z06988883Q0H0RL6UMXXX]" 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=info msg="Desired change: CREATE external-dns-cname-hello-openshift-aaaaaaaaaa-bbbbbbbbbb-ccccccc.test.example.io TXT [Id: /hostedzone/Z06988883Q0H0RL6UMXXX]"
time="2022-09-02T08:53:57Z" level=info msg="Desired change: CREATE external-dns-hello-openshift-aaaaaaaaaa-bbbbbbbbbb-ccccccc.test.example.io TXT [Id: /hostedzone/Z06988883Q0H0RL6UMXXX]"
time="2022-09-02T08:53:57Z" level=info msg="Desired change: CREATE hello-openshift-aaaaaaaaaa-bbbbbbbbbb-ccccccc.test.example.io A [Id: /hostedzone/Z06988883Q0H0RL6UMXXX]"
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"