3.5. Cluster Network Operator (CNO) 配置

集群网络的配置作为 Cluster Network Operator (CNO) 配置的一部分被指定,并存储在名为 cluster的 CR 对象中。CR 指定 operator.openshift.io API 组中的 Network API 的参数。

您可以通过在 CNO CR 中设置 defaultNetwork 参数的值,为 OpenShift Container Platform 集群指定集群网络配置。以下 CR 显示了 CNO 的默认配置,并列出了您可以配置的参数和有效的参数值:

Cluster Network Operator CR

apiVersion: operator.openshift.io/v1
kind: Network
metadata:
  name: cluster
spec:
  clusterNetwork: 1
  - cidr: 10.128.0.0/14
    hostPrefix: 23
  serviceNetwork: 2
  - 172.30.0.0/16
  defaultNetwork: 3
    ...
  kubeProxyConfig: 4
    iptablesSyncPeriod: 30s 5
    proxyArguments:
      iptables-min-sync-period: 6
      - 0s

1
用于指定从哪些 IP 地址块分配 Pod IP 地址以及分配给每个节点的子网前缀长度的列表。
2
服务的 IP 地址块。OpenShift SDN Container Network Interface (CNI) 网络供应商只支持服务网络具有单个 IP 地址块。
3
为集群网络配置默认 CNI 供应商。
4
此对象的参数指定 Kubernetes 网络代理 (kube-proxy) 配置。如果您使用 OVN-Kubernetes 默认 CNI 网络供应商,则 kube-proxy 的配置不会起作用。
5
iptables 规则的刷新周期。默认值为 30s。有效的后缀包括 smh,具体参见 Go 时间包文档。
注意

由于 OpenShift Container Platform 4.3 及更高版本中引进了性能上的改进,现在不再需要调整 iptablesSyncPeriod 参数。

6
刷新 iptables 规则前的最短时长。此参数确保刷新的频率不会过于频繁。有效的后缀包括 smh,具体参见 Go time 软件包

3.5.1. OpenShift SDN 网络供应商的配置参数

以下 YAML 对象描述了 OpenShift SDN 默认 Container Network Interface (CNI) 网络供应商的配置参数。

注意

您只能在集群安装过程中更改默认 CNI 网络供应商的配置。

defaultNetwork:
  type: OpenShiftSDN 1
  openshiftSDNConfig: 2
    mode: NetworkPolicy 3
    mtu: 1450 4
    vxlanPort: 4789 5
1
要使用的默认 CNI 网络供应商插件。
2
OpenShift SDN 专用配置参数。
3
OpenShift SDN 的网络隔离模式。
4
VXLAN 覆盖网络的最大传输单元 (MTU) 。这个值通常是自动配置的。
5
用于所有 VXLAN 数据包的端口。默认值为 4789

3.5.2. OVN-Kubernetes 默认 CNI 网络供应商的配置参数

以下 YAML 对象描述了 OVN-Kubernetes 默认 CNI 网络供应商的配置参数。

注意

您只能在集群安装过程中更改默认 CNI 网络供应商的配置。

defaultNetwork:
  type: OVNKubernetes 1
  ovnKubernetesConfig: 2
    mtu: 1450 3
    genevePort: 6081 4
1
要使用的默认 CNI 网络供应商插件。
2
特定于 OVN-Kubernetes 的配置参数。
3
用于通用网络虚拟化封装(Generic Network Virtualization Encapsulation,简称 GENEVE)覆盖网络的 MTU。这个值通常是自动配置的。
4
GENEVE 覆盖网络的 UDP 端口。

3.5.3. Cluster Network Operator 配置示例

下例中显示了 CNO 的一个完整 CR:

Cluster Network Operator 示例 CR

apiVersion: operator.openshift.io/v1
kind: Network
metadata:
  name: cluster
spec:
  clusterNetwork:
  - cidr: 10.128.0.0/14
    hostPrefix: 23
  serviceNetwork:
  - 172.30.0.0/16
  defaultNetwork:
    type: OpenShiftSDN
    openshiftSDNConfig:
      mode: NetworkPolicy
      mtu: 1450
      vxlanPort: 4789
  kubeProxyConfig:
    iptablesSyncPeriod: 30s
    proxyArguments:
      iptables-min-sync-period:
      - 0s