将 VMware NSX-T 2.2 与 IBM Cloud Private 集成

VMware NSX-T 2.2 (NSX-T),为 IBM® Cloud Private 集群提供联网功能。

注:如果在 IBM Cloud Private 集群上配置了 NSX-T,那么从集群中移除工作程序节点不会将端口和流从 Open vSwitch (OVS) 网桥中移除。

要点:如果卸载 IBM Cloud Private,那么必须从 NSX-T 管理器中移除集群相关条目(例如,防火墙规则、交换机和第 1 层路由器)。

受支持的操作系统

以下操作系统支持 NSX-T 与 Kubernetes 的集成:

支持的 Kubernetes 版本

IBM Cloud Private 3.1.0 使用 Kubernetes 1.11.0。 VMware NSX-T 2.2 支持 Kubernetes V1.10。 您仍可将 NSX-T 与 IBM Cloud Private 集成,但可用网络功能仅限于 Kubernetes V1.10 中支持的功能。 Kubernetes V1.11 中引入的网络功能不可用。 有关更多信息,请参阅集群联网 在新选项卡中打开

将 NSX-T 与 IBM Cloud Private 集成节点相集成

  1. 在 VMware vSphere 环境中安装 NSX-T。 有关 NSX-T 的更多信息,请参阅 NSX-T 安装指南在新选项卡中打开

  2. 配置 IBM Cloud Private 集群的 NSX-T 资源。 有关更多信息,请参阅 VMware 文档在新选项卡中打开

    注:创建资源(如重叠传输区域、第 0 层逻辑路由器、IP 块和 IP 池)时, 请务必保留资源的名称或 UUID 的记录。 请将资源的名称或 UUID 添加到 config.yaml 文件。

    注:配置 Kubernetes Pod 的 IP 模块部分时,请使用在 <installation_directory>/cluster/config.yaml 文件中设置为 network_cidr 的 IP 模块。

  3. 在集群中每个节点上安装 NSX-T 容器网络接口 (CNI) 插件包。 有关更多信息,请参阅 VMware 文档在新选项卡中打开

  4. 在集群中的每个节点上安装和配置 Open vSwitch (OVS)。 有关更多信息,请参阅 VMware 文档在新选项卡中打开

    注:如果分配的 ofport 不是 1,请确保在准备 IBM Cloud Private 配置文件时将 ovs_uplink_port 添加到 config.yaml 文件中。

  5. 在集群中的每个节点上配置 NSX-T 网络。 有关在节点上配置 NSX-T 的更多信息,请参阅 VMware 文档在新选项卡中打开。 在标记逻辑交换机端口时,请确保使用以下参数值:

    • {'ncp/node_name': '<node_name>'}:如果已在 <installation_directory>/cluster/config.yaml 文件中配置 kubelet_nodename: hostname,那么请添加该节点的主机名作为 <node_name> 参数值。您可运行以下命令获取节点的主机名:

      hostname -s
      

      如果未在 <installation_directory>/cluster/config.yaml 文件中配置 kubelet_nodename: hostname,那么将节点的 IP 地址添加为 <node_name> 参数值。 从 <installation_directory>/cluster/hosts 文件中获取 IBM Cloud Private 集群节点的 IP 地址。

    • {'ncp/cluster': '<cluster_name>'}:使用在 <installation_directory>/cluster/config.yaml 文件中设置的 cluster_name。缺省值是 mycluster

准备 IBM Cloud Private 配置文件

完成下列步骤以准备配置文件:

  1. 如果在 <installation_directory>/cluster/ 文件夹下不存在名为 images 的目录,请创建此目录。
  2. 下载 NSX-T Docker 容器 .tar 文件,并将其复制到 <installation_directory>/cluster/images 文件夹中。
  3. 将以下参数添加至 <installation_directory>/cluster/config.yaml 文件:

    network_type: nsx-t
    

    注:针对每个 IBM Cloud Private 集群只能启用一种网络类型。 启用 network_type: nsx-t 时,请确保从 config.yaml 文件中移除缺省 network_type: calico 设置。

NSX-T 配置

要配置 NSX-T,请将以下参数添加到 config.yaml 文件中:

