Esta página explica como fazer uma rotação de IP para o seu painel de controlo em clusters do Google Kubernetes Engine (GKE).
Antes de ler esta página, certifique-se de que conhece a rotação de credenciais. Recomendamos que faça uma rotação de credenciais, que inclui a rotação de IPs. No entanto, pode ter de fazer uma rotação de IP autónoma se não conseguir fazer uma rotação completa das credenciais.
Esta página destina-se a especialistas em segurança que mantêm o ciclo de vida do cluster no GKE. Para saber mais sobre as funções comuns e as tarefas de exemplo que referimos no conteúdo, consulte o artigo Funções e tarefas comuns do utilizador do GKE. Google Cloud
Antes de começar
Antes de começar, certifique-se de que realizou as seguintes tarefas:
- Ative a API Google Kubernetes Engine. Ative a API Google Kubernetes Engine
- Se quiser usar a CLI gcloud para esta tarefa,
instale-a e, em seguida,
inicialize-a. Se instalou anteriormente a CLI gcloud, execute
gcloud components update
para obter a versão mais recente.
Faça uma rotação de IP
A rotação de IPs é um processo com vários passos:
- Quando inicia uma rotação de IP, o seu plano de controlo começa a publicar no novo endereço IP, além do endereço IP original.
- O GKE recria os seus pools de nós para usar o novo endereço IP, respeitando a disponibilidade de manutenção. Também pode recriar manualmente os seus node pools executando uma atualização da versão do node pool para a mesma versão do GKE que os nós já executam.
- Depois de iniciar uma rotação, tem de atualizar os clientes de API do cluster (como máquinas de desenvolvimento que usam a interface de linha de comandos
kubectl
) para começar a comunicar com o plano de controlo através do novo endereço IP. - Quando concluir a rotação, o plano de controlo deixa de publicar tráfego com o endereço IP anterior.
Quando inicia uma rotação de endereços IP, o GKE recria os nós para si, 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 não tenha interrupções. Para saber mais sobre como a disponibilidade de manutenção afeta a rotação de IPs e que tipo de interrupção o seu cluster sofre durante os passos de uma rotação, consulte a linha relativa à rotação de IPs na tabela de alterações manuais que recriam os nós através de uma estratégia de atualização 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 as atualizações de nós, consulte o artigo Planeamento de interrupções de atualizações de nós.
Se não concluir uma rotação de endereços IP no prazo de sete dias após o início, o GKE tenta concluir a rotação por si. Se algum nó no cluster ainda usar o endereço IP anterior, a operação de conclusão automática falha, mas o GKE continua a tentar a conclusão até os nós serem recriados e a operação poder ser concluída.
Deve planear monitorizar e concluir manualmente a rotação de endereços IP depois de a iniciar. Pode sempre substituir a disponibilidade de manutenção e acionar manualmente passos específicos para garantir que a rotação de credenciais pode ser concluída. Não confie no preenchimento automático, que é uma medida de melhor esforço possível.
Inicie 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.O resultado é semelhante ao seguinte:
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)?
Este comando configura o plano de controlo para ser publicado em dois endereços IP: o endereço original e um novo endereço.
Confirme a rotação e deixe a caixa aberta para que a operação seja concluída.
Recrie nós
Depois de reconfigurar o servidor da API para ser publicado num novo endereço IP, o GKE atualiza automaticamente os seus nós para usarem o novo endereço IP. O GKE atualiza todos os seus nós para a versão de nó suportada mais próxima, o que recria os nós. Para mais informações, consulte o artigo Atualizações do conjunto de nós.
Por predefinição, o GKE conclui automaticamente as rotações de endereços IP sete dias após o início da operação. Se uma janela de manutenção ativa ou uma exclusão no seu cluster impedir o GKE de recriar alguns nós durante este período de sete dias, a rotação de endereços IP falha inicialmente na conclusão. No entanto, o GKE continua a tentar recriar os nós e concluir a rotação até que a disponibilidade de manutenção permita que o GKE avance.
Se usar exclusões de manutenção ou janelas de manutenção que possam resultar numa rotação com falhas, atualize manualmente o cluster 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 o artigo Manutenção automática que respeita as políticas de manutenção do GKE.
Verifique o progresso da recriação do conjunto de nós
Para monitorizar a operação de rotação, execute o seguinte comando:
gcloud container operations list \ --filter="operationType=UPGRADE_NODES AND status=RUNNING" \ --format="value(name)"
Este comando devolve o ID da operação da operação de atualização do nó.
Para sondar a operação, transmita o ID da operação para o seguinte comando:
gcloud container operations wait OPERATION_ID
Os conjuntos de nós são recriados um a um e cada um tem a sua própria operação. Se tiver vários conjuntos de nós, use estas instruções para sondar cada operação.
Atualize os clientes da API
Após iniciar a rotação de IPs, tem de atualizar todos os clientes da API fora do cluster (como kubectl
em computadores de programadores) para apontarem para o novo endereço IP.
Para atualizar os clientes API, execute o seguinte comando para cada cliente:
gcloud container clusters get-credentials CLUSTER_NAME
Atualize os endereços IP codificados e as regras de firewall
Se codificou o endereço IP do plano de controlo no seu ambiente ou se tiver regras de firewall que segmentam o endereço IP do plano de controlo, atualize os endereços para o novo endereço IP. Se concluir a rotação sem atualizar os endereços IP nas aplicações e nas regras de firewall, esses recursos podem sofrer interrupções quando o GKE deixar de publicar no endereço IP do plano de controlo anterior.
Conclua a rotação
Depois de atualizar os clientes da API fora do cluster, conclua a rotação para configurar o plano de controlo de modo a que seja servido 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 é semelhante ao seguinte:
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 do endereço IP não for concluída e devolver uma mensagem de erro semelhante à seguinte, consulte o artigo Erro 400: o conjunto de nós requer recriação:
ERROR: (gcloud.container.clusters.update) ResponseError: code=400, message=Node pool "test-pool-1" requires recreation.
Se não concluir uma rotação de endereços IP no prazo de sete dias após o início, o GKE tenta concluir a rotação por si. Se algum nó no cluster ainda usar o endereço IP anterior, potencialmente devido à disponibilidade de manutenção e às restrições relacionadas que impedem a recriação dos nós, a conclusão automática falha, mas o GKE continua a tentar a conclusão até que os nós sejam recriados e a operação possa ser concluída.
O que se segue?
- Saiba mais sobre os IPs de alias.
- Saiba mais sobre o agente de mascaramento de IP.
- Saiba mais sobre a configuração de redes autorizadas.