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 复制链接链接已复制到粘贴板!
External DNS Operator 部署并管理 ExternalDNS
,以便为从外部 DNS 供应商到 OpenShift Container Platform 的服务和路由提供名称解析。
16.1.1. 外部 DNS Operator 复制链接链接已复制到粘贴板!
External DNS Operator 从 olm.openshift.io
API 组实现外部 DNS API。External DNS Operator 使用部署资源部署 ExternalDNS
。ExternalDNS 部署会监视集群中服务和路由等资源,并更新外部 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
命令来查看部署
状态 :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 registry,它遵循新格式并为 TXT 记录添加前缀。这可减少 TXT 记录的域名的最大长度。没有对应的 TXT 记录时无法出现 DNS 记录,因此 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"