nsx_t:
  managers: <IP address>[:<port>],<IP address>[:port]
  manager_user: <user name for NSX-T manager>
  manager_password: <password for NSX-T manager user>
  manager_ca_cert: |
    -----BEGIN CERTIFICATE-----
    MIIDYzCCAkugAwIBAgIEcK9gWjANBgsedkiG9w0BAQsFADBiMQswCQYDVQQGEwJV
    ..........................................
    ..........................................
    ..........................................
    hzYlaog68RTAQpkV0bwedxq8lizEBADCgderTw99OUgt+xVybTFtHume8JOd+1qt
    G3/WlLwiH9upSujL76cEG/ERkPR5SpGZhg37aK/ovLGTtCuAnQndtM5jVMKoNDl1
    /UOKWe1wrT==
    -----END CERTIFICATE-----
  client_cert: |
    Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number: 8 (0x8)
        Signature Algorithm: sha256WithRSAEncryption
        ..........................................
        ..........................................
        ..........................................
             43:8e:69:8c:5f:d2:ab:eb:5b:e3:29:e3:a9:6e:85:25:cf:fa:
             06:46:8e:c0:16:5a:ac:09:2d:02:ef:2b:50:1f:6f:03:5a:e9:
             b3:ba:d7:e3
    -----BEGIN CERTIFICATE-----
    MIIDUDCCAjigAwIBAgIBCDANBgkqhkiG9w0BAQsFADA6TR0wGwYDVQQDDBQxMjcu
    ..........................................
    ..........................................
    ..........................................
    X9Kr61vjKeOpboUlz/oGRo7AFlqsCSderTtQH28DWumzutfj
    -----END CERTIFICATE-----
  client_private_key:  |
    -----BEGIN PRIVATE KEY-----
    MIIEvgIBADANBgkqhkiG9w0BAUYTRASCBKgwggSkAgEAAoIBAQC/Jz4WnaTmbfB7
    ..........................................
    ..........................................
    ..........................................
    n8jakjGLolYe5yv0KyM4RTD5
    -----END PRIVATE KEY-----
  subnet_prefix: 24
  external_subnet_prefix: 24
  ingress_mode: <hostnetwork or nat>
  ncp_package: <name of the NSX-T Docker container file that is placed in `<installation_directory>/cluster/images` folder>
  ncp_image: registry.local/ob-5667597/nsx-ncp
  ncp_image_tag: latest
  ovs_uplink_port: <name of the interface that is configured as an uplink port >
  tire0_router: <name or UUID of the tier0 router >
  overlay_TZ: <name or UUID of the NSX overlay transport zone >
  container_ip_blocks: <name or UUID of the container IP blocks >
  external_ip_pools: <name or UUID of the external IP pools >
  no_snat_ip_blocks: <name or UUID of the no-SNAT namespaces IP blocks >
  enable_snat: true
  loadbalancer_enabled: false
  lb_default_ingressclass_nsx: true
  lb_pool_algorithm: ROUND_ROBIN  
  lb_service_size: SMALL   
  virtual_servers_per_lbs: 10
  lb_default_cert: |
    Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number: 8 (0x8)
        Signature Algorithm: sha256WithRSAEncryption
        ..........................................
        ..........................................
        ..........................................
             43:8e:69:8c:5f:d2:ab:eb:5b:e3:29:e3:a9:6e:85:25:cf:fa:
             06:46:8e:c0:16:5a:ac:09:2d:02:ef:2b:50:1f:6f:03:5a:e9:
             b3:ba:d7:e3
    -----BEGIN CERTIFICATE-----
    MIIDUDCCAjigAwIBAgIBCDANBgkqhkiG9w0BAQsFADA6TR0wGwYDVQQDDBQxMjcu
    ..........................................
    ..........................................
    ..........................................
    X9Kr61vjKeOpboUlz/oGRo7AFlqsCSderTtQH28DWumzutfj
    -----END CERTIFICATE-----
  lb_default_private_key: |
    -----BEGIN PRIVATE KEY-----
    MIIEvgIBADANBgkqhkiG9w0BAUYTRASCBKgwggSkAgEAAoIBAQC/Jz4WnaTmbfB7
    ..........................................
    ..........................................
    ..........................................
    n8jakjGLolYe5yv0KyM4RTD5
    -----END PRIVATE KEY-----

  apparmor_enabled: true
  apparmor_profile: <name of the AppArmor profile to be used>

注:managerssubnet_prefixncp_packagencp_imagencp_image_tagoverlay_TZcontainer_ip_blocksexternal_ip_poolstire0_router 为必需参数。

要点:manager_usermanager_password 或者 client_certclient_private_key 为必需参数。

请参阅以下准则和参数值:

接下来,继续安装 IBM Cloud Private。