如本文档所述,在向 NSX 注册 Antrea Kubernetes 集群之前,必须先完成多个必备任务。
可向单个 NSX 部署注册多个 Antrea Kubernetes 集群。
如果 Kubernetes 集群中的 VMware Container Networking™ with Antrea™ 版本为 1.8.0 或更高版本,请执行任务 1 至 6 以及任务 9。您可以跳过本文档中的任务 7 和 8。
如果 Kubernetes 集群中的 VMware Container Networking™ with Antrea™ 版本为 1.7.0 或更低版本,请执行任务 1 至 5 以及任务 7 至 9。任务 6 不适用。
任务 1:确保已为 Antrea-NSX Interworking 适配器打开所需端口
Antrea-NSX Interworking 适配器在 Antrea Kubernetes 集群中作为 Pod 运行,并且该 Pod 使用主机网络模式。可以调度该 Pod 以在任何 Kubernetes 节点上运行。因此,您必须确保 K8s 节点可以在 VMware Ports and Protocols 门户(位于 https://ports.esp.vmware.com/home/NSX)中提及的端口上访问 NSX IP 地址。
打开此链接后,在搜索文本框中输入 Antrea Interworking Pod。
任务 2:部署 Antrea Kubernetes 集群
角色:Kubernetes 平台管理员
一个具有 Antrea 网络插件的 Kubernetes 集群必须已启动并准备就绪。
- 部署了 Tanzu 管理集群,并且这些集群处于运行状态。
- 部署了 Tanzu Kubernetes 集群,并且这些集群处于运行状态。
- 安装了 Tanzu 命令行界面 (Command Line Interface, CLI)。
有关这些任务的详细信息,请参见 Tanzu Kubernetes Grid 文档,网址为 https://docs.vmware.com/cn/VMware-Tanzu-Kubernetes-Grid/index.html。
在部署管理集群时,将在管理集群中自动启用到 Antrea 的网络连接。
任务 3:在 NSX 中添加相应的许可证
角色:NSX 管理员
确保您的 NSX 环境具有以下许可证之一:
- NSX Data Center Advanced
- NSX Data Center Enterprise Plus
- Antrea Enterprise Standalone
任务 4:确定 Kubernetes 集群中的 Antrea 版本
角色:Kubernetes 平台管理员
必须先确定 Kubernetes 集群中的 Antrea 开源版本,然后再下载 Antrea-NSX interworking 文件 (antrea-interworking-version.zip),这是本主题中的下一个必备条件。
例如,请参见下表。
下表并不是所有 VMware Container Networking 版本和 Antrea-NSX Interworking 版本的完整列表。如需了解完整列表,请参见位于 https://docs.vmware.com/cn/VMware-Container-Networking-with-Antrea/index.html 的 VMware Container Networking™ with Antrea™ 发行说明。
VMware Container Networking 版本 | 基于 Antrea OSS 版本 | 与 Antrea-NSX Interworking 版本兼容 |
---|---|---|
v1.5.0 请参见:v1.5.0 发行说明 |
v1.7.1 |
v0.7。* |
v1.4.0 请参见:v1.4.0 发行说明 |
v1.5.2 |
v0.5。* |
v1.3.1 |
v1.2.3 |
v0.2.* |
- 查找 Antrea 控制器 Pod 名称。Kubernetes 使用随机字符串生成此名称,因此,您可以从 K8s 集群中获取该名称。
例如:
$ kubectl get pod -n kube-system -l component=antrea-controller NAME READY STATUS RESTARTS AGE antrea-controller-6b8cb7cd59-wcjvd 1/1 Running 0 13d
在此命令输出中,Antrea 控制器 Pod 名称为 antrea-controller-6b8cb7cd59-wcjvd。
- 通过运行以下命令检索 Antrea 开源版本:
$ kubectl exec -it antrea-controller-6b8cb7cd59-wcjvd -n kube-system -- antctl version antctlVersion: v1.7.1-cacafc0 controllerVersion: v1.7.1-cacafc0
在此命令输出中,v1.7.1 是要确定的 Antrea 开源版本。
任务 5:下载 Antrea-NSX Interworking Zip 文件
角色:Kubernetes 平台管理员
- 打开 Broadcom 支持门户上的我的下载页面。
- 从右上角,单击,然后选择 VMware Cloud Foundation。
“我的下载”页面仅显示您有权下载的 SKU。
- 单击 VMware Antrea,然后单击 VMware Antrea Enterprise。
- 单击与您相关的 VMware Container Networking with Antrea 版本。此时将打开“主下载”选项卡。
- 在此选项卡页面上搜索 VMware Container Networking with Antrea、NSX Interworking 适配器映像和部署清单文件名。
- 确认文件名下提及的 antrea-interworking-version.zip 文件的版本与您之前确定的 Antrea 开源软件版本兼容。
例如:
- 选中我同意 Broadcom 条款和条件 复选框。
- 单击下载图标。
文件名 | 描述 |
---|---|
interworking.yaml | 这是一个 YAML 部署清单文件,用于向 NSX 注册 Antrea Kubernetes 集群。 |
bootstrap-config.yaml | 这是一个 YAML 文件,您可以在其中指定以下详细信息以进行注册:Antrea Kubernetes 集群名称、NSX Manager IP 地址、Kubernetes 集群的 TLS 证书以及 Kubernetes 集群的私钥。 |
bin/antreansxctl | Antrea-NSX 命令行实用程序。此实用程序在 VMware Container Networking 版本 1.7.0 或更高版本的 antrea-interworking.zip 文件中提供。 |
deregisterjob.yaml | 这是一个 YAML 清单文件,用于从 NSX 中取消注册 Antrea Kubernetes 集群。 |
ns-label-webhook.yaml | 用于自动向新创建的 Kubernetes 命名空间添加标签的 Webhook 定义。仅当 Kubernetes 版本低于或等于 1.20 时,才会使用此 YAML 文件。 |
interworking-version.tar | 管理平面适配器和中央控制平面适配器的容器映像的存档文件。 |
任务 6:运行 antreansxctl bootstrap 命令
角色:NSX 管理员
- 创建自签名证书
- 创建主体身份 (PI) 用户
- 创建引导配置 (bootstrap-config.yaml)
注: 嵌入在 antreansxctl 命令行实用程序中的 bootstrap-config.yaml 模板与当前 interworking 版本兼容。命令行实用程序不依赖于 antrea-interworking.zip 文件中的 bootstrap-config.yaml 文件来运行。
要运行 antreansxctl bootstrap 命令,请使用 antreansxctl 命令行实用程序。您可以在之前下载的 antrea-interworking.zip 文件中找到此实用程序。
antreansxctl 实用程序是仅适用于 Linux 的可执行文件。因此,您需要使用 Linux 计算机运行此实用程序。
要了解 antreansxctl bootstrap 命令及其各种配置选项的用法,请参见《VMware Container Networking with Antrea 安装指南》中的 antreansxctl 命令行文档。
任务 7:创建自签名安全证书
角色:NSX 管理员
需要使用自签名安全证书以在 NSX 中创建主体身份用户帐户,将在本主题后面介绍该过程。
使用 OpenSSL 命令,为要向 NSX 注册的每个 Antrea Kubernetes 集群各创建一个自签名安全证书。
例如,假定您要为名为 cluster-sales 的 Antrea Kubernetes 集群创建一个长度为 2048 位的自签名 OpenSSL 证书。以下 OpenSSL 命令为该集群生成私钥文件、证书签名请求文件和自签名证书文件。
openssl genrsa -out cluster-sales-private.key 2048 openssl req -new -key cluster-sales-private.key -out cluster-sales.csr -subj "/C=US/ST=CA/L=Palo Alto/O=VMware/OU=Antrea Cluster/CN=cluster-sales" openssl x509 -req -days 3650 -sha256 -in cluster-sales.csr -signkey cluster-sales-private.key -out cluster-sales.crt
任务 8:创建主体身份用户
角色:NSX 管理员
管理平面适配器和中央控制平面适配器使用主体身份 (PI) 用户帐户在 NSX Manager 中进行身份验证,并将自身标识为主体身份。PI 用户拥有这些适配器报告的清单资源。NSX 禁止其他用户意外覆盖这些清单资源。
每个 Antrea Kubernetes 集群都需要不同的 PI 用户。集群名称必须在 NSX 中唯一。证书通用名称和 PI 用户名必须与集群名称相同。NSX 不支持在集群之间共享证书和 PI 用户。
在 NSX 中创建一个主体身份用户,该用户具有您在上一步中创建的自签名证书。为该主体身份用户分配企业管理员角色。
- 在 NSX Manager UI 中,单击系统选项卡。
- 在设置下,导航到 。
- 单击 。
- 输入主体身份用户的名称。例如,输入 cluster-sales。
重要说明: 确保为 NSX 主体身份用户、证书 CN 以及 bootstrap-config.yaml 文件中的 clusterName 参数指定相同的名称。
有关 bootstrap 配置文件的更多信息,请参见编辑引导配置文件。
- 选择企业管理员以作为角色。
- 在节点 ID 文本框中,输入 Antrea Kubernetes 集群的名称。对于向 NSX 注册的所有 Kubernetes 集群,该名称必须是唯一的。例如,输入 cluster-sales。
- 在证书 PEM 文本区域中,粘贴您以前创建的完整自签名证书。确保将 -----BEGIN CERTIFICATE---- 和 ------END CERTIFICATE----- 行也粘贴在该文本框中。
- 单击保存。
- 从左侧导航窗格中,在设置下面单击证书。验证是否显示了 Antrea Kubernetes 集群的自签名证书。
任务 9:将容器映像导入到容器注册表
角色:Kubernetes 平台管理员
可以使用两种方法完成该必备任务。
- 方法 1(建议):从 VMware Harbor Registry中提取映像
-
VMware 在 VMware Harbor Registry 上托管了一些容器映像。
映像位置如下所示:- projects.registry.vmware.com/antreainterworking/interworking-debian:version
- projects.registry.vmware.com/antreainterworking/interworking-ubuntu:version
- projects.registry.vmware.com/antreainterworking/interworking-photon:version
有关版本信息,请参见 VMware Container Networking with Antrea 发行说明 (https://docs.vmware.com/cn/VMware-Container-Networking-with-Antrea/index.html)。
在所选的任何文本编辑器中打开 interworking.yaml 和 deregisterjob.yaml 文件,并将所有映像 URL 替换为这些映像位置中的任一映像位置。
这种方法的优点是,在将 .yaml 文件提交到 Kubernetes API 服务器以注册集群时,Kubernetes 可以自动从 VMware Harbor Registry 中提取容器映像。
- 方法 2:手动将映像复制到 Kubernetes 工作节点和控制平面节点
-
如果 Kubernetes 基础架构未连接到 Internet 或连接速度太慢,请使用该手动方法。
从 interworking-version.tar 文件中提取容器映像,并将其复制到要向 NSX 注册的每个 Antrea Kubernetes 集群的 Kubernetes 工作节点和控制平面节点。
例如,在 Tanzu CLI 中,为每个 Kubernetes 工作节点 IP 和控制平面节点 IP 运行以下命令以复制 .tar 和 .yaml 文件:scp -o StrictHostKeyChecking=no interworking* capv@{node-ip}:/home/capv
将映像导入到本地 Kubernetes 注册表,该注册表是由容器运行时引擎管理的。或者,如果您的组织具有专用容器注册表,您可以将容器映像导入到该专用容器注册表中。
例如,在 Tanzu CLI 中,为每个 Kubernetes 工作节点 IP 和控制平面节点 IP 运行以下命令,以将容器映像导入到本地 Kubernetes 注册表中:
ssh capv@{node-ip} sudo ctr -n=k8s.io i import interworking-{version-id}.tar
要在配置了 NAT 的 vSphere with Tanzu 环境中使用此方法,必须在跳转主机虚拟机上运行 SCP 和 SSH 命令以连接到 Tanzu Kubernetes 集群节点。要了解有关创建 Linux 跳转主机虚拟机以及设置与集群节点的 SSH 连接的更多信息,请参见 vSphere with Tanzu 文档,网址为 https://docs.vmware.com/cn/VMware-vSphere/index.html。