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