En esta sección se describe cómo actualizar NCP de la versión 2.5.x o 3.0.x a la 3.1 en un entorno de Kubernetes.

  1. Descargue los archivos de instalación. Consulte Descargar archivos de instalación.
  2. Ejecute los siguientes comandos para ver el ConfigMap y el ncp.ini en el entorno actual:
    kubectl describe configmap nsx-ncp-config -n nsx-system
    kubectl describe configmap nsx-node-agent-config -n nsx-system
  3. Edite el archivo YAML de NCP según su entorno actual. Como referencia, consulte Editar el archivo YAML de NCP.
    • Debe definir ovs_uplink_port en la sección [nsx_node_agent].
    • Reemplace todas las instancias de image: nsx-ncp del nuevo nombre de imagen de NCP.
    • Si utiliza secretos de Kubernetes para almacenar certificados de NCP, consulte la sección "Actualizar las especificaciones de implementación de NCP" en Editar el archivo YAML de NCP sobre cómo montar los volúmenes secretos.
  4. Ejecute el siguiente comando para comprobar la sintaxis del archivo YAML de NCP:
    kubectl apply -f ncp-<platform_name>.yml --server-dry-run
    La respuesta mostrará una lista de los recursos que se van a crear o a actualizar (que se muestran como "configurados" en la salida). Por ejemplo,
    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. Ejecute el siguiente comando para eliminar los recursos de NCP antiguos:
    kubectl delete deployment nsx-ncp -n nsx-system
  6. Ejecute el siguiente comando para comprobar si se han finalizado todos los pods de NCP anteriores:
    kubectl get pods -l component=nsx-ncp -n nsx-system

    No debe aparecer ningún pod si se finalizan todos los pods de NCP anteriores. Espere a que se terminen todos los pods antes de continuar.

  7. Borre el bloqueo de la elección anterior. En la interfaz de usuario web de NSX Manager, vaya a la página de búsqueda y realice una búsqueda avanzada de recursos con las siguientes etiquetas:
    Scope: ncp\/ha         Tag: true
    Scope: ncp\/cluster    Tag: <name of the cluster in ncp.ini>

    Debería ver uno o varios recursos SpoofGuard. Borre todas las etiquetas de estos recursos.

  8. Ejecute el siguiente comando para iniciar la actualización:
    kubectl apply -f ncp-{platform_name}.yml
  9. Ejecute el siguiente comando para comprobar el estado de la actualización:
    kubectl get pods -o wide -n nsx-system

    El resultado debe mostrar nuevos pods creados y pods antiguos terminados. Una vez que la actualización se haya completado correctamente, todos los pods deben aparecer como En ejecución.