在 Kubernetes 环境中升级 NCP

本节介绍如何在 Kubernetes 环境中将 NCP 从 2.5.* 升级到 3.0.x。
  1. 下载安装文件。请参见下载安装文件
  2. 运行以下命令以在当前环境中查看 ConfigMap 和 ncp.ini。
    kubectl describe configmap nsx-ncp-config -n nsx-system kubectl describe configmap nsx-node-agent-config -n nsx-system
  3. 根据当前环境编辑 NCP YAML 文件。有关参考,请参见编辑 NCP YAML 文件
    • 您必须在
      [nsx_node_agent]
      部分定义
      ovs_uplink_port
    • image: nsx-ncp
      的所有实例替换为新的 NCP 映像名称。
    • 如果使用 Kubernetes 密钥存储 NCP 的证书,请参阅编辑 NCP YAML 文件中有关挂载密钥卷的“更新 NCP 部署规范”部分。
  4. 运行以下命令以检查 NCP YAML 文件的语法:
    kubectl apply -f ncp-<platform_name>.yml --server-dry-run
    响应将列出要创建或更新的资源(在输出中显示为“configured”)。例如,
    customresourcedefinition.apiextensions.k8s.io/nsxerrors.nsx.vmware.com created (server dry run) customresourcedefinition.apiextensions.k8s.io/nsxlocks.nsx.vmware.com created (server dry run) namespace/nsx-system unchanged (server dry run) serviceaccount/ncp-svc-account unchanged (server dry run) clusterrole.rbac.authorization.k8s.io/ncp-cluster-role configured (server dry run) clusterrole.rbac.authorization.k8s.io/ncp-patch-role configured (server dry run) clusterrolebinding.rbac.authorization.k8s.io/ncp-cluster-role-binding unchanged (server dry run) clusterrolebinding.rbac.authorization.k8s.io/ncp-patch-role-binding unchanged (server dry run) serviceaccount/nsx-node-agent-svc-account unchanged (server dry run) clusterrole.rbac.authorization.k8s.io/nsx-node-agent-cluster-role configured (server dry run) clusterrolebinding.rbac.authorization.k8s.io/nsx-node-agent-cluster-role-binding unchanged (server dry run) configmap/nsx-ncp-config configured (server dry run) deployment.extensions/nsx-ncp configured (server dry run) configmap/nsx-node-agent-config configured (server dry run) daemonset.extensions/nsx-ncp-bootstrap configured (server dry run) daemonset.extensions/nsx-node-agent configured (server dry run)
  5. 运行以下命令以删除旧的 NCP 资源:
    kubectl delete deployment nsx-ncp -n nsx-system
  6. 运行以下命令以检查是否所有旧的 NCP Pod 均已终止:
    kubectl get pods -l component=nsx-ncp -n nsx-system
    如果所有旧的 NCP Pod 均已终止,它应不会列出任何 Pod。等待所有 Pod 终止后再继续。
  7. 清除旧的选举锁定。在 NSX Manager Web UI 中,转到“搜索”页面,然后使用以下标记对资源执行高级搜索:
    Scope: ncp\/ha Tag: true Scope: ncp\/cluster Tag: <name of the cluster in ncp.ini>
    您应看到一个或多个 SpoofGuard 资源。清除这些资源上的所有标记。
  8. 运行以下命令开始升级:
    kubectl apply -f ncp-{platform_name}.yml
  9. 运行以下命令检查升级状态:
    kubectl get pods -o wide -n nsx-system
    输出应显示正在创建的新 Pod,并终止旧 Pod。成功升级后,所有 Pod 的状态均应显示为
    Running