2.2. 环境要求


以下部分定义包含 OpenShift Container Platform 配置的环境要求。这包括网络注意事项,以及对外部服务的访问,如 Git 存储库访问、存储和云基础架构供应商。

2.2.1. DNS 要求

OpenShift Container Platform 需要环境中具有一个可以全面正常工作的 DNS 服务器。理想的情况是,在一个单独的主机上运行 DNS 软件,为平台上运行的主机和容器提供名称解析服务。

重要

只在每个主机的 /etc/hosts 文件中添加条目并不够。此文件不会被复制到平台上运行的容器中。

OpenShift Container Platform 的主要组件在容器内运行,并使用以下流程进行名称解析:

  1. 默认情况下,容器从它们的主机中接收 DNS 配置文件(/etc/resolv.conf)。
  2. 然后,OpenShift Container Platform 将 pod 的第一个名称服务器设置为节点的 IP 地址。

从 OpenShift Container Platform 3.2 开始,在所有 master 和节点上自动配置 dnsmasq。pod 使用节点作为其 DNS,节点会转发请求。默认情况下,dnsmasq 被配置为侦听节点上的端口 53,因此节点无法运行任何其他类型的 DNS 应用程序。

注意

NetworkManager 是提供自动连接到网络的系统的检测和配置程序。节点上需要它以便使用 DNS IP 地址填充 dnsmasq

默认将 NM_CONTROLLED 设置为 yes。如果 NM_CONTROLLED 被设置为 no,则 NetworkManager 分配脚本不会创建相关的 origin-upstream-dns.conf dnsmasq 文件,您必须手动配置 dnsmasq。

同样,如果在网络脚本中将 PEERDNS 参数设置为 no,例如 /etc/sysconfig/network-scripts/ifcfg-em1,则 dnsmasq 文件不会被生成,Ansible 安装将失败。确定将 PEERDNS 设置设定为 yes

以下是 DNS 记录示例:

master1    A   10.64.33.100
master2    A   10.64.33.103
node1      A   10.64.33.101
node2      A   10.64.33.102

如果没有可以正常工作的 DNS 环境,则可能会遇到以下问题:

  • 通过引用基于 Ansible 的脚本进行产品安装
  • 部署基础架构容器(registry、路由器)
  • 访问 OpenShift Container Platform Web 控制台,因为它只能通过 IP 地址访问

2.2.1.1. 配置主机使用 DNS

确保将环境中的每个主机配置为从 DNS 服务器解析主机名。主机 DNS 解析的配置取决于是否启用了 DHCP。如果 DHCP 是:

  • 禁用,将网络接口配置为静态,并在 NetworkManager 中添加 DNS 名称服务器。
  • 启用,NetworkManager 分配脚本根据 DHCP 配置自动配置 DNS。

验证您的 DNS 服务器可以解析主机:

  1. 检查 /etc/resolv.conf 文件的内容:

    $ cat /etc/resolv.conf
    # Generated by NetworkManager
    search example.com
    nameserver 10.64.33.1
    # nameserver updated by /etc/NetworkManager/dispatcher.d/99-origin-dns.sh

    在这个示例中,10.64.33.1 是 DNS 服务器的地址。

  2. 测试 /etc/resolv.conf 中列出的 DNS 服务器是否可以解析到 OpenShift Container Platform 环境中所有 master 和节点的 IP 地址:

    $ dig <node_hostname> @<IP_address> +short

    例如:

    $ dig master.example.com @10.64.33.1 +short
    10.64.33.100
    $ dig node1.example.com @10.64.33.1 +short
    10.64.33.101

2.2.1.2. 配置 DNS 通配符

另外,还可为路由器配置通配符,以便在添加新路由时无需更新 DNS 配置。如果您为路由器配置通配符,请在配置 Ansible 清单文件 时将 openshift_master_default_subdomain 参数设置为这个值。

DNS 区的通配符最终必须解析为 OpenShift Container Platform router 的 IP 地址。

例如,为 cloudapp 创建通配符 DNS 条目,该条目的 Time-to-live 值较低(TTL),并指向要部署路由器的主机的公共 IP 地址:

*.cloudapps.example.com. 300 IN  A 192.168.133.2
警告

在每个节点主机上的 /etc/resolv.conf 文件中,确保具有通配符条目的 DNS 服务器没有列为名称服务器,或者通配符域不在搜索列表中列出。否则,由 OpenShift Container Platform 管理的容器可能无法正确解析主机名。

2.2.1.3. 配置节点主机名

在设置不使用云供应商环境的集群时,您必须正确设置节点的主机名。每个节点的主机名必须可以被解析,每个节点必须能够访问其他节点。

确认节点可以访问另一个节点:

  1. 在一个节点上,获取主机名:

    $ hostname
    
    master-1.example.com
  2. 在同一节点上,获取主机的完全限定域名:

    $ hostname -f
    
    master-1.example.com
  3. 在另外一个节点中,确认您可以访问到第一个节点:

    $ ping master-1.example.com -c 1
    
    PING master-1.example.com (172.16.122.9) 56(84) bytes of data.
    64 bytes from master-1.example.com (172.16.122.9): icmp_seq=1 ttl=64 time=0.319 ms
    
    --- master-1.example.com ping statistics ---
    1 packets transmitted, 1 received, 0% packet loss, time 0ms
    rtt min/avg/max/mdev = 0.319/0.319/0.319/0.000 ms
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.