En esta página se muestra cómo actualizar el plano de control y los grupos de nodos por separado en un clúster de usuario creado con Google Distributed Cloud (solo software) en VMware. Esta página está dirigida a administradores y operadores de TI que gestionan el ciclo de vida de la infraestructura tecnológica subyacente. Para obtener más información sobre los roles habituales y las tareas de ejemplo a las que hacemos referencia en el contenido, consulta Roles y tareas habituales de los usuarios de GKE. Google Cloud Antes de leer este documento, asegúrate de que conoces la planificación y la ejecución de las actualizaciones de Google Distributed Cloud, tal como se describe en los siguientes artículos:
Limitaciones
Actualizar los grupos de nodos por separado del plano de control tiene las siguientes limitaciones:
- Esta función es compatible con los grupos de nodos de Ubuntu y COS, pero no con los grupos de nodos de Windows. 
- Esta función no está disponible al actualizar clústeres que no son Advanced a clústeres Advanced. Los clústeres no avanzados se actualizarán automáticamente a clústeres avanzados en la versión 1.33. 
- Versión 1.31: esta función no está disponible en los clústeres avanzados. 
- Versión 1.32 y posteriores: esta función está disponible en clústeres avanzados. 
¿Por qué actualizar el plano de control y los grupos de nodos por separado?
- Si tus clústeres tienen la versión 1.16 o una posterior, puedes saltarte una versión secundaria al actualizar los grupos de nodos. Si se realiza una actualización de versión omitida, el tiempo que se tarda en actualizar secuencialmente los grupos de nodos dos versiones se reduce a la mitad. Además, las actualizaciones de versiones omitidas te permiten aumentar el tiempo entre las actualizaciones necesarias para mantenerte en una versión compatible. Reducir el número de actualizaciones disminuye las interrupciones de la carga de trabajo y el tiempo de verificación. Para obtener más información, consulta Saltar una versión al actualizar grupos de nodos. 
- En determinadas situaciones, puede que quieras actualizar algunos grupos de nodos de un clúster de usuario, pero no todos. Por ejemplo: - Primero puedes actualizar el plano de control y un grupo de nodos que tenga poco tráfico o que ejecute tus cargas de trabajo menos críticas. Cuando te asegures de que tus cargas de trabajo se ejecutan correctamente en la nueva versión, podrás actualizar más grupos de nodos hasta que todos estén actualizados. 
- En lugar de una ventana de mantenimiento grande para actualizar el clúster, puedes actualizarlo en varias ventanas de mantenimiento. Consulta Estimar el tiempo necesario y planificar una ventana de mantenimiento para obtener información sobre cómo estimar el tiempo de una ventana de mantenimiento. 
 
Antes de empezar
- En la versión 1.29 y posteriores, las comprobaciones previas del lado del servidor están habilitadas de forma predeterminada. Asegúrate de revisar las reglas de tu cortafuegos para hacer los cambios necesarios. 
- Para actualizar a la versión 1.28 o posterior, debes habilitar - kubernetesmetadata.googleapis.comy conceder el rol de gestión de identidades y accesos- kubernetesmetadata.publishera la cuenta de servicio de registro y monitorización. Para obtener más información, consulta los requisitos de las APIs de Google y de IAM.
- Asegúrate de que la versión actual del clúster sea la 1.14 o una posterior. 
Actualizar el plano de control y los grupos de nodos seleccionados
Puedes actualizar el plano de control de un clúster de usuarios por separado de los grupos de nodos de trabajo con gkectl, la CLI de Google Cloud y Terraform.
Solo puedes usar Terraform para la actualización si has creado el clúster de usuario con Terraform.
gkectl
- Defina la versión de origen y la de destino en las siguientes variables de marcador de posición. Todas las versiones deben ser el número de versión completo en el formato - x.y.z-gke.N, como- 1.16.11-gke.25.- Versión - Descripción - SOURCE_VERSION- La versión actual del clúster. - TARGET_VERSION- Elige la versión de destino. Selecciona el parche recomendado de la versión secundaria de destino. 
- Actualiza tu estación de trabajo de administrador a la versión de destino. Espera a que aparezca un mensaje que indique que la actualización se ha completado correctamente. 
- Importa las imágenes del SO correspondientes a vSphere: - gkectl prepare \ --bundle-path /var/lib/gke/bundles/gke-onprem-vsphere-TARGET_VERSION.tgz \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG - Sustituye - ADMIN_CLUSTER_KUBECONFIGpor la ruta del archivo- kubeconfigde tu clúster de administrador.
- Haz los siguientes cambios en el archivo de configuración del clúster de usuarios: - En el campo - gkeOnPremVersion, introduzca la versión de destino:- TARGET_VERSION.
- En cada grupo de nodos que quieras actualizar, asigna el valor de cadena vacía al campo - nodePools.nodePool[i].gkeOnPremVersion.- En la versión 1.28 y posteriores, puedes acelerar la actualización del grupo de nodos
definiendo el nodePools.nodePool[i].updateStrategy.rollingUpdate.maxSurgecampo con un valor entero superior a 1. Cuando actualizas nodos conmaxSurge, varios nodos se actualizan al mismo tiempo que se tarda en actualizar un solo nodo.
 
