Soluciona problemas de actualización de GKE en VMware

Si tienes problemas para actualizar GKE en VMware, las siguientes secciones pueden ayudarte a solucionarlos. Para obtener más información sobre qué configuración se puede actualizar, consulta Qué se puede y no se puede actualizar en los clústeres.

Si necesitas más ayuda, comunícate con el equipo de Atención al cliente de Google.

Tiempo de espera de la actualización

El tiempo de espera de la actualización se calcula de forma dinámica en función de los recursos que se actualizarán. Sin embargo, el cálculo no siempre es preciso. Cuando se agote el tiempo de espera de la actualización, se mostrarán errores similares a los siguientes:

  • En el clúster de usuario, haz lo siguiente:

    Failed to update the cluster:...timed out waiting for the condition...
    
  • En el clúster de administrador, haz lo siguiente:

    Failed to update the admin cluster:...timed out waiting for the condition...
    

Este tipo de error de tiempo de espera se puede ignorar de forma segura y puedes volver a ejecutar el comando update. Si vuelves a ejecutar el comando y se agota el tiempo de espera con el mismo mensaje de error, comunícate con la Atención al cliente de Google.

La actualización incluye varios cambios

Los comandos gkectl update admin y gkectl update cluster no permiten actualizar varias configuraciones en un solo comando. Cuando la configuración contiene una diferencia en la que se cambian varios parámetros de configuración y se muestra un error similar al siguiente ejemplo:

Update summary for cluster X:
    antiAffinityGroups: enabled to be set to true from false          &config.AAGSpec{
        -   Enabled: false,
        +   Enabled: true,
          }
    user master cpu to be set to 5 from 4          config.NodePoolProps{
            Role:        "master",
            MachineType: "standard-master",
        -   CPUs:        4,
        +   CPUs:        5,
            MemoryMB:    8192,
            Replicas:    3,
            ... // 2 identical fields
            Labels:         nil,
            NodeTaints:     nil,
        -   Vsphere:        nil,
        &config.NodePoolVsphereSpec{Datastore: "lifecycle-workloads1-datastore1"},
        +   Vsphere:        nil,
            BootDiskSizeGB: nil,
            OSImageType:    "",
            ... // 5 identical fields
          }

Exit with error:
Failed to update the cluster: the update contains multiple changes. Please
update only one feature at a time

Este error puede deberse a varios motivos, incluidos los siguientes:

  • Un error o una configuración incorrecta.
  • Antes ejecutaste gkectl upgrade con la diferencia de configuración y esperabas que se aplicaran los cambios.
    • gkectl upgrade no aplica ninguna diferencia de configuración, excepto el cambio de versión.
  • Editaste la configuración de otra actualización de función antes, pero olvidaste ejecutar el comando gkectl update.

Si te encuentras con este comportamiento, revisa la diferencia en el mensaje de error y actualiza la configuración requerida una por una con varios comandos gkectl update. A fin de identificar los cambios, puedes usar gkectl get-config para generar archivos de configuración a partir de un clúster y ver el estado y la configuración existentes.

Cambios no admitidos

Los comandos gkectl update cluster y gkectl update admin ignoran los cambios no admitidos y muestran mensajes de error similares a los siguientes ejemplos:

detected unsupported changes: (-current +desired)
    ...
-   AdvancedNetworking:       &true,
+   AdvancedNetworking:       &false,
    ...
, which will be ignored

Si te encuentras con este comportamiento, revisa la diferencia en el mensaje de error y realiza las siguientes acciones:

  • Si el cambio no es intencional, edita el archivo de configuración YAML y actualízalo con los cambios correctos y previstos.
    • En el ejemplo anterior, si no querías inhabilitar AdvancedNetworking, configura advancedNetworking: true en el archivo YAML de configuración.
  • Si el cambio está previsto, el error indica que no se admite el cambio. Realiza una de las siguientes acciones:

La imagen de SO no existe

Los comandos gkectl update cluster y gkectl update admin pueden fallar con fallas de verificación previa OS Images similares a los siguientes ejemplos:

  • En el clúster de usuario, haz lo siguiente:

    - Validation Category: OS Images
        - [FAILURE] User cluster OS images exist: os images  [xxxx] don't exist,
        please run `gkectl prepare` to upload os images.
    
  • En el clúster de administrador, haz lo siguiente:

    - Validation Category: OS Images
        - [FAILURE] Admin cluster OS images exist: os images [xxxx] don't exist,
        please run `gkectl prepare` to upload os images.
    

Estos errores pueden ocurrir si la imagen de SO se quitó de forma inesperada en tu entorno de vCenter, como en un trabajo de limpieza periódica.

Para volver a importar las imágenes de SO de importación, ejecuta el comando gkectl prepare. Para obtener más información y el comando gkectl prepare completo, consulta cómo importar imágenes de SO a vSphere.

El almacén de datos no tiene suficiente espacio libre para grupos de nodos nuevos

Cuando agregas grupos de nodos nuevos, el comando gkectl update cluster puede fallar con errores de verificación previa VSphere Datastore FreeSpace similares al siguiente ejemplo:

  - [FAILURE] VSphere Datastore FreeSpace: vCenter datastore: xxxx insufficient
  FreeSpace, requires at least xxx  GB

Esta falla indica que el almacén de datos no tiene suficiente espacio libre para ejecutar los grupos de nodos nuevos. Usa una de las siguientes opciones a fin de proporcionar espacio para que la operación tenga éxito:

  • Libera espacio del almacén de datos.
  • Configura un almacén de datos de nodePools[].vsphere.datastore diferente para el grupo de nodos.

¿Qué sigue?

Si necesitas más ayuda, comunícate con el equipo de Atención al cliente de Google.