Resolva problemas de atualização do Google Distributed Cloud

Se tiver problemas com a atualização do Google Distributed Cloud, as secções seguintes podem ajudar a resolver o problema. Para mais informações sobre as definições que podem ser atualizadas, consulte o artigo O que pode e não pode ser atualizado nos clusters.

Limite de tempo da atualização

O limite de tempo da atualização é calculado dinamicamente com base nos recursos a atualizar. No entanto, o cálculo nem sempre é preciso. Quando o tempo limite da atualização expira, são apresentados erros semelhantes aos seguintes:

  • No cluster de utilizadores:

    Failed to update the cluster:...timed out waiting for the condition...
    
  • No cluster de administração:

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

Este tipo de erro de limite de tempo pode ser ignorado com segurança e pode tentar novamente o comando de atualização. Se repetir o comando e este expirar novamente com a mesma mensagem de erro, contacte o apoio técnico ao cliente do Google Cloud.

A atualização contém várias alterações

Os comandos gkectl update admin e gkectl update cluster não permitem atualizar várias definições num único comando. Quando a configuração contém uma diferença com várias definições a serem alteradas e é devolvido um erro semelhante ao seguinte exemplo:

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 erro pode ocorrer por vários motivos, incluindo os seguintes:

  • Um erro ou uma configuração incorreta.
  • Executou gkectl upgrade anteriormente com a diferença de configuração e esperava que as alterações fossem aplicadas.
    • O gkectl upgrade não aplica diferenças de configuração, exceto o aumento da versão.
  • Editou a configuração para outra atualização de funcionalidades anteriormente, mas esqueceu-se de executar o comando gkectl update.

Se encontrar este comportamento, reveja a diferença na mensagem de erro e atualize as definições necessárias uma a uma com vários comandos gkectl update. Para ajudar a identificar alterações, pode usar gkectl get-config para gerar ficheiros de configuração a partir de um cluster e ver o estado e a configuração existentes.

Alterações não suportadas

Os comandos gkectl update cluster e gkectl update admin ignoram as alterações não suportadas e apresentam mensagens de erro semelhantes aos seguintes exemplos:

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

Se encontrar este comportamento, reveja a diferença na mensagem de erro e realize as seguintes ações:

  • Se a alteração não for intencional, edite o ficheiro YAML de configuração e atualize-o apenas com as alterações corretas e intencionais.
    • No exemplo anterior, se não pretendia desativar AdvancedNetworking, defina advancedNetworking: true no ficheiro YAML de configuração.
  • Se a alteração for intencional, o erro indica que a alteração não é suportada. Realize uma das seguintes ações:

A imagem do SO não existe

Os comandos gkectl update cluster e gkectl update admin podem falhar com falhas na verificação prévia de voo semelhantes aos seguintes exemplos:OS Images

  • No cluster de utilizadores:

    - Validation Category: OS Images
        - [FAILURE] User cluster OS images exist: os images  [xxxx] don't exist,
        please run `gkectl prepare` to upload os images.
    
  • No cluster de administração:

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

Estes erros podem ocorrer se a imagem do SO tiver sido removida inesperadamente no seu ambiente do vCenter, por exemplo, por uma tarefa de limpeza periódica.

Para voltar a importar as imagens do SO, execute o comando gkectl prepare, da seguinte forma:

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

Não existe espaço livre suficiente no arquivo de dados para novos conjuntos de nós

Quando adiciona novos pools de nós, o comando gkectl update cluster pode falhar com erros de verificação prévia de VSphere Datastore FreeSpace semelhantes ao seguinte exemplo:

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

Esta falha indica que o arquivo de dados não tem espaço livre suficiente para executar os novos conjuntos de nós. A utilização de uma das seguintes opções ajuda a disponibilizar espaço para que a operação seja bem-sucedida:

  • Liberte espaço do arquivo de dados.
  • Configure um arquivo de dados nodePools[].vsphere.datastore diferente para o conjunto de nós.

O que se segue?

Se precisar de assistência adicional, contacte o apoio ao cliente do Google Cloud.

Também pode consultar o artigo Receber apoio técnico para mais informações sobre recursos de apoio técnico, incluindo o seguinte: