Google Distributed Cloud (GDC) air-gapped admite clústeres estándar, un clúster de Kubernetes de autoservicio y un solo proyecto administrado por el grupo de operadores de aplicaciones que ofrece mayor flexibilidad para las cargas de trabajo personalizadas. En esta página, se explica cómo configurar Cloud NAT para clústeres estándar y se describen algunas restricciones y limitaciones en las configuraciones de NAT para este tipo de clúster.
Antes de comenzar
Antes de configurar una puerta de enlace, debes obtener los permisos adecuados de Identity and Access Management (IAM), asegurarte de que tu proyecto tenga una política de red adecuada y habilitar la salida.
Consulta Antes de comenzar con Cloud NAT para obtener más detalles.
La puerta de enlace de Cloud NAT usa subredes leaf externas como entradas. Para obtener más
información sobre la configuración de subredes externas para Cloud NAT, consulta
Crea subredes externas para Cloud NAT.
Descripción general

Las puertas de enlace de Cloud NAT se pueden configurar para controlar el tráfico de salida de las cargas de trabajo que se ejecutan en clústeres estándar de dos maneras:
- Puerta de enlace con alcance de proyecto: Es una puerta de enlace que se aplica a todo el tráfico de cargas de trabajo en clústeres dentro de un proyecto, que incluye todos los clústeres compartidos y estándar. Esta es la configuración que se describe en Crea una puerta de enlace de Cloud NAT gateway.
- Puerta de enlace con alcance de clúster: Es una puerta de enlace que se aplica solo a las cargas de trabajo dentro de un solo clúster estándar especificado. Este es el tipo de puerta de enlace que se muestra en esta página.
Estos dos métodos son exclusivamente para cargas de trabajo y no se
aplican a los nodos que componen un clúster estándar. Para habilitar
Cloud NAT para los
nodos que forman un clúster estándar, agrega la etiqueta
cluster.gdc.goog/enable-node-egress-to-outside-the-org: "true" al
objeto de clúster estándar.
Crea la puerta de enlace de Cloud NAT
El proceso de creación de una puerta de enlace para un clúster estándar sigue siendo el mismo que la creación de cualquier puerta de enlace de Cloud NAT con alcance de proyecto.
En este caso, nos enfocamos en la capacidad de filtrado de clústeres para Cloud NAT de clústeres estándar y creamos una configuración similar a la del primer caso, pero especificamos el nombre del clúster estándar user-vc-1 en el que se encuentran los extremos que enrutarán el tráfico a través de la puerta de enlace. Como resultado, esta puerta de enlace tendrá un alcance limitado a este clúster específico.
apiVersion: networking.gdc.goog/v1
kind: CloudNATGateway
metadata:
namespace: project-1
name: gateway-1
spec:
workloadSelector: # Immutable
labelSelector:
workloads:
matchLabels:
app: aa
clusters:
matchLabels:
kubernetes.io/metadata.name: user-vc-1
subnetRefs: # Mutable
- subnet-1
- subnet-2
Esta configuración seleccionará todas las cargas de trabajo con las etiquetas app: aa en todos los espacios de nombres del clúster estándar user-vc-1.
Verifica el estado de la puerta de enlace
Para verificar el estado de las puertas de enlace, ejecuta el siguiente comando kubectl.
export MGMT_KUBECONFIG=<path_to_management_kubeconfig>
kubectl get cloudnatgateways gateway-1 -n project-1 --kubeconfig "${MGMT_KUBECONFIG:?}"
Si se configura correctamente, el campo de condición de estado de la puerta de enlace de Cloud NAT debe mostrar la condición del tipo Ready establecida en true y las subredes marcadas como OK, como se muestra en el siguiente resultado de muestra:
apiVersion: networking.gdc.goog/v1
kind: CloudNATGateway
metadata:
namespace: project-1
name: gateway-1
spec:
workloadSelector: # Immutable
labelSelector:
workloads:
matchLabels:
app: aa
clusters:
matchLabels:
kubernetes.io/metadata.name: user-vc-1
subnetRefs: # Mutable
- subnet-1
- subnet-2
status:
conditions:
- lastTransitionTime: "2025-08-20T21:31:36Z"
message: ""
observedGeneration: 1
reason: Ready
status: "True"
type: Ready
- lastTransitionTime: "2025-08-20T21:31:36Z"
message: ""
observedGeneration: 1
reason: Ready
status: "True"
type: SubnetsReady
- lastTransitionTime: "2025-08-20T21:31:36Z"
message: ""
observedGeneration: 1
reason: Ready
status: "True"
type: PerimeterConfigurationReady
- lastTransitionTime: "2025-08-20T21:31:36Z"
message: ""
observedGeneration: 1
reason: Ready
status: "True"
type: EgressRoutesReady
subnets:
- name: subnet-1
status: OK
- name: subnet-2
status: OK
Prueba el tráfico
Para probar el tráfico, emite un comando curl desde uno de los Pods o VMs asignados a la puerta de enlace en el clúster estándar hacia un extremo externo. El extremo receptor debe ver un paquete de una de las IPs de salida asociadas con la puerta de enlace. Los extremos de los clústeres compartidos con las mismas etiquetas NO PUEDEN salir del tráfico con esta puerta de enlace.
Restricciones en las configuraciones de puertas de enlace específicas del clúster
Los comparadores de etiquetas de cargas de trabajo (workloadSelector.labelSelector.workloads.matchLabels) de las puertas de enlace con alcance de clúster NO DEBEN SUPERPONERSE con los comparadores de etiquetas de cargas de trabajo de otras puertas de enlace con alcance de proyecto. Como se explica en Restricciones en la configuración de Cloud NAT, el
workloadSelector.labelSelector.workloads.matchLabels no debe superponerse entre las
puertas de enlace en el mismo proyecto y zona.
Las otras restricciones que se enumeran en Restricciones en la configuración de Cloud NAT también se aplican a las configuraciones de puertas de enlace con alcance de clúster.