Nesta página, explicamos como executar uma rotação de IP para seu plano de controle nos clusters do Google Kubernetes Engine (GKE).
Antes de ler esta página, você precisa conhecer a rotação de credenciais. Recomendamos que você faça uma rotação de credenciais, que inclui a rotação de IP. No entanto, talvez seja necessário fazer uma rotação de IP independente se não for possível realizar uma rotação completa de credenciais.
Esta página é destinada a especialistas em segurança que mantêm o ciclo de vida do cluster no GKE. Para saber mais sobre papéis comuns e exemplos de tarefas que mencionamos no conteúdo do Google Cloud , consulte Tarefas e funções de usuário comuns do GKE.
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 CLI do Google Cloud para essa tarefa,
instale e inicialize a
gcloud CLI. Se você instalou a CLI gcloud anteriormente, instale a versão
mais recente executando o comando
gcloud components update
. Talvez as versões anteriores da CLI gcloud não sejam compatíveis com a execução dos comandos neste documento.
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, respeitando a disponibilidade de manutenção. 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ê conclui a rotação, o plano de controle deixa de veicular o tráfego com o endereço IP anterior.
Quando você inicia uma rotação de endereço IP, o GKE recria os nós para você, respeitando a disponibilidade de manutenção. Durante eventos importantes como o Google Cloud Next, o GKE pode pausar as recriações automáticas de nós para que você não tenha interrupções. Para saber mais sobre como a disponibilidade de manutenção afeta a rotação de IP e qual tipo de interrupção seu cluster sofre durante as etapas de uma rotação, consulte a linha de rotação de IP na tabela de mudanças manuais que recriam os nós usando uma estratégia de upgrade de nós e respeitando as políticas de manutenção. O GKE depende da disponibilidade de recursos para atualizar os nós. Para saber mais sobre atualizações de nós, consulte Planejar interrupções de atualização de nós.
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 operação de conclusão automática vai falhar, mas o GKE vai continuar tentando até que os nós sejam recriados e a operação possa ser concluída.
Planeje o rastreamento e a conclusão manuais da rotação de endereços IP depois de iniciar a rotação. Você sempre pode substituir a disponibilidade de manutenção e acionar manualmente etapas específicas para garantir que a rotação de credenciais seja concluída. 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. No entanto, o GKE continua tentando recriar os nós e concluir a rotação até que a disponibilidade de manutenção permita que o GKE prossiga.
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=CONTROL_PLANE_LOCATION \ --cluster-version=VERSION
Substitua
VERSION
pela mesma versão do GKE que o cluster já usa.Para mais informações, consulte Manutenção automática que respeita as políticas de manutenção do GKE.
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
O resultado 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 Erro 400: o pool de nós requer recriação:
ERROR: (gcloud.container.clusters.update) ResponseError: code=400, message=Node pool "test-pool-1" requires recreation.
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, talvez devido à disponibilidade de manutenção e restrições relacionadas que impedem a recriação dos nós, a conclusão automática vai falhar, mas o GKE vai continuar tentando até que os nós sejam recriados e a operação possa ser concluída.
A seguir
- Saiba mais sobre IPs de alias.
- Saiba mais sobre o agente de mascaramento de IP.
- Saiba sobre como configurar redes autorizadas.