第 16 章 外部 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 对象。

  1. 检查安装计划的名称:

    $ oc -n external-dns-operator get sub external-dns-operator -o yaml | yq '.status.installplan.name'
    Copy to Clipboard Toggle word wrap

    输出示例

    install-zcvlr
    Copy to Clipboard Toggle word wrap

  2. 检查安装计划的状态,安装计划的状态必须为 Complete

    $ oc -n external-dns-operator get ip <install_plan_name> -o yaml | yq '.status.phase'
    Copy to Clipboard Toggle word wrap

    输出示例

    Complete
    Copy to Clipboard Toggle word wrap

  3. 使用 oc get 命令来查看部署状态 :

    $ oc get -n external-dns-operator deployment/external-dns-operator
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                    READY     UP-TO-DATE   AVAILABLE   AGE
    external-dns-operator   1/1       1            1           23h
    Copy to Clipboard Toggle word wrap

16.1.2. 外部 DNS Operator 日志

您可以使用 oc logs 命令查看外部 DNS Operator 日志。

流程

  1. 查看外部 DNS Operator 的日志:

    $ oc logs -n external-dns-operator deployment/external-dns-operator -c external-dns-operator
    Copy to Clipboard Toggle word wrap

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 记录的域名有以下限制:

Expand
记录类型字符数

CNAME

44

AzureDNS 上的通配符 CNAME 记录

42

A

48

AzureDNS 上的通配符 A 记录

46

如果外部 DNS 生成的域名超过域名限制,外部 DNS 实例会给出以下错误:

$ oc -n external-dns-operator logs external-dns-aws-7ddbd9c7f8-2jqjh 
1
Copy to Clipboard Toggle word wrap
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"
Copy to Clipboard Toggle word wrap

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat