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 padrão, 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 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
.
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-NAME
Substitua
CLUSTER_NAME
pelo nome do cluster.Verifique se a política NAT de saída está em execução:
kubectl get crds egressnatpolicies.networking.gke.io
Se 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:43Z
Veja a lista de políticas de NAT de saída criadas:
kubectl get egressnatpolicies
A 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_NAME
Substitua
CLUSTER_NAME
pelo nome do cluster.Edite a política padrão de saída de NAT:
kubectl edit egressnatpolicies default
Adicione ou remova destinos com a ação NoSNAT como um atributo
cidr
no 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/24
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.
Para saber se a política padrão editada foi implantada, verifique os eventos do Kubernetes:
kubectl get events
O 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_2
Substitua:
POLICY_NAME
: o nome da nova políticaCIDR_1
eCIDR_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 à listadestinations
seguindo o mesmo formato.
Implante a nova política:
kubectl create -f egress_nat_policy.yaml
Para verificar se a política foi implantada, verifique os eventos do Kubernetes:
kubectl get events
A 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.