Google Distributed Cloud (GDC) aislado admite clústeres estándar, un clúster de Kubernetes de un solo proyecto y autoservicio 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 la configuración de NAT para este tipo de clúster.
Antes de comenzar
Antes de configurar una puerta de enlace, debes obtener los permisos de Identity and Access Management (IAM) adecuados, asegurarte de que tu proyecto tenga una política de red apropiada y habilitar el tráfico de salida.
Consulta Antes de comenzar a usar Cloud NAT para obtener más detalles.
La puerta de enlace de Cloud NAT usa subredes externas leaf como entradas. Para obtener más información sobre cómo configurar 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 para el proyecto: Es una puerta de enlace que se aplica a todo el tráfico de cargas de trabajo en los clústeres de un proyecto, lo 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.
- 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 clúster estándar único y especificado. Este es el tipo de puerta de enlace que se muestra en esta página.
Estos dos métodos son exclusivos para las 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 del 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 el de cualquier puerta de enlace de Cloud NAT con alcance para el 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 se limitará 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
Ejecuta el siguiente comando kubectl para verificar el estado de las puertas de enlace.
export MGMT_KUBECONFIG=<path_to_management_kubeconfig>
kubectl get cloudnatgateways gateway-1 -n project-1 --kubeconfig "${MGMT_KUBECONFIG:?}"
Si se configuró correctamente, el campo de condición de estado de la puerta de enlace de Cloud NAT debería mostrar la condición del tipo Ready establecida en true y las subredes marcadas como OK, como se muestra en el siguiente ejemplo de resultado:
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
Tráfico de prueba
Para probar el tráfico, ejecuta un comando curl desde uno de los Pods o las VMs asignados a la puerta de enlace en el clúster estándar hacia un extremo externo. El extremo receptor debería ver un paquete de una de las IPs de salida asociadas con la puerta de enlace. Los extremos de clústeres compartidos con las mismas etiquetas NO PUEDEN enviar tráfico de salida con esta puerta de enlace.
Restricciones en la configuración de la puerta de enlace específica 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 explicó en Restricciones en la configuración de Cloud NAT, el workloadSelector.labelSelector.workloads.matchLabels no debe superponerse entre las puertas de enlace del mismo proyecto y zona.
Las demás restricciones que se enumeran en Restricciones en la configuración de Cloud NAT también se aplican a las configuraciones de puerta de enlace con alcance de clúster.