Nesta página, explicamos como executar uma rotação de IP para seu plano de controle nos clusters do Google Kubernetes Engine (GKE).
Visão geral
Você pode executar uma rotação de IP para alterar o endereço IP que seu plano de controle usa para exibir solicitações da API Kubernetes. O endereço IP do plano de controle é estático e não é alterado, a menos que você execute uma rotação de IP.
A rotação de IP também altera o certificado SSL e a autoridade de certificação do cluster, o que limita a capacidade de conectar o endereço anterior ao novo.
A rotação de IP também ocorre como parte da rotação de credenciais.
Antes de começar
Antes de começar, verifique se você realizou as tarefas a seguir:
- Ativar a API Google Kubernetes Engine. Ativar a API Google Kubernetes Engine
- Se você quiser usar a Google Cloud CLI para essa tarefa,
instale e, em seguida,
inicialize a
CLI gcloud. Se você instalou a CLI gcloud anteriormente, instale a versão
mais recente executando
gcloud components update
.
Fazer uma rotação de IP
Uma rotação de IP é um processo de várias etapas.
- Quando você inicia uma rotação de IP, o plano de controle começa a veicular o novo endereço IP, além do endereço IP original.
- O GKE recria os pools de nós para usar o novo endereço IP. Também é possível recriar os pools de nós manualmente. Para isso, faça um upgrade da versão do pool de nós para a mesma versão do GKE que os nós já executam.
- Depois de iniciar uma rotação, atualize os clientes de API do cluster,
como máquinas de desenvolvimento que usam a interface de linha de comando
kubectl
, para começar a se comunicar com o plano de controle no novo endereço IP. - Quando você completa a rotação, o plano de controle deixa de veicular o tráfego no endereço IP anterior.
Quando você inicia uma rotação de endereço IP, o GKE recria os nós para você. No entanto, durante eventos importantes como o Google Cloud Next, podemos pausar as recriações automáticas de nós para que você não tenha interrupções. Se você não concluir uma rotação de endereços IP no prazo de sete dias após iniciá-la, o GKE tentará concluí-la para você. Se algum nó no cluster ainda usar o endereço IP anterior, a conclusão automática falhará. Planeje o rastreamento e a conclusão manuais das rotações de endereços IP depois de iniciar a rotação. Não dependa da conclusão automática, que é uma medida de melhor esforço.
Iniciar a rotação
Para iniciar uma rotação de IP, execute o seguinte comando:
gcloud container clusters update CLUSTER_NAME \ --start-ip-rotation
Substitua
CLUSTER_NAME
pelo nome do cluster.A saída será assim:
This will start an IP Rotation on cluster CLUSTER_NAME. The master will be updated to serve on a new IP address in addition to the current IP address. Google Kubernetes Engine will then schedule recreation of all nodes to point to the new IP address. If maintenance window is used, nodes are not recreated until a maintenance window occurs. See documentation on how to manually update nodes. This operation is long-running and will block other operations on the cluster (including delete) until it has run to completion. Do you want to continue (Y/n)?
Esse comando configura o plano de controle para ser exibido em dois endereços IP: o original e o novo.
Confirme a rotação e deixe o shell aberto para que a operação seja concluída.
Recriar nós
Depois de reconfigurar o servidor da API para ser exibido em um novo endereço IP, o GKE atualiza automaticamente seus nós para usar o novo endereço IP. O GKE faz upgrade de todos os nós para a versão de nó compatível mais próxima, que os recria. Para mais informações, consulte Upgrades do pool de nós.
Por padrão, o GKE conclui as rotações de endereço IP automaticamente sete dias após o início da operação. Se uma janela de manutenção ativa ou exclusão no cluster impedir que o GKE recrie alguns nós durante esse período de sete dias, a rotação de endereço IP não será concluída.
Se você usar exclusões de manutenção ou janelas de manutenção que possam resultar em uma rotação com falha, faça upgrade do cluster manualmente para forçar a recriação do nó:
gcloud container clusters upgrade CLUSTER_NAME \ --location=LOCATION \ --cluster-version=VERSION
Substitua
VERSION
pela mesma versão do GKE que o cluster já usa.Para mais informações, consulte avisos sobre janelas de manutenção.
Verificar o progresso da recriação do pool de nós
Para monitorar a operação de rotação, execute o seguinte comando:
gcloud container operations list \ --filter="operationType=UPGRADE_NODES AND status=RUNNING" \ --format="value(name)"
Esse comando retorna o ID da operação de upgrade do nó.
Para pesquisar a operação, passe o código da operação para o seguinte comando:
gcloud container operations wait OPERATION_ID
Os pools de nós são recriados um a um, e cada um tem uma operação própria. Se você tiver vários pools de nós, use estas instruções para pesquisar cada operação.
Atualizar clientes da API
Depois de iniciar a rotação de IP, é necessário atualizar todos os clientes da API fora do
cluster (como kubectl
nas máquinas do desenvolvedor) para apontar para o novo endereço
IP.
Para atualizar os clientes de API, execute o seguinte comando para cada um deles:
gcloud container clusters get-credentials CLUSTER_NAME
Atualizar endereços IP fixados no código e regras de firewall
Se você fixou no código o endereço IP do plano de controle no ambiente ou se tem regras de firewall que segmentam o endereço IP do plano de controle, atualize os endereços para o novo endereço IP. Se você concluir a rotação sem atualizar endereços IP nos aplicativos e nas regras de firewall, esses recursos poderão sofrer interrupções quando o GKE parar de atender ao endereço IP do plano de controle anterior.
Completar a rotação
Depois de atualizar os clientes da API fora do cluster, conclua a rotação para configurar o plano de controle para ser exibido apenas no novo endereço IP.
Para concluir a rotação, execute o seguinte comando:
gcloud container clusters update CLUSTER_NAME \
--complete-ip-rotation
A saída será assim:
This will complete the in-progress IP Rotation on cluster CLUSTER_NAME.
The master will be updated to stop serving on the old IP address and only
serve on the new IP address. Make sure all API clients have been updated
to communicate with the new IP address (e.g. by running `gcloud container
clusters get-credentials --project PROJECT_ID --region COMPUTE_REGION
CLUSTER_NAME`). This operation is long-running and will
block other operations on the cluster (including delete) until it has
run to completion.
Se a rotação de endereços IP não for concluída e retornar uma mensagem de erro semelhante a esta, consulte a solução de problemas:
ERROR: (gcloud.container.clusters.update) ResponseError: code=400, message=Node pool "test-pool-1" requires recreation.
A seguir
- Saiba mais sobre IPs de alias.
- Saiba mais sobre o agente de mascaramento de IP.
- Saiba sobre como configurar redes autorizadas.