Risolvere i problemi di aggiornamento di GKE su VMware

In caso di problemi con l'aggiornamento di GKE su VMware, le seguenti sezioni potrebbero aiutarti a risolverli. Per ulteriori informazioni su quali impostazioni possono essere aggiornate, consulta Cosa è possibile e non è possibile aggiornare nei cluster.

Se hai bisogno di ulteriore aiuto, contatta l'Assistenza Google.

Timeout aggiornamento

Il timeout dell'aggiornamento viene calcolato dinamicamente in base alle risorse da aggiornare. Tuttavia, il calcolo non è sempre preciso. Quando l'aggiornamento scade, vengono visualizzati errori simili ai seguenti:

  • Nel cluster utente:

    Failed to update the cluster:...timed out waiting for the condition...
    
  • Nel cluster di amministrazione:

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

Questo tipo di errore di timeout può essere tranquillamente ignorato e puoi riprovare a eseguire il comando di aggiornamento. Se riprovi a eseguire il comando e si verifica nuovamente il timeout con lo stesso messaggio di errore, contatta l'Assistenza Google.

L'aggiornamento contiene più modifiche

I comandi gkectl update admin e gkectl update cluster non consentono di aggiornare più impostazioni in un solo comando. Quando la configurazione contiene una differenza con più impostazioni modificate e viene restituito un errore simile al seguente esempio:

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

Questo errore può verificarsi per vari motivi, tra cui:

  • Un errore o una configurazione errata.
  • In precedenza hai eseguito gkectl upgrade con le differenze di configurazione e ti aspettavi che venissero applicate le modifiche.
    • gkectl upgrade non applica alcuna differenza di configurazione, ad eccezione del bump della versione.
  • Hai modificato la configurazione per un altro aggiornamento della funzionalità, ma hai dimenticato di eseguire il comando gkectl update.

Se riscontri questo comportamento, esamina le differenze nel messaggio di errore e aggiorna le impostazioni richieste una per una utilizzando più comandi gkectl update. Per identificare le modifiche, puoi utilizzare gkectl get-config per generare file di configurazione da un cluster e visualizzare lo stato e la configurazione esistenti.

Modifiche non supportate

I comandi gkectl update cluster e gkectl update admin ignorano le modifiche non supportate e mostrano messaggi di errore simili ai seguenti esempi:

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

Se riscontri questo comportamento, esamina la differenza nel messaggio di errore ed esegui le seguenti azioni:

  • Se la modifica non è intenzionale, modifica il file YAML di configurazione e aggiornalo solo con le modifiche corrette previste.
    • Nell'esempio precedente, se non intendevi disabilitare AdvancedNetworking, imposta advancedNetworking: true nel file YAML di configurazione.
  • Se la modifica è intenzionale, l'errore indica che la modifica non è supportata. Esegui una delle seguenti azioni:

L'immagine del sistema operativo non esiste

I comandi gkectl update cluster e gkectl update admin potrebbero non riuscire con OS Images errori del controllo preflight simili ai seguenti esempi:

  • Nel cluster utente:

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

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

Questi errori possono verificarsi se l'immagine del sistema operativo è stata rimossa in modo imprevisto nel tuo ambiente vCenter, ad esempio da un job di pulizia periodica.

Per reimportare le immagini del sistema operativo di importazione, esegui il comando gkectl prepare. Per ulteriori informazioni e per il comando gkectl prepare completo, scopri come importare immagini sistema operativo in vSphere.

Spazio libero nel datastore insufficiente per i nuovi pool di nodi

Quando aggiungi nuovi pool di nodi, il comando gkectl update cluster potrebbe restituire un errore di VSphere Datastore FreeSpace controllo preflight simile al seguente esempio:

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

Questo errore indica che il datastore non dispone di spazio libero sufficiente per eseguire i nuovi pool di nodi. Utilizza una delle seguenti opzioni per garantire la riuscita dell'operazione:

  • Libera spazio dal datastore.
  • Configura un datastore nodePools[].vsphere.datastore diverso per il pool di nodi.

Passaggi successivi

Se hai bisogno di ulteriore aiuto, contatta l'Assistenza Google.