将 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) 网桥中移除。
-
在重新向集群添加工作程序节点之前,必须将端口和流从网桥中清除。
-
在将 NSX-T 与 IBM Cloud Private 集群节点集成时,可以通过删除
br-int网桥然后再重新添加网桥的方式来清除端口和流。
要点:如果卸载 IBM Cloud Private,那么必须从 NSX-T 管理器中移除集群相关条目(例如,防火墙规则、交换机和第 1 层路由器)。
受支持的操作系统
以下操作系统支持 NSX-T 与 Kubernetes 的集成:
- Ubuntu 16.04
- 仅限 Red Hat Enterprise Linux™ (RHEL) 7.4 和 7.5
支持的 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 集成节点相集成
-
在 VMware vSphere 环境中安装 NSX-T。 有关 NSX-T 的更多信息,请参阅 NSX-T 安装指南
。
-
配置 IBM Cloud Private 集群的 NSX-T 资源。 有关更多信息,请参阅 VMware 文档
。
注:创建资源(如重叠传输区域、第 0 层逻辑路由器、IP 块和 IP 池)时, 请务必保留资源的名称或 UUID 的记录。 请将资源的名称或 UUID 添加到 config.yaml 文件。
注:配置 Kubernetes Pod 的 IP 模块部分时,请使用在
<installation_directory>/cluster/config.yaml文件中设置为network_cidr的 IP 模块。 -
在集群中每个节点上安装 NSX-T 容器网络接口 (CNI) 插件包。 有关更多信息,请参阅 VMware 文档
。
-
在集群中的每个节点上安装和配置 Open vSwitch (OVS)。 有关更多信息,请参阅 VMware 文档
。
注:如果分配的
ofport不是1,请确保在准备 IBM Cloud Private 配置文件时将ovs_uplink_port添加到config.yaml文件中。 -
在集群中的每个节点上配置 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 配置文件
完成下列步骤以准备配置文件:
- 如果在
<installation_directory>/cluster/文件夹下不存在名为images的目录,请创建此目录。 - 下载 NSX-T Docker 容器 .tar 文件,并将其复制到
<installation_directory>/cluster/images文件夹中。 -
将以下参数添加至
<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>
注:managers、subnet_prefix、ncp_package、ncp_image、ncp_image_tag、overlay_TZ、container_ip_blocks、external_ip_pools 和 tire0_router 为必需参数。
要点:manager_user 和 manager_password 或者 client_cert 和 client_private_key 为必需参数。
请参阅以下准则和参数值:
network_type:必须设置为nsx-t-
managers:NSX-T 管理器的 IP 地址或主机名注:可通过添加多个 IP 地址或主机名并使用逗号加以分隔来指定多个 NSX-T 管理器。
manager_user:有权访问 NSX-T 管理器的用户的用户名manager_password:manager_user参数中指定的用户的密码manager_ca_cert:NSX-T 管理器 CA 证书文件中的内容,用于验证 NSX-T 管理器服务器证书client_cert:NSX-T 管理器客户机证书文件的内容,用于向 NSX-T 管理器进行认证client_private_key:NSX-T 管理器客户机专用密钥文件的内容,用于向 NSX-T 管理器进行认证subnet_prefix:pod 的 IP 地址块子网前缀长度。external_subnet_prefix:外部(网络地址转换 (NAT))IP 地址块的子网前缀长度。 如果未指定此长度,那么subnet_prefix中的值即为缺省长度。-
ingress_mode:提供公开入口控制器的选项。 指定nat将使用 NSX-T NAT 工具,指定hostnetwork使用节点 IP 地址。注:缺省 IBM Cloud Private 管理入口控制器使用节点 IP 地址进行路由,并且您可以将定制入口控制器设置为使用 NSX-T NAT 池进行路由。
ncp_package:NSX-T Docker 容器 .tar 文件,该文件位于<installation_directory>/cluster/images文件夹中ncp_image:NSX-T Docker 容器映像的名称ncp_image_tag:NSX-T Docker 容器映像的标记,例如,latest-
ovs_uplink_port:配置为上行端口的接口的名称注:仅当
ofport的值不是1时才添加该参数。 tire0_router:第 0 层逻辑路由器的名称或 UUID。 第 0 层路由器使用下行端口来连接到第 1 层路由器,并使用上行端口来连接到外部网络。overlay_TZ:NSX 覆盖传输区域的名称或 UUID,该传输区域可创建逻辑交换机,以用于容器联网。 每个托管 Kubernetes 节点 VM 的系统管理程序都必须加入这个传输区域。-
container_ip_blocks:创建子网的 IP 块的名称或 UUID。注:如果已选择名称,此名称必须唯一。
external_ip_pools:用于分配 IP 地址的外部 IP 池的名称或 UUID,这些 IP 地址使用源网络地址转换 (SNAT) 规则来转换容器 IP。-
no_snat_ip_blocks:IP 块的名称或 UUID,这些 IP 块用于为没有 SNAT 的项目创建子网。 可指定没有 SNAT 的项目使用这些 IP 块。注:如果
no_snat_ip_blocks值为空,那么container_ip_blocks中的值即为缺省值。 -
enable_snat:用于启用或禁用 SNAT 的设置。注:缺省值为
true。 -
loadbalancer_enabled:用于启用或禁用负载均衡器的设置。注:缺省值为
false。 -
lb_default_ingressclass_nsx:入口控制器行为的设置。 如果该参数值为true,那么 NSX 负载均衡器将负责处理入口。 如果该参数值为false,那么第三方入口控制器将负责处理入口。 NGINX 即为第三方入口示例。注:缺省值为
true。 -
lb_pool_algorithm:负载均衡器池对象的负载均衡算法。注:选项为
ROUND_ROBIN、LEAST_CONNECTION、IP_HASH或WEIGHTED_ROUND_ROBIN。 缺省值为ROUND_ROBIN。 -
lb_service_size:负载均衡器服务大小。注:选项为
SMALL、MEDIUM或LARGE。 缺省值为SMALL。 -
virtual_servers_per_lbs:单一负载均衡器服务上的虚拟服务器最大数量。 缺省值为 10。要点:
SMALL负载均衡器支持 10 台虚拟服务器MEDIUM负载均衡器支持 100 台虚拟服务器LARGE负载均衡器支持 1000 台虚拟服务器
lb_default_cert:插入缺省证书文件的内容用于实现 HTTPS 负载均衡。lb_default_private_key:插入缺省证书的专用密钥文件的内容用于实现 HTTPS 负载均衡。-
apparmor_enabled:指定系统上 AppArmor 服务的状态。 缺省值为true。要点:此参数仅适用于 Ubuntu。
注:对于 RHEL,此参数必须设置为
false。 apparmor_profile:AppArmor 概要文件的名称。 缺省 AppArmor 概要文件名称为node-agent-apparmor。 如果您要使用另一个概要文件,请指定定制概要文件名称作为参数值。
接下来,继续安装 IBM Cloud Private。