第 11 章 网络配置

这部分论述了使用 Assisted Installer 进行网络配置的基础知识。

11.1. 集群网络

OpenShift 使用各种网络类型和地址,并在下表中列出。

类型DNS描述

clusterNetwork

 

从中分配 Pod IP 地址的 IP 地址池。

serviceNetwork

 

服务的 IP 地址池。

machineNetwork

 

组成集群的机器的 IP 地址块。

apiVIP

api.<clustername.clusterdomain>

用于 API 通信的 VIP。这个设置必须提供,或者在 DNS 中预先配置,以便正确解析默认名称。如果要使用双栈网络部署,则必须是 IPv4 地址。

apiVIPs

api.<clustername.clusterdomain>

用于 API 通信的 VIP。这个设置必须提供,或者在 DNS 中预先配置,以便正确解析默认名称。如果使用双栈网络,则第一个地址必须是 IPv4 地址,第二个地址必须是 IPv6 地址。您还必须设置 apiVIP 设置。

ingressVIP

*.apps.<clustername.clusterdomain>

用于入口流量的 VIP。如果要使用双栈网络部署,则必须是 IPv4 地址。

ingressVIPs

*.apps.<clustername.clusterdomain>

用于入口流量的 VIP。如果您使用双栈网络部署,则第一个地址必须是 IPv4 地址,第二个地址必须是 IPv6 地址。您还必须设置 ingressVIP 设置。

注意

OpenShift Container Platform 4.12 引入了新的 apiVIPsingressVIPs 设置,用于接受双栈网络的多个 IP 地址。使用双栈网络时,第一个 IP 地址必须是 IPv4 地址,第二个 IP 地址必须是 IPv6 地址。新设置将替换 apiVIPIngressVIP,但在使用 API 修改配置时,您必须同时设置新的和旧设置。

根据所需的网络堆栈,您可以选择不同的网络接口控制器。目前,辅助服务可以使用以下配置之一部署 OpenShift Container Platform 集群:

  • IPv4
  • IPv6
  • 双栈(IPv4 + IPv6)

支持的网络接口控制器取决于所选的堆栈,并在下表中总结。有关详细的 Container Network Interface (CNI)网络供应商功能比较,请参阅 OCP 网络文档

stackSDNOVN

IPv4

IPv6

dual-stack

注意

OVN 是 OpenShift Container Platform 4.12 及更新的版本中的默认 Container Network Interface (CNI)。

11.1.1. 限制

11.1.1.1. SDN

  • 使用单节点 OpenShift (SNO)时,不支持 SDN 控制器。
  • SDN 控制器不支持 IPv6。

11.1.1.2. OVN-Kubernetes

请参阅 OCP 文档中的 OVN-Kubernetes 限制 部分

11.1.2. 集群网络

集群网络是一个网络,集群中部署的每个 Pod 都从中获取其 IP 地址。如果工作负载可以在组成集群的多个节点间存在,因此网络供应商可以根据 Pod 的 IP 地址轻松查找单个节点。为此,clusterNetwork.cidr 被进一步分成 clusterNetwork.hostPrefix 中定义的大小的子网。

主机前缀指定分配给集群中每个节点的子网的长度。集群如何为多节点集群分配地址的示例:

---
  clusterNetwork:
  - cidr: 10.128.0.0/14
    hostPrefix: 23
---

使用上述代码片段创建 3 节点集群可以创建以下网络拓扑:

  • 在节点 #1 中调度的 Pod 从 10.128.0.0/23获取 IP
  • 在节点中调度的 Pod #2 从 10.128.2.0/23获取 IP
  • 在节点中调度的 Pod #3 从 10.128.4.0/23获取 IP

解释 OVN-K8s 内部内部不在本文档范围内,但上述模式提供了在不同节点之间路由 Pod 到Pod 流量的方法,而无需保留 Pod 和对应节点之间的大量映射列表。

11.1.3. 机器网络

机器网络是由组成集群用来相互通信的所有主机使用的网络。这也是必须包括 API 和 Ingress VIP 的子网。

11.1.4. 与多节点集群相比的 SNO

根据您要部署单节点 OpenShift 还是多节点集群,不同的值是必需的。下表更详细地说明了这一点。

参数SNO使用 DHCP 模式的多节点集群没有 DHCP 模式的多节点集群

clusterNetwork

必填

必填

必填

serviceNetwork

必填

必填

必填

machineNetwork

auto-assign possible principal

auto-assign possible principal

auto-assign possible principal

apiVIP

禁止

禁止

必填

apiVIPs

禁止

禁止

4.12 及更新的版本需要

ingressVIP

禁止

禁止

必填

ingressVIPs

禁止

禁止

4.12 及更新的版本需要

如果只有一个主机网络,则机器网络 CIDR 的自动分配。否则,您需要明确指定它。

11.1.5. air-gapped 环境

在没有互联网访问的情况下部署集群的工作流有一些超出本文档范围的先决条件。您可以参阅 Zero Touch Provisioning 作为 Git 存储库的 硬性。