2.6. OpenShift Container Platform 中的 Cluster Network Operator
Cluster Network Operator (CNO)在 OpenShift Container Platform 集群上部署和管理集群网络组件,包括在安装过程中为集群选择的 Container Network Interface (CNI) 网络插件。
2.6.1. Cluster Network Operator 复制链接链接已复制到粘贴板!
Cluster Network Operator 从 operator.openshift.io
API 组实现 network
API。Operator 通过使用守护进程集部署 OVN-Kubernetes 网络插件,或部署您在集群安装过程中选择的网络供应商插件。
流程
Cluster Network Operator 在安装过程中被部署为一个 Kubernetes 部署
。
运行以下命令,以查看部署状态:
oc get -n openshift-network-operator deployment/network-operator
$ oc get -n openshift-network-operator deployment/network-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READY UP-TO-DATE AVAILABLE AGE network-operator 1/1 1 1 56m
NAME READY UP-TO-DATE AVAILABLE AGE network-operator 1/1 1 1 56m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,以查看 Cluster Network Operator 的状态:
oc get clusteroperator/network
$ oc get clusteroperator/network
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE network 4.16.1 True False False 50m
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE network 4.16.1 True False False 50m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下字段提供有关 Operator 状态的信息:
AVAILABLE
、Progressing
和DEGRADED
。当 Cluster Network Operator 报告可用状态条件时,AVAILABLE
字段为True
。
2.6.2. 查看集群网络配置 复制链接链接已复制到粘贴板!
每个 OpenShift Container Platform 新安装都有一个名为 cluster
的 network.config
对象。
2.6.3. 查看 Cluster Network Operator 状态 复制链接链接已复制到粘贴板!
您可以使用 oc describe
命令来检查状态并查看 Cluster Network Operator 的详情。
流程
运行以下命令,以查看 Cluster Network Operator 的状态:
oc describe clusteroperators/network
$ oc describe clusteroperators/network
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6.4. 全局启用 IP 转发 复制链接链接已复制到粘贴板!
从 OpenShift Container Platform 4.14 开始,基于 OVN-Kubernetes 的集群部署禁用了全局 IP 地址转发,以防止集群管理员对作为路由器的节点造成不必要的影响。但是,在某些情况下,管理员希望转发一个新的配置参数 ipForwarding
来允许转发所有 IP 流量。
要为 OVN-Kubernetes 受管接口上的所有流量重新启用 IP 转发,请按照以下流程将 Cluster Network Operator 中的 gatewayConfig.ipForwarding
规格设置为 Global
:
流程
运行以下命令备份现有网络配置:
oc get network.operator cluster -o yaml > network-config-backup.yaml
$ oc get network.operator cluster -o yaml > network-config-backup.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令修改现有的网络配置:
oc edit network.operator cluster
$ oc edit network.operator cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
spec
中添加或更新以下块,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存并关闭该文件。
应用更改后,OpenShift Cluster Network Operator (CNO) 在集群中应用更新。您可以使用以下命令监控进度:
oc get clusteroperators network
$ oc get clusteroperators network
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 状态最终应报告为
Available
,Progressing=False
, 和Degraded=False
。另外,您可以运行以下命令来全局启用 IP 转发:
oc patch network.operator cluster -p '{"spec":{"defaultNetwork":{"ovnKubernetesConfig":{"gatewayConfig":{"ipForwarding": "Global"}}}}}' --type=merge
$ oc patch network.operator cluster -p '{"spec":{"defaultNetwork":{"ovnKubernetesConfig":{"gatewayConfig":{"ipForwarding": "Global"}}}}}' --type=merge
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意当您要恢复此更改时,此参数的其他有效选项为
Restricted
。restricted
是默认设置,并且禁用设置全局 IP 地址转发。
2.6.5. 查看 Cluster Network Operator 日志 复制链接链接已复制到粘贴板!
您可以使用 oc logs
命令来查看 Cluster Network Operator 日志。
流程
运行以下命令,以查看 Cluster Network Operator 的日志:
oc logs --namespace=openshift-network-operator deployment/network-operator
$ oc logs --namespace=openshift-network-operator deployment/network-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6.6. Cluster Network Operator 配置 复制链接链接已复制到粘贴板!
集群网络的配置作为 Cluster Network Operator(CNO)配置的一部分指定,并存储在名为 cluster
的自定义资源(CR)对象中。CR 指定 operator.openshift.io
API 组中的 Network
API 的字段。
CNO 配置在集群安装过程中从 Network.config.openshift.io
API 组中的 Network
API 继承以下字段:
clusterNetwork
- 从中分配 Pod IP 地址的 IP 地址池。
serviceNetwork
- 服务的 IP 地址池.
defaultNetwork.type
-
集群网络插件。
OVNKubernetes
是安装期间唯一支持的插件。
在集群安装后,您只能修改 clusterNetwork
IP 地址范围。
您可以通过在名为 cluster
的 CNO 对象中设置 defaultNetwork
对象的字段来为集群指定集群网络插件配置。
2.6.6.1. Cluster Network Operator 配置对象 复制链接链接已复制到粘贴板!
下表中描述了 Cluster Network Operator(CNO)的字段:
字段 | 类型 | 描述 |
---|---|---|
|
|
CNO 对象的名称。这个名称始终是 |
|
| 用于指定从哪些 IP 地址块分配 Pod IP 地址以及集群中每个节点的子网前缀长度的列表。例如: |
|
| 服务的 IP 地址块。OVN-Kubernetes 网络插件只支持服务网络的一个 IP 地址块。例如: spec: serviceNetwork: - 172.30.0.0/14
此值是只读的,在集群安装过程中从名为 |
|
| 为集群网络配置网络插件。 |
|
| 此对象的字段指定 kube-proxy 配置。如果使用 OVN-Kubernetes 集群网络供应商,则 kube-proxy 配置不会起作用。 |
对于需要在多个网络间部署对象的集群,请确保为 install-config.yaml
文件中定义的每种网络类型指定与 clusterNetwork.hostPrefix
参数相同的值。为每个 clusterNetwork.hostPrefix
参数设置不同的值可能会影响 OVN-Kubernetes 网络插件,其中插件无法有效地在不同节点间路由对象流量。
defaultNetwork 对象配置
下表列出了 defaultNetwork
对象的值:
字段 | 类型 | 描述 |
---|---|---|
|
|
注意 OpenShift Container Platform 默认使用 OVN-Kubernetes 网络插件。 |
|
| 此对象仅对 OVN-Kubernetes 网络插件有效。 |
配置 OVN-Kubernetes 网络插件
下表描述了 OVN-Kubernetes 网络插件的配置字段:
字段 | 类型 | 描述 |
---|---|---|
|
| Geneve(通用网络虚拟化封装)覆盖网络的最大传输单元(MTU)。这个值通常是自动配置的。 |
|
| Geneve 覆盖网络的 UDP 端口。 |
|
| 用于描述集群的 IPsec 模式的对象。 |
|
| 为 IPv4 设置指定配置对象。 |
|
| 为 IPv6 设置指定配置对象。 |
|
| 指定用于自定义网络策略审计日志的配置对象。如果未设置,则使用默认的审计日志设置。 |
|
|
可选:指定一个配置对象来自定义如何将出口流量发送到节点网关。有效值为 注意 在迁移出口流量时,工作负载和服务流量会受到一定影响,直到 Cluster Network Operator (CNO) 成功推出更改。 |
字段 | 类型 | 描述 |
---|---|---|
| 字符串 |
如果您的现有网络基础架构与
默认值为 |
| 字符串 |
如果您的现有网络基础架构与
默认值为 |
字段 | 类型 | 描述 |
---|---|---|
| 字符串 |
如果您的现有网络基础架构与
默认值为 |
| 字符串 |
如果您的现有网络基础架构与
默认值为 |
字段 | 类型 | 描述 |
---|---|---|
| 整数 |
每个节点每秒生成一次的消息数量上限。默认值为每秒 |
| 整数 |
审计日志的最大大小,以字节为单位。默认值为 |
| 整数 | 保留的日志文件的最大数量。 |
| 字符串 | 以下附加审计日志目标之一:
|
| 字符串 |
syslog 工具,如 as |
字段 | 类型 | 描述 |
---|---|---|
|
|
将此字段设置为
此字段与 Open vSwitch 硬件卸载功能有交互。如果将此字段设置为 |
|
|
您可以使用 注意
|
|
| 可选:指定一个对象来为主机配置内部 OVN-Kubernetes 伪装地址,以服务 IPv4 地址的流量。 |
|
| 可选:指定一个对象来为主机配置内部 OVN-Kubernetes 伪装地址,以服务 IPv6 地址的流量。 |
字段 | 类型 | 描述 |
---|---|---|
|
|
内部使用的伪装 IPv4 地址,以启用主机服务流量。主机配置了这些 IP 地址和共享网关网桥接口。默认值为 重要
对于 OpenShift Container Platform 4.17 及更新的版本,集群使用 |
字段 | 类型 | 描述 |
---|---|---|
|
|
内部使用的伪装 IPv6 地址,以启用主机服务流量。主机配置了这些 IP 地址和共享网关网桥接口。默认值为 重要
对于 OpenShift Container Platform 4.17 及更新的版本,集群使用 |
字段 | 类型 | 描述 |
---|---|---|
|
| 指定 IPsec 实现的行为。必须是以下值之一:
|
您只能在集群安装过程中更改集群网络插件的配置,但 gatewayConfig
字段可作为安装后活动在运行时更改。
启用 IPSec 的 OVN-Kubernetes 配置示例
2.6.6.2. Cluster Network Operator 配置示例 复制链接链接已复制到粘贴板!
以下示例中指定了完整的 CNO 配置:
Cluster Network Operator 对象示例