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.
- 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
, definaadvancedNetworking: true
no ficheiro YAML de configuração.
- No exemplo anterior, se não pretendia desativar
- Se a alteração for intencional, o erro indica que a alteração não é suportada. Realize uma das seguintes ações:
- Recrie o cluster, se aplicável.
- Contacte o Apoio técnico da Google.
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:
- Requisitos para abrir um registo de apoio técnico.
- Ferramentas para ajudar a resolver problemas, como registos e métricas.
- Componentes suportados, versões e funcionalidades do Google Distributed Cloud para VMware (apenas software).