Nesta página, explicamos como configurar clusters criados no modo Autopilot do Google Kubernetes Engine (GKE) para executar o mascaramento de IP com a política NAT de saída.
Para mais informações sobre o mascaramento de IP no modo GKE Standard, consulte Configurar um agente de mascaramento de IP.
Visão geral
A política NAT de saída do GKE permite configurar o comportamento de mascaramento de IP para clusters do Autopilot.
O GKE é compatível com duas políticas de NAT de saída geradas automaticamente:
- Gerenciadas pelo GKE que são fixas e não são editáveis.
- Políticas padrão editáveis.
Esta página mostra como editar e implantar uma política de NAT de saída editando a política padrão ou criando uma política de NAT de saída. Esta página também mostra como excluir uma política NAT de saída criada.
Para mais informações sobre o comportamento da política de saída NAT, consulte o comportamento de mascaramento de tráfego para clusters do Autopilot.
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.
Confira se você tem um cluster do Autopilot nas versões 1.23.4-gke.1600 ou 1.22.7-gke.1500 ou mais recente. Seu cluster precisa ter o GKE Dataplane V2 ativado.
Verifique se o cluster tem uma carga de trabalho em execução. Para mais informações, veja como solicitar recursos.
Verificar status da política NAT de saída
É possível verificar se o cluster está executando a definição de recurso personalizada (CRD, na sigla em inglês) de saída de NAT usando a ferramenta CLI do Google Cloud:
Veja as credenciais do cluster:
gcloud container clusters get-credentials CLUSTER-NAMESubstitua
CLUSTER_NAMEpelo nome do cluster.Verifique se a política NAT de saída está em execução:
kubectl get crds egressnatpolicies.networking.gke.ioSe a política de saída NAT estiver em execução, a saída será semelhante a esta:
NAME CREATED AT egressnatpolicies.networking.gke.io 2022-03-16T21:05:43ZVeja a lista de políticas de NAT de saída criadas:
kubectl get egressnatpoliciesA saída será assim:
NAME AGE default 44h gke-bbfa6c0e-1 44h
Editar a política padrão atual
O GKE é compatível com duas políticas NAT geradas automaticamente, a política padrão e gerenciada pela política do GKE. A política padrão é editável e configura os destinos padrão não mascarados.
Para editar a política padrão, siga estas etapas:
Veja as credenciais do cluster:
gcloud container clusters get-credentials CLUSTER_NAMESubstitua
CLUSTER_NAMEpelo nome do cluster.Edite a política padrão de saída de NAT:
kubectl edit egressnatpolicies defaultAdicione ou remova destinos com a ação NoSNAT como um atributo
cidrno formato CIDR:apiVersion: networking.gke.io/v1 kind: EgressNATPolicy metadata: name: default spec: action: NoSNAT destinations: - cidr: 10.0.0.0/8 - cidr: 172.16.0.0/12 - cidr: 192.168.0.0/16 - cidr: 240.0.0.0/4 - cidr: 192.0.2.0/24 - cidr: 198.51.100.0/24 - cidr: 203.0.113.0/24 - cidr: 100.64.0.0/10 - cidr: 198.18.0.0/15 - cidr: 192.0.0.0/24 - cidr: 192.88.99.0/24Quando os pacotes são enviados para esses destinos, o cluster não mascara as origens de endereço IP de origem e preserva os endereços IP do pod de origem.
Para saber se a política padrão editada foi implantada, verifique os eventos do Kubernetes:
kubectl get eventsO resultado será assim:
LAST SEEN TYPE REASON OBJECT MESSAGE 13s Normal EnsuringPolicy egressnatpolicy/default Ensuring IP masquerade config for policy "default"As alterações podem levar até três minutos para serem aplicadas.
Implantar uma nova política de NAT de saída
Para adicionar novos destinos com a ação NoSNAT, use uma das seguintes opções:
- Você pode editar a política padrão atual.
- É possível criar uma nova política de saída de NAT.
Para criar uma nova política de saída de NAT que não faça parte da política padrão, execute as seguintes etapas:
Salve o seguinte manifesto como
egress_nat_policy.yaml:kind: EgressNATPolicy apiVersion: networking.gke.io/v1 metadata: name: POLICY_NAME spec: action: NoSNAT destinations: - cidr: CIDR_1 - cidr: CIDR_2Substitua:
POLICY_NAME: o nome da nova políticaCIDR_1eCIDR_2: os intervalos de endereços IP estão no formato CIDR. Quando os pacotes são enviados para esses destinos, o cluster não mascara as origens de endereço IP de origem e preserva os endereços IP do pod de origem. Se você precisar de mais de dois CIDRs, adicione mais entradas à listadestinationsseguindo o mesmo formato.
Implante a nova política:
kubectl create -f egress_nat_policy.yamlPara verificar se a política foi implantada, verifique os eventos do Kubernetes:
kubectl get eventsA saída será assim:
LAST SEEN TYPE REASON OBJECT MESSAGE 13s Normal EnsuringPolicy egressnatpolicy/mypolicy Ensuring IP masquerade config for policy "mypolicy"
Excluir uma política de saída NAT
Para excluir completamente uma política de saída NAT, execute o seguinte comando:
kubectl delete egressnatpolicies POLICY_NAME
Substitua POLICY_NAME pelo nome da política que você quer excluir.
A seguir
- Saiba como criar um cluster nativo de VPC.
- Leia a visão geral da rede GKE.
- Saiba sobre como configurar redes autorizadas.