Quando tenta modificar o cluster do Google Kubernetes Engine (GKE) ou os respetivos conjuntos de nós, a sua ação pode ser bloqueada temporariamente porque está a ser executada outra operação. Este problema pode atrasar atualizações críticas, a administração de clusters e as implementações de aplicações.
Use esta página para saber como identificar a operação que está a ser executada. Compreender a operação ativa ajuda a estimar o atraso e determinar quando repetir a ação.
Estas informações são importantes para os programadores de aplicações, que podem encontrar estes limites ao implementar ou modificar aplicações, e para os administradores e operadores da plataforma, que gerem o ciclo de vida geral do cluster, as atualizações e precisam de resolver problemas de tarefas administrativas bloqueadas. Para mais informações sobre as funções comuns e as tarefas de exemplo a que fazemos referência no Google Cloud conteúdo, consulte Funções e tarefas comuns do utilizador do GKE.
Compreenda os erros de operação simultânea
No GKE, uma operação de cluster é uma ação que modifica o estado do painel de controlo do cluster ou dos respetivos conjuntos de nós. Estas operações são geridas pelo GKE e podem ser iniciadas por si ou pelo GKE para fins de manutenção. As operações de cluster comuns incluem o seguinte:
- Criar ou eliminar o cluster.
- A atualizar a versão do painel de controlo do cluster.
- Criar, atualizar, redimensionar ou eliminar node pools.
- Modificar as definições ao nível do cluster, como ativar ou desativar funcionalidades.
- Reparações automáticas do plano de controlo iniciadas pelo GKE.
Quando realiza operações nos seus clusters, pode ver mensagens de erro semelhantes às seguintes:
Cluster is running incompatible operation OPERATION_NAME
Cluster is currently being created, deleted, updated or repaired and cannot be updated
Operation OPERATION_NAME is currently ACTIONING cluster CLUSTER_NAME. Please wait and try again once it is done
Estes erros podem incluir os seguintes valores:
OPERATION_NAME
: o ID exclusivo de uma operação que já está a ser executada no seu cluster. Use este nome para acompanhar o estado desta operação pré-existente que está a impedir o início da nova operação.ACTIONING
: a ação que está a ser realizada no cluster. Por exemplo,Creating
ouUpdating
.CLUSTER_NAME
: o nome do cluster que a operação está a segmentar.
Estes erros ocorrem porque o GKE limita o número de operações que podem ser executadas ao mesmo tempo para evitar conflitos. Geralmente, o GKE permite apenas uma operação ao nível do cluster ou uma operação por conjunto de nós para ser executada em simultâneo. O GKE também executa as suas próprias ações automáticas, como atualizações do plano de controlo, que contam para este limite e podem impedir temporariamente que inicie uma nova tarefa.
Resolva erros de operações simultâneas
Se receber um erro que indica que outra operação está em curso, identifique a tarefa em curso e aguarde pela respetiva conclusão:
Se não souber o nome da operação de bloqueio, liste todas as operações em curso e pendentes do cluster:
gcloud container operations list \ --location=LOCATION \ --filter '(targetLink~/clusters/CLUSTER_NAME$ OR targetLink~/clusters/CLUSTER_NAME/) AND status!=DONE' \ --format json
Substitua o seguinte:
LOCATION
: a região ou a zona do Compute Engine (por exemplo,us-central1
ouus-central1-a
) para o cluster, consoante o cluster seja regional ou zonal.CLUSTER_NAME
: o nome do cluster com a operação com falhas.O resultado é semelhante ao seguinte:
{ "name": "operation-0978307200000-00112233-4455-6677-8899-aabbccddeeff", "operationType": "UPDATE_CLUSTER", "selfLink": "https://container.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/operation-0978307200000-00112233-4455-6677-8899-aabbccddeeff", "startTime": "2001-01-01T00:00:00.000000000Z", "status": "RUNNING", "targetLink": "https://container.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_NAME/nodePools/NODE_POOL_NAME", "zone": "LOCATION" }
Na saída, reveja o campo
name
para cada operação. Este valor é o nome da operação que está a impedir o início da nova operação. Precisa deste valor para o passo seguinte.Para mais informações sobre os outros campos no resultado, consulte a documentação da API para
projects.locations.operations
.
Aguarde pela conclusão da operação:
gcloud container operations wait OPERATION_NAME \ --location=LOCATION
Substitua
OPERATION_NAME
pelo nome de uma operação de bloqueio de uma mensagem de erro ou do passo anterior.Este comando monitoriza ativamente a operação e sai quando a operação estiver concluída.
Depois de a operação de bloqueio ter o estado
DONE
, tente novamente a operação que causou o erro.
O que se segue?
Se não conseguir encontrar uma solução para o seu problema na documentação, consulte a secção Obtenha apoio técnico para receber mais ajuda, incluindo aconselhamento sobre os seguintes tópicos:
- Abrindo um registo de apoio ao cliente através do contacto com o Cloud Customer Care.
- Receber apoio técnico da comunidade fazendo perguntas no StackOverflow e usando a etiqueta
google-kubernetes-engine
para pesquisar problemas semelhantes. Também pode juntar-se ao#kubernetes-engine
canal do Slack para receber mais apoio técnico da comunidade. - Abrir erros ou pedidos de funcionalidades através do rastreador de problemas público.