Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

16.4. 在 Master 中配置 Pod 网络

集群管理员可以通过修改 master 配置文件的 networkConfig 部分中的参数(默认位于 /etc/origin/ master /master-config.yaml )来控制 master 主机上的 pod 网络设置:

为单个 CIDR 配置 pod 网络

networkConfig:
  clusterNetworks:
  - cidr: 10.128.0.0/14 1
    hostSubnetLength: 9 2
  networkPluginName: "redhat/openshift-ovs-subnet" 3
  serviceNetworkCIDR: 172.30.0.0/16 4

1
用于节点 IP 分配的集群网络
2
节点内 pod IP 分配的位数
3
ovs-subnet 插件设置为 redhat/openshift-ovs-subnet,为 ovs-multitenant 插件设置为 redhat/openshift-ovs-multitenant,为 ovs-networkpolicy 插件设置为 redhat/openshift-ovs-networkpolicy
4
集群的服务 IP 分配

另外,您可以通过将单独的范围添加到带有范围和 hostSubnetLengthclusterNetworks 字段中,创建具有多个 CIDR 范围的 pod 网络。

可将多个范围用于一次,而且该范围可以被扩展或合同。通过撤离节点,可以把节点从一个范围移到另一个范围,然后删除并重新创建节点。如需更多信息,请参阅 管理节点 部分。列出顺序出现节点分配,然后在范围已满后移至列表上的下一个操作。

为多个 CIDR 配置 pod 网络

networkConfig:
  clusterNetworks:
  - cidr: 10.128.0.0/14 1
    hostSubnetLength: 9 2
  - cidr: 10.132.0.0/14
    hostSubnetLength: 9
  externalIPNetworkCIDRs: null
  hostSubnetLength: 9
  ingressIPNetworkCIDR: 172.29.0.0/16
  networkPluginName: redhat/openshift-ovs-multitenant 3
  serviceNetworkCIDR: 172.30.0.0/16

1
用于节点 IP 分配的集群网络。
2
节点内 pod IP 分配的位数。
3
ovs-subnet 插件设置为 redhat/openshift-ovs-subnet,为 ovs-multitenant 插件设置为 redhat/openshift-ovs-multitenant,为 ovs-networkpolicy 插件设置为 redhat/openshift-ovs-networkpolicy

您可以将元素添加到 clusterNetworks 值,如果没有节点正在使用这个 CIDR 范围,则删除它们。

重要

在集群首次创建后无法更改 hostSubnetLength 值,cidr 项只能更改为一个更大的网络,它需要仍然包含原始网络(如果节点在它的范围内分配),且只能扩展 serviceNetworkCIDR。例如,对于 10.128.0.0/14 的典型值,您可以将 cidr 改为 10.128.0.0/9 (例如,net 10 的整个上半个)而不是 10.64.0.0/16,因为这不会重叠原始值。

您可以将 serviceNetworkCIDR172.30.0.0/16 改为 172.30.0.0/15,但不改为 172.28.0.0/14,因为原始范围完全位于 CIDR 的开头。如需更多信息,请参阅扩展服务网络

确保重启 API 和 master 服务以使任何更改生效:

$ master-restart api
$ master-restart controllers
重要

节点上的 pod 网络设置必须与 master 上的 networkConfig.clusterNetworks 参数配置的 pod 网络设置匹配。这可以通过修改相应节点 配置映射的 networkConfig 部分中的参数来实现

proxyArguments:
  cluster-cidr:
  - 10.128.0.0/12 1
1
CIDR 值必须包含在 master 级别上定义的所有集群网络 CIDR 范围,但不与其他 IP 范围冲突,如用于节点和服务。

在重启 master 服务后,必须将配置传播到节点。在每个节点上,必须重启 atomic-openshift-node 服务和 ovs pod。为了避免停机遵循 管理节点 中定义的步骤,并一次为每个节点或一组节点执行以下步骤:

  1. 将节点标记为不可调度。

    # oc adm manage-node <node1> <node2> --schedulable=false
  2. 排空节点:

    # oc adm drain <node1> <node2>
  3. 重启节点:

    # reboot
  4. 将节点重新标记为可调度:

    #  oc adm manage-node <node1> <node2> --schedulable