NSX 注册 Antrea 容器集群之前,必须先完成多个必备任务。

可向单个 NSX 部署注册多个 Antrea 容器集群。

部署 Antrea 容器集群

角色:Kubernetes 平台管理员

一个具有 Antrea 网络插件的 Kubernetes 集群必须已启动并准备就绪。

例如,要将 Tanzu Kubernetes Grid 实例中的集群与 NSX 集成到一起,请确保完成了以下任务:
  • 部署了 Tanzu 管理集群,并且这些集群处于运行状态。
  • 部署了 Tanzu Kubernetes 集群,并且这些集群处于运行状态。
  • 安装了 Tanzu 命令行界面 (Command Line Interface, CLI)。

有关这些任务的详细信息,请参见 Tanzu Kubernetes Grid 文档,网址为 https://docs.vmware.com/cn/VMware-Tanzu-Kubernetes-Grid/index.html

在部署管理集群时,将在管理集群中自动启用到 Antrea 的网络连接。

注: 还支持 networkPolicyOnly 模式下的 Antrea CNI。要了解更多信息,请参见 《VMware Container Networking with Antrea 安装指南》中的 在 networkPolicyOnly 模式下安装 VMware Container Networking with Antrea文档。

NSX 中添加相应许可证

角色:NSX 管理员

确保您的 NSX 环境具有以下许可证之一:
  • NSX Data Center Advanced
  • NSX Data Center Enterprise Plus
  • Antrea Enterprise Standalone
要添加许可证,请执行以下操作:
  1. NSX Manager 中,导航到系统 > 许可证 > 添加许可证
  2. 输入许可证密钥。

创建自签名安全证书

角色:NSX 管理员

需要使用自签名安全证书以在 NSX 中创建主体身份用户帐户,将在本主题后面介绍该过程。

使用 OpenSSL 命令,为要向 NSX 注册的每个 Antrea 容器集群各创建一个自签名安全证书。

例如,假定您要为名为 cluster-sales 的 Antrea 容器集群创建一个长度为 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
注: 在用于创建 .csr 文件的 openssl req 命令中,确保每个 Antrea 容器集群的通用名称 (CN) 是不同的。

创建主体身份用户

角色:NSX 管理员

管理平面适配器中央控制平面适配器使用主体身份 (PI) 用户帐户在 NSX Manager 中进行身份验证,并将自身标识为主体身份。PI 用户拥有这些适配器报告的清单资源。NSX 禁止其他用户意外覆盖这些清单资源。

每个 Antrea 容器集群都需要不同的 PI 用户。集群名称必须在 NSX 中唯一。证书通用名称和 PI 用户名必须与集群名称相同。NSX 不支持在集群之间共享证书和 PI 用户。

NSX 中创建一个主体身份用户,该用户具有您在上一步中创建的自签名证书。为该主体身份用户分配企业管理员角色。该主体身份用户对于 Antrea 容器集群而言具有唯一性。

要创建主体身份用户,请执行以下操作:
  1. NSX Manager UI 中,单击系统选项卡。
  2. 设置下,导航到用户管理 > 用户角色分配
  3. 单击添加 > 主体身份和角色
  4. 输入主体身份用户的名称。例如,输入 cluster-sales
    重要说明: 确保为 NSX 主体身份用户、证书 CN 以及 bootstrap-config.yaml 文件中的 clusterName 参数指定相同的名称。

    有关 bootstrap 配置文件的更多信息,请参见编辑引导配置文件

  5. 选择企业管理员以作为角色。
  6. 节点 ID 文本框中,输入 Antrea 容器集群的名称。对于在 NSX 中注册的所有容器集群,该名称必须是唯一的。例如,输入 cluster-sales
  7. 证书 PEM 文本区域中,粘贴您以前创建的完整自签名证书。确保将 -----BEGIN CERTIFICATE---- 和 ------END CERTIFICATE----- 行也粘贴在该文本框中。
  8. 单击保存
  9. 从左侧导航窗格中,在设置下面单击证书。验证是否显示了 Antrea 容器集群的自签名证书。

确定 Kubernetes 集群中的 Antrea 版本

角色:Kubernetes 平台管理员

必须先确定 Kubernetes 集群中的 Antrea 开源版本,然后再下载 Antrea-NSX interworking 文件 (antrea-interworking-version.zip),这是本主题中的下一个必备条件。

重要说明: 每个 VMware Container Networking™ with Antrea™ 版本基于一个 Antrea 开源版本。 Antrea- NSX interworking 版本与同一 VMware Container Networking 版本中的 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.3.1-1.2.3 发行说明

v1.2.3

v0.2.*

要确定 Kubernetes 集群中的 Antrea 开源版本,请执行以下步骤:
  1. 查找 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

  2. 通过运行以下命令检索 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 开源版本。

下载 Antrea-NSX Interworking Zip 文件

角色:Kubernetes 平台管理员

完成以下步骤以下载 antrea-interworking-version.zip 文件:
  1. 在 Web 浏览器中,打开 VMware Customer Connect 门户上的所有下载页面,然后使用您的 VMware ID 登录。
  2. 所有产品下拉菜单中,选择网络和安全
  3. VMware Antrea 旁边,单击下载产品。将打开下载 VMware Antrea 页面。
  4. 在您所需的 VMware Container Networking with Antrea 版本旁边,单击转到下载
  5. 在页面上找到 Antrea-NSX Interworking 适配器映像和清单包。单击了解更多信息,确认 antrea-interworking-version.zip 文件中提到的版本与之前确定的 Antrea 开源软件版本兼容。
  6. 单击立即下载
提取 ZIP 文件。它包含以下文件。
文件名 描述
interworking.yaml 用于向 NSX 注册 Antrea 容器集群的 YAML 部署清单文件。
bootstrap-config.yaml 这是一个 YAML 文件,您可以在其中指定以下详细信息以进行注册:Antrea 容器集群名称、NSX Manager IP 地址、容器集群的 TLS 证书以及容器集群的私钥。
deregisterjob.yaml 这是一个 YAML 清单文件,用于从 NSX 中取消注册 Antrea 容器集群。
ns-label-webhook.yaml 用于自动向新创建的 Kubernetes 命名空间添加标签的 Webhook 定义。仅当 Kubernetes 版本低于或等于 1.20 时,才会使用此 YAML 文件。
interworking-version.tar 管理平面适配器中央控制平面适配器的容器映像的存档文件。

将容器映像导入到容器注册表

角色: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.yamlderegisterjob.yaml 文件,并将所有映像 URL 替换为这些映像位置中的任一映像位置。

这种方法的优点是,在将 .yaml 文件提交到 Kubernetes API 服务器以注册容器集群时,Kubernetes 可以自动从 VMware Harbor Registry 中提取容器映像。

方法 2:手动将映像复制到 Kubernetes 工作节点和控制平面节点

如果 Kubernetes 基础架构未连接到 Internet 或连接速度太慢,请使用该手动方法。

interworking-version.tar 文件中提取容器映像,并将其复制到要在 NSX 中注册的每个 Antrea 容器集群的 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