- En la versión 1.28 y posteriores, puedes acelerar la actualización del grupo de nodos
definiendo el 
- En cada grupo de nodos que no quieras actualizar, define - nodePools.nodePool[i].gkeOnPremVersioncomo la versión de origen,- SOURCE_VERSION.
 - En el siguiente ejemplo se muestra una parte del archivo de configuración del clúster de usuarios. Especifica que el plano de control y - pool-1se actualizarán a- TARGET_VERSION, pero- pool-2se mantendrá en- SOURCE_VERSION.- gkeOnPremVersion: TARGET_VERSION ... nodePools: - name: pool-1 gkeOnPremVersion: "" ... - name: pool-2 gkeOnPremVersion: SOURCE_VERSION ...
- Actualiza el plano de control y los grupos de nodos seleccionados: - gkectl upgrade cluster \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG_FILE - Sustituye - USER_CLUSTER_CONFIGpor la ruta del archivo de configuración de tu clúster de usuario.
Actualizar grupos de nodos adicionales
Siguiendo el ejemplo anterior, supongamos que todo funciona bien con pool-1 y ahora quieres cambiar a pool-2.
- En el archivo de configuración de clúster de usuarios, en - pool-2, asigna- gkeOnPremVersiona la cadena vacía:- gkeOnPremVersion: TARGET_VERSION ... nodePools: - name: pool-1 gkeOnPremVersion: "" ... - name: pool-2 gkeOnPremVersion: "" ...
- Ejecuta - gkectl update clusterpara aplicar el cambio:- gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG 
CLI de gcloud
Para actualizar un clúster de usuarios, es necesario hacer algunos cambios en el clúster de administrador. El comando gcloud container vmware clusters upgrade hace lo siguiente automáticamente:
- Inscribe el clúster de administrador en la API de GKE On-Prem si aún no está inscrito. 
- Descarga e implementa un paquete de componentes en el clúster de administrador. La versión de los componentes coincide con la que especifiques para la actualización. Estos componentes permiten que el clúster de administrador gestione los clústeres de usuario de esa versión. 
Actualizar el plano de control
Sigue este paso para actualizar el plano de control del clúster de usuarios.
- Actualiza los componentes de Google Cloud CLI: - gcloud components update
- Cambia la política de actualización del clúster: - gcloud container vmware clusters update USER_CLUSTER_NAME \ --project=PROJECT_ID \ --location=REGION \ --upgrade-policy control-plane-only=True - Haz los cambios siguientes: - USER_CLUSTER_NAME: nombre del clúster de usuarios que se va a actualizar.
- PROJECT_ID: ID del proyecto host de la flota en el que el clúster de usuario es miembro. Este es el proyecto que especificaste cuando se creó el clúster. Si has creado el clúster con- gkectl, este es el ID de proyecto del campo- gkeConnect.projectIDdel archivo de configuración del clúster.
- REGION: la región en la que se ejecuta la API de GKE On-Prem y almacena sus metadatos. Google Cloud Si has creado el clúster con un cliente de la API de GKE On-Prem, esta es la región que has seleccionado al crear el clúster. Si has creado el clúster con- gkectl, esta es la región que has especificado al registrar el clúster en la API de GKE On-Prem.
 
