2.2. 配置要在私有区中发布的 DNS 记录


对于所有 OpenShift Container Platform 集群,无论是公共还是私有,DNS 记录都会默认在公共区中发布。

您可以从集群 DNS 配置中删除公共区,以避免向公共公开 DNS 记录。您可能希望避免公开敏感信息,如内部域名、内部 IP 地址或机构中的集群数量,或者您可能不需要公开发布记录。如果所有能够连接到集群内的服务的客户端都使用具有私有区的 DNS 记录的私有 DNS 服务,则不需要集群的公共 DNS 记录。

部署集群后,您可以通过修改 DNS 自定义资源 (CR) 来修改其 DNS 使其只使用私有区。以这种方式修改 DNS CR 意味着,任何随后创建的 DNS 记录都不会发布到公共 DNS 服务器,从而保持对内部用户隔离的 DNS 记录知识。当您将集群配置为私有时,也可以完成此操作,或者如果您不希望 DNS 记录可以公开解析。

或者,即使在私有集群中,您也可以保留 DNS 记录的公共区,因为它允许客户端为该集群中运行的应用程序解析 DNS 名称。例如,机构可以有连接到公共互联网的机器,然后为特定私有 IP 范围建立 VPN 连接,以连接到私有 IP 地址。这些机器的 DNS 查找使用公共 DNS 来确定这些服务的专用地址,然后通过 VPN 连接到私有地址。

流程

  1. 运行以下命令并查看输出,查看集群的 DNS CR:

    $ oc get dnses.config.openshift.io/cluster -o yaml

    输出示例

    apiVersion: config.openshift.io/v1
    kind: DNS
    metadata:
      creationTimestamp: "2019-10-25T18:27:09Z"
      generation: 2
      name: cluster
      resourceVersion: "37966"
      selfLink: /apis/config.openshift.io/v1/dnses/cluster
      uid: 0e714746-f755-11f9-9cb1-02ff55d8f976
    spec:
      baseDomain: <base_domain>
      privateZone:
        tags:
          Name: <infrastructure_id>-int
          kubernetes.io/cluster/<infrastructure_id>: owned
      publicZone:
        id: Z2XXXXXXXXXXA4
    status: {}

    请注意,spec 部分包含一个私有区和一个公共区。

  2. 运行以下命令来修补 DNS CR 以删除公共区:

    $ oc patch dnses.config.openshift.io/cluster --type=merge --patch='{"spec": {"publicZone": null}}'

    输出示例

    dns.config.openshift.io/cluster patched

    当为 IngressController 对象创建 DNS 记录时,Ingress Operator 会参考 DNS CR 定义。如果只指定私有区,则只创建私有记录。

    重要

    当您删除公共区时,不会修改现有 DNS 记录。如果您不再希望公开发布它们,则必须手动删除之前发布的公共 DNS 记录。

验证

  • 运行以下命令并查看输出,查看集群的 DNS CR,并确认已删除公共区:

    $ oc get dnses.config.openshift.io/cluster -o yaml

    输出示例

    apiVersion: config.openshift.io/v1
    kind: DNS
    metadata:
      creationTimestamp: "2019-10-25T18:27:09Z"
      generation: 2
      name: cluster
      resourceVersion: "37966"
      selfLink: /apis/config.openshift.io/v1/dnses/cluster
      uid: 0e714746-f755-11f9-9cb1-02ff55d8f976
    spec:
      baseDomain: <base_domain>
      privateZone:
        tags:
          Name: <infrastructure_id>-int
          kubernetes.io/cluster/<infrastructure_id>-wfpg4: owned
    status: {}

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.