可以使用 antrea-interworking-version.zip 文件中包含的 deregisterjob.yaml 文件从 NSX 中取消注册 Antrea 容器集群。

前提条件

在文本编辑器中打开 deregisterjob.yaml 文件,并将映像 URL 替换为 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)。

如果 Kubernetes 集群无法访问 Internet,您可以在 antrea-interworking-version.zip 文件中找到容器映像,该文件是您在注册容器集群之前下载的。如果正在容器集群中运行 interworking 部署,则容器映像已加载到集群节点上。取消注册作业和 interworking 部署使用相同的容器映像。

过程

  1. 运行以下 kubectl 命令,以将 deregisterjob.yaml 提交到 Kubernetes API 服务器。
    $ kubectl apply -f deregisterjob.yaml
    该作业需要一些时间才能完成。以下操作是在后台执行的:
    • 删除 interworking 部署。
    • NSX 清单中删除 Antrea 容器集群的资源。资源包括 Pod、服务、输入规则、节点和网络策略。
    • 在分布式防火墙策略和组中移除对 Antrea 容器集群的引用(如果有)。
    • 从 Kubernetes 集群中删除由 NSX 管理的 Antrea 自定义资源。这些自定义资源包括:流跟踪、ClusterNetworkPolicy、ClusterGroup 和 Tier。
    注: 如果使用以下 NSX API 取消注册 Antrea 容器集群,则会从 NSX 清单中删除该容器集群的资源,并且也会在 NSX 管理的分布式防火墙策略和组中删除对该容器集群的引用:
    DELETE https://{nsx-mgr-ip}/policy/api/v1/infra/sites/{siteid}/enforcement-points/{enforcementpoint-id}/cluster-control-planes/{cluster-name}?cascade=true

    有关此 API 的详细信息,请参见NSX API 指南。但是,此 API 不会从 NSX 清单中删除该容器集群。您可以从命令行运行 curl 命令来删除该集群。有关详细信息,请参见使用命令行从 NSX 清单中删除 Antrea 容器集群

  2. 运行以下 kubectl 命令以检查取消注册作业的状态:
    kubectl get job -o wide deregister -n vmware-system-antrea

    等待该作业完成。您可能需要多次运行该命令以检查作业状态。

  3. 在完成取消注册作业后,运行以下 kubectl 命令以删除 vmware-system-antrea 命名空间和基于角色的访问控制 (Role-Based Access Control, RBAC) 资源。
    kubectl delete -f interworking.yaml --ignore-not-found

    在该命令中使用了 ignore-not-found 标记,以避免在找不到某些要删除的资源时在命令输出中显示 Resource Not Found 错误。

    将删除 RBAC 资源,例如,ServiceAccount、ClusterRole 和 ClusterRoleBinding。

下一步做什么

确认 NSX 清单中未显示 Antrea 容器集群。
  1. NSX Manager UI 中,导航到清单 > 容器 > 集群
  2. 此时,可以看到清单中未显示 Antrea 容器集群。
可选:在取消注册容器集群后,删除主体身份 (PI) 用户和自签名证书。
  • 要删除 PI 用户帐户,请导航到系统 > 用户管理 > 用户角色分配。在 PI 用户名旁边,单击“操作”菜单,然后单击删除
  • 要删除自签名证书,请导航到系统 > 证书。在证书名称旁边,单击“操作”菜单,然后单击删除
如果需要,您可以重新注册相同的 Antrea 容器集群。不过,在重新注册容器集群之前,请确保您已运行以下 kubectl 命令:
kubectl delete -f interworking.yaml --ignore-not-found
要重新注册相同的容器集群,请执行以下任一操作:
  • 如果要重复使用相同的 PI 用户帐户和自签名证书以重新注册容器集群,请不要从 NSX 中删除该 PI 用户帐户和自签名证书。在这种情况下,不需要在 bootstrap-config.yaml 中进行任何更改。
  • 如果要使用新的 PI 用户帐户和自签名证书重新注册容器集群,请删除旧 PI 用户帐户和自签名证书。要开始执行该过程,请创建一个自签名证书,然后使用该新证书创建一个 PI 用户帐户。编辑 bootstrap-config.yaml 中的 tls.crttsl.key 参数以更改为该新 PI 用户的信息。