Se você tiver problemas com a atualização do GKE no VMware, as seções a seguir podem ajudar a solucionar o problema. Para mais informações sobre quais configurações podem ser atualizadas, consulte O que pode e o que não pode ser atualizado em clusters.
Se precisar de mais ajuda, entre em contato com o Suporte do Google.
Tempo limite da atualização
O tempo limite da atualização é calculado dinamicamente com base nos recursos a serem atualizados. No entanto, o cálculo nem sempre é preciso. Quando a atualização expirar, erros semelhantes aos seguintes serão exibidos:
No cluster de usuário:
Failed to update the cluster:...timed out waiting for the condition...
No cluster de administrador:
Failed to update the admin cluster:...timed out waiting for the condition...
Esse tipo de erro de tempo limite pode ser ignorado com segurança, e você pode repetir o comando de atualização. Se você tentar executar o comando novamente e ele expirar com a mesma mensagem de erro, entre em contato com o Suporte do Google.
A atualização contém várias alterações
Os comandos gkectl update admin
e gkectl update cluster
não permitem atualizar várias configurações em um comando. Quando o config contém uma diferença com várias configurações sendo alteradas e um erro semelhante ao exemplo a seguir é retornado:
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
Esse erro pode acontecer por vários motivos, incluindo os seguintes:
- Um erro ou configuração incorreta.
- Você executou
gkectl upgrade
anteriormente com a diferença de configuração e esperava que as alterações fossem aplicadas.gkectl upgrade
não aplica nenhuma diferença de configuração, exceto o bump na versão.
- Você já editou a configuração de outra atualização de recurso, mas esqueceu de executar o comando
gkectl update
.
Se você encontrar esse comportamento, analise a diferença na mensagem de erro e atualize as configurações necessárias uma por uma com vários comandos gkectl update
. Para ajudar
a identificar alterações, é possível usar gkectl get-config
para
gerar arquivos de configuração de um cluster
e visualizar o estado e a configuração.
Alterações incompatíveis
Os comandos gkectl update cluster
e gkectl update admin
ignoram alterações não compatíveis e exibem mensagens de erro semelhantes aos seguintes exemplos:
detected unsupported changes: (-current +desired)
...
- AdvancedNetworking: &true,
+ AdvancedNetworking: &false,
...
, which will be ignored
Se você encontrar esse comportamento, analise a diferença na mensagem de erro e execute as seguintes ações:
- Se a alteração não for intencional, edite o arquivo YAML de configuração e atualize somente com as alterações corretas e pretendidas.
- No exemplo anterior, se você não pretendia desativar
AdvancedNetworking
, definaadvancedNetworking: true
no arquivo YAML de configuração.
- No exemplo anterior, se você não pretendia desativar
- Se a alteração for intencional, o erro indica que ela não é compatível. Realize uma das seguintes ações:
- Recrie o cluster, se aplicável.
- Entre em contato com o Suporte do Google.
A imagem do SO não existe
Os comandos gkectl update cluster
e gkectl update admin
podem falhar com
falhas na verificação de simulação OS Images
, semelhantes aos exemplos a seguir:
No cluster de usuário:
- 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 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.
Esses erros podem acontecer se a imagem do SO tiver sido removida inesperadamente no ambiente do vCenter, como por um job de limpeza periódica.
Para importar novamente as imagens de importação do SO, execute o comando gkectl prepare
.
Para mais informações e o comando gkectl prepare
completo, veja como importar imagens do SO para o vSphere.
Espaço livre insuficiente do armazenamento de dados para novos pools de nós
Quando você adiciona novos pools de nós, o comando gkectl update cluster
pode falhar com
erros de verificação de simulação do VSphere Datastore FreeSpace
semelhantes ao
exemplo a seguir:
- [FAILURE] VSphere Datastore FreeSpace: vCenter datastore: xxxx insufficient
FreeSpace, requires at least xxx GB
Essa falha indica que o armazenamento de dados não tem espaço livre suficiente para executar os novos pools de nós. Use uma das opções a seguir para fornecer espaço à operação:
- Libere espaço do armazenamento de dados.
- Configure um armazenamento de dados
nodePools[].vsphere.datastore
diferente para o pool de nós.
A seguir
Se precisar de mais ajuda, entre em contato com o Suporte do Google.