第 3 章 Red Hat OpenShift Service on AWS 中的 DNS Operator
在 Red Hat OpenShift Service on AWS 中,DNS Operator 会部署和管理 CoreDNS 实例,为集群中的 pod 提供名称解析服务,启用基于 DNS 的 Kubernetes 服务发现,并解析内部 cluster.local
名称。
3.1. 使用 DNS 转发
您可以使用以下方法使用 DNS 转发来覆盖 /etc/resolv.conf
文件中的默认转发配置:
为每个区指定名称服务器 (
spec.servers
)。如果转发区是由 Red Hat OpenShift Service on AWS 管理的入口域,则必须为域授权上游名称服务器。重要您必须至少指定一个区。否则,集群可能会丢失功能。
-
提供上游 DNS 服务器列表 (
spec.upstreamResolvers
)。 - 更改默认转发策略。
默认域的 DNS 转发配置可以同时在 /etc/resolv.conf
文件和上游 DNS 服务器中指定默认服务器。
流程
修改名为
default
的 DNS Operator 对象:$ oc edit dns.operator/default
发出上一命令后,Operator 会根据
spec.servers
创建并更新名为dns-default
的配置映射,并使用额外的服务器配置块。重要当为
zones
参数指定值时,请确保只转发到特定区域,如您的内网。您必须至少指定一个区。否则,集群可能会丢失功能。如果任何服务器都没有与查询匹配的区域,则名称解析会返回上游 DNS 服务器。
配置 DNS 转发
apiVersion: operator.openshift.io/v1 kind: DNS metadata: name: default spec: cache: negativeTTL: 0s positiveTTL: 0s logLevel: Normal nodePlacement: {} operatorLogLevel: Normal servers: - name: example-server 1 zones: - example.com 2 forwardPlugin: policy: Random 3 upstreams: 4 - 1.1.1.1 - 2.2.2.2:5353 upstreamResolvers: 5 policy: Random 6 protocolStrategy: "" 7 transportConfig: {} 8 upstreams: - type: SystemResolvConf 9 - type: Network address: 1.2.3.4 10 port: 53 11 status: clusterDomain: cluster.local clusterIP: x.y.z.10 conditions: ...
- 1
- 必须符合
rfc6335
服务名称语法。 - 2
- 必须符合
rfc1123
服务名称语法中的子域的定义。集群域cluster.local
是对zones
字段的无效子域。 - 3
- 定义用于选择
forwardPlugin
中列出的上游解析器的策略。默认值为Random
。您还可以使用RoundRobin
, 和Sequential
值。 - 4
- 每个
forwardPlugin
最多允许 15 个upstreams
。 - 5
- 您可以使用
upstreamResolvers
覆盖默认转发策略,并将 DNS 解析转发到默认域的指定 DNS 解析器(上游解析器)。如果没有提供任何上游解析器,DNS 名称查询将进入/etc/resolv.conf
中声明的服务器。 - 6
- 决定选择上游中列出的
upstreams
服务器进行查询的顺序。您可以指定这些值之一:Random
、RoundRobin
或Sequential
。默认值为Sequential
。 - 7
- 如果被省略,平台会选择一个默认值,通常是原始客户端请求的协议。设置为
TCP
,以指定平台应该对所有上游 DNS 请求使用 TCP,即使客户端请求使用了 UDP。 - 8
- 用于配置传输类型、服务器名称和可选自定义 CA 或 CA 捆绑包,以便在将 DNS 请求转发到上游解析器时使用。
- 9
- 您可以指定两个类型的
upstreams
:SystemResolvConf
或Network
。SystemResolvConf
将上游配置为使用/etc/resolv.conf
和Network
定义一个Networkresolver
。您可以指定其中一个或两者都指定。 - 10
- 如果指定类型是
Network
,则必须提供 IP 地址。address
字段必须是有效的 IPv4 或 IPv6 地址。 - 11
- 如果指定类型是
Network
,您可以选择性地提供端口。port
字段必须是1
到65535
之间的值。如果您没有为上游指定端口,则默认端口为 853。
其他资源
- 有关 DNS 转发的详情,请查看 CoreDNS 转发文档。