$ oc get -n openshift-network-operator deployment/network-operator
您可以使用集群网络操作符 (CNO) 在 OpenShift Container Platform 集群上部署和管理集群网络组件,包括在安装期间为集群选择的容器网络接口 (CNI) 网络插件。
集群网络操作符实现来自 `operator.openshift.io` API 组的 `network` API。操作符使用守护程序集部署 OVN-Kubernetes 网络插件或您在集群安装期间选择的网络提供程序插件。
集群网络操作符在安装期间作为 Kubernetes `Deployment` 部署。
运行以下命令以查看 Deployment 状态
$ oc get -n openshift-network-operator deployment/network-operator
NAME READY UP-TO-DATE AVAILABLE AGE
network-operator 1/1 1 1 56m
运行以下命令以查看集群网络操作符的状态
$ oc get clusteroperator/network
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE
network 4.16.1 True False False 50m
以下字段提供有关操作符状态的信息:`AVAILABLE`、`PROGRESSING` 和 `DEGRADED`。当集群网络操作符报告可用状态条件时,`AVAILABLE` 字段为 `True`。
每个新的 OpenShift Container Platform 安装都具有名为 `cluster` 的 `network.config` 对象。
使用 `oc describe` 命令查看集群网络配置
$ oc describe network.config/cluster
Name: cluster
Namespace:
Labels: <none>
Annotations: <none>
API Version: config.openshift.io/v1
Kind: Network
Metadata:
Creation Timestamp: 2024-08-08T11:25:56Z
Generation: 3
Resource Version: 29821
UID: 808dd2be-5077-4ff7-b6bb-21b7110126c7
Spec: (1)
Cluster Network:
Cidr: 10.128.0.0/14
Host Prefix: 23
External IP:
Policy:
Network Diagnostics:
Mode:
Source Placement:
Target Placement:
Network Type: OVNKubernetes
Service Network:
172.30.0.0/16
Status: (2)
Cluster Network:
Cidr: 10.128.0.0/14
Host Prefix: 23
Cluster Network MTU: 1360
Conditions:
Last Transition Time: 2024-08-08T11:51:50Z
Message:
Observed Generation: 0
Reason: AsExpected
Status: True
Type: NetworkDiagnosticsAvailable
Network Type: OVNKubernetes
Service Network:
172.30.0.0/16
Events: <none>
| 1 | `Spec` 字段显示集群网络的已配置状态。 |
| 2 | `Status` 字段显示集群网络配置的当前状态。 |
您可以使用 `oc describe` 命令检查状态并查看集群网络操作符的详细信息。
运行以下命令以查看集群网络操作符的状态
$ oc describe clusteroperators/network
从 OpenShift Container Platform 4.14 开始,基于 OVN-Kubernetes 的集群部署中全局 IP 地址转发被禁用,以防止节点充当路由器的集群管理员出现不良影响。但是,在管理员期望转发流量的某些情况下,可以使用新的配置参数 `ipForwarding` 来允许转发所有 IP 流量。
要在 OVN-Kubernetes 管理的接口上重新启用所有流量的 IP 转发,请按照以下步骤将集群网络操作符中的 `gatewayConfig.ipForwarding` 规范设置为 `Global`
通过运行以下命令备份现有网络配置
$ oc get network.operator cluster -o yaml > network-config-backup.yaml
运行以下命令以修改现有网络配置
$ oc edit network.operator cluster
在以下示例中所示的 `spec` 下添加或更新以下块
spec:
clusterNetwork:
- cidr: 10.128.0.0/14
hostPrefix: 23
serviceNetwork:
- 172.30.0.0/16
networkType: OVNKubernetes
clusterNetworkMTU: 8900
defaultNetwork:
ovnKubernetesConfig:
gatewayConfig:
ipForwarding: Global
保存并关闭文件。
应用更改后,OpenShift 集群网络操作符 (CNO) 会在整个集群中应用更新。您可以使用以下命令监控进度
$ oc get clusteroperators network
状态最终应报告为 `Available`、`Progressing=False` 和 `Degraded=False`。
或者,您可以通过运行以下命令全局启用 IP 转发
$ oc patch network.operator cluster -p '{"spec":{"defaultNetwork":{"ovnKubernetesConfig":{"gatewayConfig":{"ipForwarding": "Global"}}}}}
|
此参数的另一个有效选项是 `Restricted`,如果您想恢复此更改。`Restricted` 是默认值,使用此设置将禁用全局 IP 地址转发。 |
您可以使用 `oc logs` 命令查看集群网络操作符日志。
运行以下命令以查看集群网络操作符的日志
$ oc logs --namespace=openshift-network-operator deployment/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。
|
集群安装后,您只能修改 |
您可以通过设置名为cluster的 CNO 对象中defaultNetwork对象的字段来指定集群的集群网络插件配置。
集群网络操作员 (CNO) 的字段在以下表格中描述
| 字段 | 类型 | 描述 |
|---|---|---|
|
|
CNO 对象的名称。此名称始终为 |
|
|
指定分配 Pod IP 地址的 IP 地址块以及分配给集群中每个节点的子网前缀长度的列表。例如:
|
|
|
服务的 IP 地址块。OVN-Kubernetes 网络插件只支持服务网络的单个 IP 地址块。例如:
此值为只读,并在集群安装期间从名为 |
|
|
配置集群网络的网络插件。 |
|
|
此对象的字段指定 kube-proxy 配置。如果您使用的是 OVN-Kubernetes 集群网络插件,则 kube-proxy 配置无效。 |
|
对于需要跨多个网络部署对象的集群,请确保为 |
defaultNetwork 对象的值在以下表格中定义
| 字段 | 类型 | 描述 | ||
|---|---|---|---|---|
|
|
|
||
|
|
此对象仅对 OVN-Kubernetes 网络插件有效。 |
下表描述了 OVN-Kubernetes 网络插件的配置字段
| 字段 | 类型 | 描述 | ||
|---|---|---|---|---|
|
|
Geneve(通用网络虚拟化封装)覆盖网络的最大传输单元 (MTU)。此值通常自动配置。 |
||
|
|
Geneve 覆盖网络的 UDP 端口。 |
||
|
|
描述集群 IPsec 模式的对象。 |
||
|
|
指定 IPv4 设置的配置对象。 |
||
|
|
指定 IPv6 设置的配置对象。 |
||
|
|
指定一个配置对象来自定义网络策略审计日志记录。如果未设置,则使用默认审计日志设置。 |
||
|
|
可选:指定一个配置对象来自定义如何将出站流量发送到节点网关。
|
| 字段 | 类型 | 描述 |
|---|---|---|
|
字符串 |
如果您的现有网络基础设施与 默认值为 |
|
字符串 |
如果您的现有网络基础设施与 默认值为 |
| 字段 | 类型 | 描述 |
|---|---|---|
|
字符串 |
如果您的现有网络基础设施与 默认值为 |
|
字符串 |
如果您的现有网络基础设施与 默认值为 |
| 字段 | 类型 | 描述 |
|---|---|---|
|
整数 |
每个节点每秒生成的最多消息数。默认值为每秒 |
|
整数 |
审计日志的最大大小(字节)。默认值为 |
|
整数 |
保留的最大日志文件数。 |
|
字符串 |
以下附加审计日志目标之一
|
|
字符串 |
syslog 设施,例如 RFC5424 中定义的 |
| 字段 | 类型 | 描述 |
|---|---|---|
|
|
将此字段设置为 此字段与 Open vSwitch 硬件卸载功能交互。如果将此字段设置为 |
|
|
您可以使用 |
|
|
可选:指定一个对象来配置用于IPv4地址的主机到服务的内部OVN-Kubernetes伪装地址。 |
|
|
可选:指定一个对象来配置用于IPv6地址的主机到服务的内部OVN-Kubernetes伪装地址。 |
| 字段 | 类型 | 描述 | ||
|---|---|---|---|---|
|
|
内部用于启用主机到服务流量的伪装IPv4地址。主机也配置了这些IP地址以及共享网关桥接接口。默认值为
|
| 字段 | 类型 | 描述 | ||
|---|---|---|---|---|
|
|
内部用于启用主机到服务流量的伪装IPv6地址。主机也配置了这些IP地址以及共享网关桥接接口。默认值为
|
| 字段 | 类型 | 描述 |
|---|---|---|
|
|
指定IPsec实现的行为。必须是以下值之一
|
|
您只能在集群安装期间更改集群网络插件的配置,但 |
defaultNetwork:
type: OVNKubernetes
ovnKubernetesConfig:
mtu: 1400
genevePort: 6081
ipsecConfig:
mode: Full