Esta página explica como configurar clusters criados no modo Autopilot do Google Kubernetes Engine (GKE) para realizar ocultação de IP com a política de NAT de saída.
Para mais informações sobre a ocultação de IP no modo padrão do GKE, consulte o artigo Configure um agente de ocultação de IP.
Vista geral
A política de NAT de saída do GKE permite-lhe configurar o comportamento de mascaramento de IP para clusters do Autopilot.
O GKE suporta duas políticas de NAT de saída geradas automaticamente:
- Geridos pelo GKE, que são fixos e não editáveis.
- Políticas predefinidas editáveis.
Esta página mostra como editar e implementar uma política de NAT de saída editando a política predefinida ou criando uma política de NAT de saída. Esta página também mostra como eliminar uma política de NAT de saída criada.
Para mais informações sobre o comportamento da política de NAT de saída, consulte o comportamento de ocultação de tráfego para clusters do Autopilot.
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.
Certifique-se de que tem um cluster do Autopilot com a versão 1.23.4-gke.1600 ou posterior, ou 1.22.7-gke.1500 ou posterior. O cluster tem de ter o GKE Dataplane V2 ativado.
Certifique-se de que o cluster tem uma carga de trabalho em execução. Para mais informações, veja como pedir recursos.
Verifique o estado da política de NAT de saída
Pode verificar se o cluster está a executar a definição de recurso personalizado (CRD) da política de NAT de saída através da ferramenta da CLI do Google Cloud:
Obtenha as credenciais do seu cluster:
gcloud container clusters get-credentials CLUSTER-NAME
Substitua
CLUSTER_NAME
pelo nome do cluster.Verifique se a política de NAT de saída está em execução:
kubectl get crds egressnatpolicies.networking.gke.io
Se a política de NAT de saída estiver em execução, o resultado é semelhante ao seguinte:
NAME CREATED AT egressnatpolicies.networking.gke.io 2022-03-16T21:05:43Z
Obtenha a lista das políticas de NAT de saída criadas:
kubectl get egressnatpolicies
O resultado é semelhante ao seguinte:
NAME AGE default 44h gke-bbfa6c0e-1 44h
Edite a política predefinida existente
O GKE suporta duas políticas de NAT geradas automaticamente, a default policy e a managed by GKE policy. A política predefinida é editável e configura os destinos não mascarados predefinidos.
Para editar a política predefinida existente, siga estes passos:
Obtenha as credenciais do seu cluster:
gcloud container clusters get-credentials CLUSTER_NAME
Substitua
CLUSTER_NAME
pelo nome do seu cluster.Edite a política de NAT de saída predefinida:
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 estes destinos, o seu cluster não oculta as origens dos endereços IP e preserva os endereços IP dos pods de origem.
Verifique se a política predefinida editada está implementada verificando os eventos do Kubernetes:
kubectl get events
O resultado é semelhante ao seguinte:
LAST SEEN TYPE REASON OBJECT MESSAGE 13s Normal EnsuringPolicy egressnatpolicy/default Ensuring IP masquerade config for policy "default"
As alterações podem demorar até três minutos a serem aplicadas.
Implemente uma nova política de NAT de saída
Para adicionar novos destinos com a ação NoSNAT, pode usar uma das seguintes opções:
- Pode editar a política predefinida existente.
- Pode criar uma nova política de NAT de saída.
Para criar uma nova política de NAT de saída que não faça parte da política predefinida, siga estes passos:
Guarde 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 o seguinte:
POLICY_NAME
: o nome da nova política.CIDR_1
eCIDR_2
: os intervalos de endereços IP no formato CIDR. Quando os pacotes são enviados para estes destinos, o seu cluster não mascara as origens de endereços IP e preserva os endereços IP dos pods de origem. Se precisar de mais de dois CIDRs, adicione mais entradas à listadestinations
seguindo o mesmo formato.
Implemente a nova política:
kubectl create -f egress_nat_policy.yaml
Verifique se a política está implementada verificando os eventos do Kubernetes:
kubectl get events
O resultado é semelhante ao seguinte:
LAST SEEN TYPE REASON OBJECT MESSAGE 13s Normal EnsuringPolicy egressnatpolicy/mypolicy Ensuring IP masquerade config for policy "mypolicy"
Elimine uma política de NAT de saída
Para eliminar completamente uma política de NAT de saída, execute o seguinte comando:
kubectl delete egressnatpolicies POLICY_NAME
Substitua POLICY_NAME
pelo nome da política que quer eliminar.
O que se segue?
- Saiba como criar um cluster nativo da VPC.
- Leia a vista geral da rede do GKE.
- Saiba mais sobre a configuração de redes autorizadas.