10.3.5. 用户置备的基础架构对网络的要求
所有 Red Hat Enterprise Linux CoreOS(RHCOS)机器在启动过程中需要 initramfs
中的网络从机器配置服务器获取 Ignition 配置。
在初次启动过程中,需要一个 DHCP 服务器或集群中的每个机器都设置了静态 IP 地址来建立网络连接,以下载它们的 Ignition 配置文件。
建议您使用 DHCP 服务器为集群进行长期机器管理。确保 DHCP 服务器已配置为向集群机器提供持久 IP 地址和主机名。
Kubernetes API 服务器必须能够解析集群机器的节点名称。如果 API 服务器和 worker 节点位于不同的区域中,您可以配置默认 DNS 搜索区域,以便 API 服务器能够解析节点名称。另一种支持的方法是始终在节点对象和所有 DNS 请求中使用完全限定域名来指代主机。
您必须配置机器间的网络连接,以便集群组件进行通信。每台机器都必须能够解析集群中所有其他机器的主机名。
防火墙
配置防火墙以便集群能够访问所需的站点。
另请参阅:
负载均衡器
配置一个(最好为两个)L4 负载均衡器:
-
为 control-plane 和 bootstrap 机器上的端口
6443
和22623
提供负载均衡。端口6443
提供对 Kubernetes API 服务器的访问,且必须在内部和外部访问。集群内的节点必须能够访问端口22623
。 -
为运行入口路由器(通常是默认配置中的计算节点)的机器提供端口
443
和80
的负载均衡。这两个端口都必须从集群内部和外部访问。
DNS
配置基础架构提供的 DNS 以便正确解析主要组件和服务。如果您只使用一个负载均衡器,这些 DNS 记录可以指向相同的 IP 地址。
-
为
api.<cluster_name>.<base_domain>
(内部和外部解析)和api-int.<cluster_name>.<base_domain>
(内部解析)创建 DNS 记录,指向 control plane 机器的负载均衡器。 -
为
*.apps.<cluster_name>.<base_domain>
创建一个 DNS 记录,指向入口路由器的负载均衡器。例如,计算机器的端口443
和80
。
协议 | 端口 | 描述 |
---|---|---|
ICMP | N/A | 网络可访问性测试 |
TCP |
| 指标 |
|
主机级别的服务,包括端口 | |
| Kubernetes 保留的默认端口 | |
| openshift-sdn | |
UDP |
| VXLAN 和 Geneve |
| VXLAN 和 Geneve | |
|
主机级别的服务,包括端口 | |
TCP/UDP |
| Kubernetes 节点端口 |
协议 | 端口 | 描述 |
---|---|---|
TCP |
| Kubernetes API |
协议 | 端口 | 描述 |
---|---|---|
TCP |
| etcd 服务器和对等端口 |
网络拓扑要求
您为集群置备的基础架构必须满足下列网络拓扑要求。
OpenShift Container Platform 要求所有节点都能访问互联网,以便为平台容器提取镜像并向红帽提供遥测数据。
负载均衡器
在安装 OpenShift Container Platform 前,您必须置备两个满足以下要求的负载均衡器:
API 负载均衡器:提供一个通用端点,供用户(包括人和机器)与平台交互和配置。配置以下条件:
- 只适用于第 4 层负载均衡。这可被称为 Raw TCP、SSL Passthrough 或者 SSL 桥接模式。如果使用 SSL Bridge 模式,必须为 API 路由启用 Server Name Indication(SNI)。
- 无状态负载平衡算法。这些选项根据负载均衡器的实现而有所不同。
重要不要为 API 负载均衡器配置会话持久性。
在负载均衡器的前端和后台配置以下端口:
表 10.9. API 负载均衡器 端口 后端机器(池成员) 内部 外部 描述 6443
Bootstrap 和 control plane.bootstrap 机器初始化集群 control plane 后,您要从负载均衡器中删除 bootstrap 机器。您必须为 API 服务器健康检查探测配置
/readyz
端点。X
X
Kubernetes API 服务器
22623
Bootstrap 和 control plane.bootstrap 机器初始化集群 control plane 后,您要从负载均衡器中删除 bootstrap 机器。
X
机器配置服务器
注意负载均衡器必须配置为,从 API 服务器关闭
/readyz
端点到从池中删除 API 服务器实例时最多需要 30 秒。在/readyz
返回错误或处于健康状态后的时间范围内,端点必须被删除或添加。每 5 秒或 10 秒探测一次,有两个成功请求处于健康状态,三个成为不健康的请求经过测试。应用程序入口负载均衡器:提供来自集群外部的应用程序流量流量的 Ingress 点。配置以下条件:
- 只适用于第 4 层负载均衡。这可被称为 Raw TCP、SSL Passthrough 或者 SSL 桥接模式。如果使用 SSL Bridge 模式,您必须为 Ingress 路由启用Server Name Indication(SNI)。
- 建议根据可用选项以及平台上托管的应用程序类型,使用基于连接的或者基于会话的持久性。
在负载均衡器的前端和后台配置以下端口:
表 10.10. 应用程序入口负载均衡器 端口 后端机器(池成员) 内部 外部 描述 443
默认运行入口路由器 Pod、计算或 worker 的机器。
X
X
HTTPS 流量
80
默认运行入口路由器 Pod、计算或 worker 的机器。
X
X
HTTP 流量
如果负载均衡器可以看到客户端的真实 IP 地址,启用基于 IP 的会话持久性可提高使用端到端 TLS 加密的应用程序的性能。
OpenShift Container Platform 集群需要正确配置入口路由器。control plane 初始化后,您必须配置入口路由器。
NTP 配置
OpenShift Container Platform 集群默认配置为使用公共网络时间协议(NTP)服务器。如果要使用本地企业 NTP 服务器,或者集群部署在断开连接的网络中,您可以将集群配置为使用特定的时间服务器。如需更多信息,请参阅配置 chrony 时间服务的文档。
如果 DHCP 服务器提供 NTP 服务器信息,Red Hat Enterprise Linux CoreOS(RHCOS)机器上的 chrony 时间服务会读取信息,并可与 NTP 服务器同步时钟。