- Actualiza el plano de control del clúster: - gcloud container vmware clusters upgrade USER_CLUSTER_NAME \ --project=PROJECT_ID \ --location=REGION \ --version=TARGET_VERSION - Sustituye - TARGET_VERSIONpor la versión a la que quieras actualizar. Selecciona el parche recomendado de la versión secundaria de destino.- La salida del comando es similar a la siguiente: - Waiting for operation [projects/example-project-12345/locations/us-west1/operations/operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179] to complete. - En el resultado de ejemplo, la cadena - operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179es el OPERATION_ID de la operación de larga duración. Para consultar el estado de la operación, ejecuta el siguiente comando en otra ventana de terminal:- gcloud container vmware operations describe OPERATION_ID \ --project=PROJECT_ID \ --location=REGION 
Actualizar grupos de nodos
Sigue estos pasos para actualizar los grupos de nodos después de que se haya actualizado el plano de control del clúster de usuarios:
- Obtén una lista de grupos de nodos del clúster de usuarios: - gcloud container vmware node-pools list --cluster=USER_CLUSTER_NAME \ --project=PROJECT_ID \ --location=REGION 
- En cada grupo de nodos que quieras actualizar, ejecuta el siguiente comando: - gcloud container vmware node-pools update NODE_POOL_NAME \ --cluster=USER_CLUSTER_NAME \ --project=PROJECT_ID \ --location=REGION \ --version=TARGET_VERSION 
Terraform
- Actualiza los componentes de Google Cloud CLI: - gcloud components update
- Si aún no lo has hecho, registra el clúster de administrador en la API de GKE On-Prem. Una vez que el clúster se haya registrado en la API de GKE On-Prem, no tendrás que volver a realizar este paso. 
- Descarga la nueva versión de los componentes e impleméntala en el clúster de administración: - gcloud vmware admin-clusters update ADMIN_CLUSTER_NAME \ --project=PROJECT_ID \ --location=REGION \ --required-platform-version=TARGET_VERSION - Haz los cambios siguientes: - USER_CLUSTER_NAME: nombre del clúster de usuarios que se va a actualizar.
- PROJECT_ID: ID del proyecto host de la flota en el que el clúster de usuario es miembro. Este es el proyecto que especificaste cuando se creó el clúster. Si has creado el clúster con- gkectl, este es el ID de proyecto del campo- gkeConnect.projectIDdel archivo de configuración del clúster.
- REGION: la región en la que se ejecuta la API de GKE On-Prem y almacena sus metadatos. Google Cloud Si has creado el clúster con un cliente de la API de GKE On-Prem, esta es la región que has seleccionado al crear el clúster. Si has creado el clúster con- gkectl, esta es la región que has especificado al registrar el clúster en la API de GKE On-Prem.
- TARGET_VERSION: la versión a la que se va a actualizar. Selecciona el parche recomendado de la versión secundaria de destino.
 - Este comando descarga la versión de los componentes que especifiques en - --required-platform-versional clúster de administrador y, a continuación, implementa los componentes. Estos componentes permiten que el clúster de administrador gestione los clústeres de usuario de esa versión.
- En el archivo - main.tfque has usado para crear el clúster de usuario, cambia- on_prem_versionen el recurso de clúster a la nueva versión.
- Añade lo siguiente al recurso de clúster para que solo se actualice el plano de control: - upgrade_policy { control_plane_only = true }
- Inicializa y crea el plan de Terraform: - terraform init- Terraform instala las bibliotecas necesarias, como el Google Cloudproveedor. 
- Revisa la configuración y haz los cambios necesarios: - terraform plan
- Aplica el plan de Terraform para crear el clúster de usuarios: - terraform apply
Actualizar grupos de nodos
Sigue estos pasos para actualizar los grupos de nodos después de que se haya actualizado el plano de control del clúster de usuarios:
- En - main.tfdel recurso de cada grupo de nodos que quieras actualizar, añade lo siguiente:- on_prem_version = "TARGET_VERSION" - Por ejemplo: - resource "google_gkeonprem_vmware_node_pool" "nodepool-basic" { name = "my-nodepool" location = "us-west1" vmware_cluster = google_gkeonprem_vmware_cluster.default-basic.name config { replicas = 3 image_type = "ubuntu_containerd" enable_load_balancer = true } on_prem_version = "1.16.0-gke.0" }
- Inicializa y crea el plan de Terraform: - terraform init
- Revisa la configuración y haz los cambios necesarios: - terraform plan
- Aplica el plan de Terraform para crear el clúster de usuarios: - terraform apply
Solución de problemas
Si tienes algún problema después de actualizar un grupo de nodos, puedes volver a la versión anterior. Para obtener más información, consulta Revertir un grupo de nodos después de una actualización.