18.3. 安装 VMware NSX-T
先决条件
ESXi 主机要求:
托管 OpenShift Container Platform 节点虚拟机的 ESXi 服务器必须是 NSX-T 传输节点。
图 18.1. NSX UI 为典型的高可用性环境分离传输节点:
DNS 要求:
-
您必须在 DNS 服务器中向基础架构节点使用通配符添加新条目。这允许 NSX-T 或其他第三方 LoadBalancer 进行负载均衡。在下面的
hosts
文件中,条目由openshift_master_default_subdomain
变量定义。 -
您必须使用
openshift_master_cluster_hostname
和openshift_master_cluster_public_hostname
变量更新您的 DNS 服务器。
-
您必须在 DNS 服务器中向基础架构节点使用通配符添加新条目。这允许 NSX-T 或其他第三方 LoadBalancer 进行负载均衡。在下面的
虚拟机要求:
- OpenShift Container Platform 节点虚拟机必须有两个 vNIC:
- 管理 vNIC 必须连接到连接到管理 T1 路由器的逻辑交换机。
所有虚拟机上的第二个 vNIC 必须标记 NSX-T,以便 NSX Container Plug-in(NCP)知道哪个端口需要用作特定 OpenShift Container Platform 节点上运行的所有 Pod 的父 VIF。标签必须如下:
{'ncp/node_name': 'node_name'} {'ncp/cluster': 'cluster_name'}
{'ncp/node_name': 'node_name'} {'ncp/cluster': 'cluster_name'}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 下图显示了所有节点的 NSX UI 中的标签。对于大规模集群,您可以使用 API 调用或使用 Ansible 自动标记。
图 18.2. NSX UI 显示节点标签
NSX UI 中的标签顺序与 API 相反。节点名称必须与 kubelet 预期相同,集群名称必须与 Ansible 主机文件中的
nsx_openshift_cluster_name
相同,如下所示。确保每个节点上的第二个 vNIC 中应用正确的标签。
NSX-T 要求:
在 NSX 中需要满足以下先决条件:
- Tier-0 路由器.
- Overlay Transport Zone.
- POD 网络的 IP 块。
- (可选)用于路由(NoNAT) POD 网络的 IP 块。
- SNAT 的 IP 池。默认情况下,每个项目从 Pod 网络 IP Block 指定的子网只能在 NSX-T 中路由。NCP 使用这个 IP 池提供与外部的连接。
- (可选)dFW(分发防火墙)中的 top 和 Bottom 防火墙部分。NCP 在这两个部分之间放置 Kubernetes 网络策略规则。
-
Open vSwitch 和 CNI 插件 RPM 需要托管在 HTTP 服务器中,可从 OpenShift Container Platform 节点虚拟机访问(在这个示例中为
http://websrv.example.com
)。这些文件包含在 NCP Tar 文件中,您可以在 Download NSX Container Plug-in 2.4.0 从 VMware 下载。
OpenShift Container Platform 要求:
运行以下命令,为 OpenShift Container Platform 安装所需的软件包(若有):
ansible-playbook -i hosts openshift-ansible/playbooks/prerequisites.yml
$ ansible-playbook -i hosts openshift-ansible/playbooks/prerequisites.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 确保所有节点上本地下载 NCP 容器镜像
在
prerequisites.yml
playbook 成功执行后,在所有节点上运行以下命令,将xxx
替换为 NCP 构建版本:docker load -i nsx-ncp-rhel-xxx.tar
$ docker load -i nsx-ncp-rhel-xxx.tar
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如:
docker load -i nsx-ncp-rhel-2.4.0.12511604.tar
$ docker load -i nsx-ncp-rhel-2.4.0.12511604.tar
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 获取镜像名称并重新标记它:
docker images docker image tag registry.local/xxxxx/nsx-ncp-rhel nsx-ncp
$ docker images $ docker image tag registry.local/xxxxx/nsx-ncp-rhel nsx-ncp
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
xxx
替换为 NCP 构建版本。例如:
docker image tag registry.local/2.4.0.12511604/nsx-ncp-rhel nsx-ncp
docker image tag registry.local/2.4.0.12511604/nsx-ncp-rhel nsx-ncp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 OpenShift Container Platform Ansible 主机文件中,指定以下参数,将 NSX-T 设置为网络插件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如需有关 OpenShift Container Platform 安装参数的信息,请参阅 配置清单文件。
流程
满足所有先决条件后,您可以部署 NSX Data Center 和 OpenShift Container Platform。
部署 OpenShift Container Platform 集群:
ansible-playbook -i hosts openshift-ansible/playbooks/deploy_cluster.yml
$ ansible-playbook -i hosts openshift-ansible/playbooks/deploy_cluster.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如需有关 OpenShift Container Platform 安装的更多信息,请参阅安装 OpenShift Container Platform。
安装完成后,验证 NCP 和 nsx-node-agent Pod 是否正在运行:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow