En esta página, se explica cómo configurar clústeres creados en el modo Autopilot de Google Kubernetes Engine (GKE) para realizar el enmascaramiento de IP con la política de NAT de salida.
Para obtener más información sobre el enmascaramiento de IP en modo Standad de GKE, consulta Configura un agente de enmascaramiento de IP.
Descripción general
La política de NAT de salida de GKE te permite configurar el comportamiento de enmascaramiento de IP para los clústeres Autopilot.
GKE admite dos políticas de NAT de salida generadas de forma automática:
- Administradas por GKE que son fijas y no se pueden editar.
- Políticas predeterminadas que se pueden editar.
En esta página, se muestra cómo editar e implementar una política de NAT de salida mediante la edición de la política predeterminada o la creación de una política de NAT de salida. En esta página, también se muestra cómo borrar una política de NAT de salida creada.
Si deseas obtener más información sobre el comportamiento de las políticas de NAT de salida, consulta el comportamiento de enmascaramiento de tráfico para clústeres Autopilot.
Antes de comenzar
Antes de comenzar, asegúrate de haber realizado las siguientes tareas:
- Habilita la API de Google Kubernetes Engine. Habilitar la API de Google Kubernetes Engine
- Si deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa gcloud CLI. Si ya instalaste gcloud CLI, ejecuta
gcloud components update
para obtener la versión más reciente.
Asegúrate de tener un clúster de Autopilot que ejecute la versión 1.23.4-gke.1600 o posterior, o 1.22.7-gke.1500 o posterior. Tu clúster debe tener GKE Dataplane V2 habilitado.
Asegúrate de que tu clúster tenga una carga de trabajo en ejecución. Para obtener más información, consulta cómo solicitar recursos.
Verifica el estado de la política de NAT de salida
Puedes verificar si el clúster ejecuta la definición de recurso personalizado (CRD) de la política de NAT de salida mediante la herramienta de Google Cloud CLI:
Obtén las credenciales para su clúster.
gcloud container clusters get-credentials CLUSTER-NAME
Reemplaza
CLUSTER_NAME
por el nombre del clúster.Verifica si la política de NAT de salida se está ejecutando:
kubectl get crds egressnatpolicies.networking.gke.io
Si la política de NAT de salida está en ejecución, el resultado es similar al siguiente:
NAME CREATED AT egressnatpolicies.networking.gke.io 2022-03-16T21:05:43Z
Obtén la lista de las políticas de NAT de salida creadas:
kubectl get egressnatpolicies
El resultado es similar a este:
NAME AGE default 44h gke-bbfa6c0e-1 44h
Edita la política predeterminada existente
GKE admite dos políticas de NAT generadas automáticamente, la política predeterminada y la política administrada por GKE. La política predeterminada se puede editar y configura los destinos predeterminados sin enmascarar.
Para editar la política predeterminada existente, sigue estos pasos:
Obtén las credenciales para su clúster.
gcloud container clusters get-credentials CLUSTER_NAME
Reemplaza
CLUSTER_NAME
por el nombre del clúster.Edita la política de NAT de salida predeterminada:
kubectl edit egressnatpolicies default
Agrega o quita destinos con la acción NoSNAT como un atributo
cidr
en 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
Cuando se envían paquetes a estos destinos, tu clúster no enmascara las fuentes de las direcciones IP y conserva las direcciones IP del Pod de origen.
Para verificar que la política predeterminada editada se haya implementado, revisa los eventos de Kubernetes:
kubectl get events
El resultado es similar a este:
LAST SEEN TYPE REASON OBJECT MESSAGE 13s Normal EnsuringPolicy egressnatpolicy/default Ensuring IP masquerade config for policy "default"
Los cambios pueden tardar hasta tres minutos en aplicarse.
Implementa una nueva política de NAT de salida
Para agregar destinos nuevos con la acción NoSNAT, puedes usar una de las siguientes opciones:
- Puedes editar la política predeterminada existente.
- Puedes crear una política de NAT de salida nueva.
Para crear una nueva política de NAT de salida que no forma parte de la política predeterminada, realiza los siguientes pasos:
Guarda el siguiente manifiesto 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
Reemplaza lo siguiente:
POLICY_NAME
: El nombre de la política nueva.CIDR_1
yCIDR_2
: Los rangos de direcciones IP en formato CIDR. Cuando se envían paquetes a estos destinos, tu clúster no enmascara las fuentes de las direcciones IP y conserva las direcciones IP del Pod de origen. Si necesitas más de dos CIDR, agrega más entradas a la listadestinations
con el mismo formato.
Implementa la política nueva:
kubectl create -f egress_nat_policy.yaml
Para verificar que la política se haya implementado, revisa los eventos de Kubernetes:
kubectl get events
El resultado es similar a este:
LAST SEEN TYPE REASON OBJECT MESSAGE 13s Normal EnsuringPolicy egressnatpolicy/mypolicy Ensuring IP masquerade config for policy "mypolicy"
Borra una política de NAT de salida
Para borrar por completo una política de NAT de salida, ejecuta el siguiente comando:
kubectl delete egressnatpolicies POLICY_NAME
Reemplaza POLICY_NAME
por el nombre de la política que deseas borrar.
¿Qué sigue?
- Obtén información para crear un clúster nativo de la VPC.
- Lee la descripción general de redes de GKE.
- Obtén información sobre cómo configurar redes autorizadas.