Soluciona problemas de actualización de Google Distributed Cloud

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

Si necesitas asistencia adicional, comunícate con Atención al cliente de Cloud.

Tiempo de espera de 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 agota el tiempo de espera de la actualización, se muestran errores similares a los siguientes:

  • En el clúster de usuarios:

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

    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 intentar el comando de actualización. Si vuelves a intentar el comando y se agota el tiempo de espera nuevamente con el mismo mensaje de error, comunícate con el equipo de Atención al cliente de Cloud.

La actualización contiene varios cambios

Los comandos gkectl update admin y gkectl update cluster no permiten actualizar varios parámetros de configuración en un solo comando. Cuando la configuración contiene una diferencia con varios parámetros de configuración modificados 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.
  • Ejecutaste gkectl upgrade antes con la diferencia de configuración y esperabas que se aplicaran los cambios.
    • gkectl upgrade no aplica ninguna diferencia de configuración, excepto el aumento de versión.
  • Editaste la configuración de otra actualización de funciones antes, pero te olvidaste de ejecutar el comando gkectl update.

Si encuentras este comportamiento, revisa la diferencia en el mensaje de error y actualiza la configuración requerida una por una con varios comandos gkectl update. Para ayudar a identificar los cambios, puedes usar gkectl get-config para generar archivos de configuración desde 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 encuentras este comportamiento, revisa la diferencia en el mensaje de error y realiza las siguientes acciones:

  • Si el cambio no es intencional, edita el archivo YAML de configuración y actualízalo solo con los cambios correctos y deseados.
    • En el ejemplo anterior, si no tenías la intención de inhabilitar AdvancedNetworking, establece advancedNetworking: true en el archivo YAML de configuración.
  • Si el cambio es intencional, el error indica que no se admite. Realiza una de las siguientes acciones:

La imagen del SO no existe

Es posible que los comandos gkectl update cluster y gkectl update admin fallen con fallas de verificación previa de OS Images similares a los siguientes ejemplos:

  • En el clúster de usuarios:

    - 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:

    - 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 del SO se quitó de forma inesperada en tu entorno de vCenter, por ejemplo, a través de un trabajo de limpieza periódico.

Para volver a importar las imágenes del SO de importación, ejecuta el comando gkectl prepare de la siguiente manera:

gkectl prepare \
    --bundle-path /var/lib/gke/bundles/gke-onprem-vsphere-TARGET_VERSION.tgz \
    --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
    --skip-upload-container-images

No hay suficiente espacio libre en el almacén de datos para los grupos de nodos nuevos

Cuando agregas grupos de nodos nuevos, es posible que el comando gkectl update cluster falle con errores de verificación previa de 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 para proporcionar espacio para que la operación se realice correctamente:

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

¿Qué sigue?

Si necesitas asistencia adicional, comunícate con Atención al cliente de Cloud.