×

在AWS上的Red Hat OpenShift Service中,DNS Operator部署和管理CoreDNS实例,为集群内的Pod提供名称解析服务,启用基于DNS的Kubernetes服务发现,并解析内部cluster.local名称。

使用DNS转发

您可以通过以下方式使用DNS转发来覆盖/etc/resolv.conf文件中默认的转发配置

  • 为每个区域指定名称服务器(spec.servers)。如果转发的区域是由AWS上的Red Hat OpenShift Service管理的入口域,则上游名称服务器必须为此域授权。

    您必须至少指定一个区域。否则,您的集群可能会失去功能。

  • 提供上游DNS服务器列表(spec.upstreamResolvers)。

  • 更改默认转发策略。

默认域的DNS转发配置可以同时具有/etc/resolv.conf文件中指定的默认服务器和上游DNS服务器。

步骤
  1. 修改名为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.localzones字段的无效子域。
    3 定义选择forwardPlugin中列出的上游解析器的策略。默认值为Random。您也可以使用RoundRobinSequential值。
    4 每个forwardPlugin最多允许15个upstreams
    5 您可以使用upstreamResolvers覆盖默认转发策略,并将DNS解析转发到为默认域指定的DNS解析器(上游解析器)。如果您没有提供任何上游解析器,则DNS名称查询将转到/etc/resolv.conf中声明的服务器。
    6 确定upstreams中列出的上游服务器查询选择的顺序。您可以指定以下值之一:RandomRoundRobinSequential。默认值为Sequential
    7 省略时,平台将选择默认值,通常是原始客户端请求的协议。设置为TCP以指定平台应为所有上游DNS请求使用TCP,即使客户端请求使用UDP也是如此。
    8 用于配置传输类型、服务器名称以及转发DNS请求到上游解析器时使用的可选自定义CA或CA捆绑包。
    9 您可以指定两种类型的upstreamsSystemResolvConfNetworkSystemResolvConf配置上游使用/etc/resolv.conf,而Network定义Networkresolver。您可以同时指定一个或两个。
    10 如果指定的类型为Network,则必须提供IP地址。address字段必须是有效的IPv4或IPv6地址。
    11 如果指定的类型为Network,则可以选择提供端口。port字段的值必须在165535之间。如果您没有为上游指定端口,则默认端口为853。
其他资源