6.13. 指定高级网络配置


您可以使用网络插件的高级网络配置将集群集成到现有网络环境中。您只能在安装集群前指定高级网络配置。

重要

不支持通过修改安装程序创建的 OpenShift Container Platform 清单文件来自定义网络配置。支持应用您创建的清单文件,如以下流程中所示。

先决条件

  • 您已创建 install-config.yaml 文件并完成对其所做的任何修改。

流程

  1. 进入包含安装程序的目录并创建清单:

    $ ./openshift-install create manifests --dir <installation_directory> 1
    1
    <installation_directory> 指定包含集群的 install-config.yaml 文件的目录名称。
  2. <installation_directory>/manifests/ 目录中 为高级网络配置创建一个名为 cluster-network-03-config.yml 的 stub 清单文件:

    apiVersion: operator.openshift.io/v1
    kind: Network
    metadata:
      name: cluster
    spec:
  3. cluster-network-03-config.yml 文件中指定集群的高级网络配置,如下例所示:

    为 OpenShift SDN 网络供应商指定不同的 VXLAN 端口

    apiVersion: operator.openshift.io/v1
    kind: Network
    metadata:
      name: cluster
    spec:
      defaultNetwork:
        openshiftSDNConfig:
          vxlanPort: 4800

    为 OVN-Kubernetes 网络供应商启用 IPsec

    apiVersion: operator.openshift.io/v1
    kind: Network
    metadata:
      name: cluster
    spec:
      defaultNetwork:
        ovnKubernetesConfig:
          ipsecConfig: {}

  4. 可选:备份 manifests/cluster-network-03-config.yml 文件。创建 Ignition 配置文件时,安装程序会使用 manifests/ 目录。
  5. 删除定义 control plane 机器的 Kubernetes 清单文件和计算 machineSets:

    $ rm -f openshift/99_openshift-cluster-api_master-machines-*.yaml openshift/99_openshift-cluster-api_worker-machineset-*.yaml

    由于您要自行创建和管理这些资源,因此不必初始化这些资源。

    • 您可以使用机器 API 保留 MachineSet 文件以创建计算机器,但您必须更新对它们的引用以匹配您的环境。

6.13.1. 为您的网络指定多个子网

在 vSphere 主机上安装 OpenShift Container Platform 集群前,您可以为网络实现指定多个子网,以便 vSphere 云控制器管理器 (CCM) 可以为给定网络情况选择适当的子网。vSphere 可以使用子网来管理集群中的 pod 和服务。

对于此配置,您必须在 vSphere CCM 配置中指定内部和外部无类别域间路由 (CIDR) 实现。每个 CIDR 实现都会列出 CCM 用来决定与来自内部和外部网络的流量交互的 IP 地址范围。

重要

在 vSphere CCM 配置中配置内部和外部 CIDR 实现可能会导致 vSphere CCM 选择错误的子网。这种情况会导致以下错误:

ERROR Bootstrap failed to complete: timed out waiting for the condition
ERROR Failed to wait for bootstrapping to complete. This error usually happens when there is a problem with control plane hosts that prevents the control plane operators from creating the control plane.

此配置可能会导致与 MachineSet 对象与单个子网关联的新节点变得不可用,因为每个新节点接收 node.cloudprovider.kubernetes.io/uninitialized 污点。这些情况可能会导致与 Kubernetes API 服务器的通信问题,这可能会导致集群安装失败。

先决条件

  • 为 OpenShift Container Platform 集群创建 Kubernetes 清单文件。

流程

  1. 从存储 OpenShift Container Platform 集群清单文件的目录中,打开 manifests/cluster-infrastructure-02-config.yml 清单文件。
  2. nodeNetworking 对象添加到文件,并为对象指定内部和外部网络子网 CIDR 实现。

    提示

    对于大多数网络情况,请考虑设置标准多子网配置。此配置要求您在 nodeNetworking.internal.networkSubnetCidrnodeNetworking.external.networkSubnetCidr 参数中设置相同的 IP 地址范围。

    配置了 cluster-infrastructure-02-config.yml 清单文件的示例

    apiVersion: config.openshift.io/v1
    kind: Infrastructure
    metadata:
      name: cluster
    spec:
      cloudConfig:
        key: config
        name: cloud-provider-config
      platformSpec:
        type: VSphere
        vsphere:
          failureDomains:
          - name: generated-failure-domain
          ...
           nodeNetworking:
             external:
               networkSubnetCidr:
               - <machine_network_cidr_ipv4>
               - <machine_network_cidr_ipv6>
             internal:
               networkSubnetCidr:
               - <machine_network_cidr_ipv4>
               - <machine_network_cidr_ipv6>
    # ...

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.