O Google Distributed Cloud (GDC) air-gapped é compatível com clusters padrão, um cluster Kubernetes de self-service de projeto único gerido pelo grupo de operadores de aplicações que oferece maior flexibilidade para cargas de trabalho personalizadas. Esta página aborda como configurar o Cloud NAT para clusters padrão e descreve algumas restrições e limitações nas configurações de NAT para este tipo de cluster.
Antes de começar
Antes de configurar uma gateway, tem de receber as autorizações de gestão de identidade e de acesso (IAM) adequadas, garantir que o seu projeto tem uma política de rede adequada e ativar o tráfego de saída.
Consulte o artigo Antes de começar a usar o Cloud NAT para ver detalhes.
A gateway do Cloud NAT usa sub-redes leaf externas como entradas. Para mais
informações sobre a configuração de sub-redes externas para o Cloud NAT, consulte
Crie sub-redes externas para o Cloud NAT.
Vista geral

As gateways do Cloud NAT podem ser configuradas para processar o tráfego de saída das cargas de trabalho em execução em clusters padrão de duas formas:
- Gateway com âmbito do projeto: uma gateway que se aplica a todo o tráfego de cargas de trabalho em clusters num projeto, que inclui todos os clusters partilhados e padrão. Esta é a configuração descrita no artigo Crie uma gateway do Cloud NAT.
- Gateway com âmbito do cluster: uma gateway que se aplica apenas a cargas de trabalho num único cluster padrão especificado. Este é o tipo de gateway demonstrado nesta página.
Estes dois métodos destinam-se exclusivamente a cargas de trabalho e não se aplicam aos nós que compõem um cluster padrão. Para ativar
o Cloud NAT para os
nós que formam um cluster padrão, adicione a etiqueta
cluster.gdc.goog/enable-node-egress-to-outside-the-org: "true" ao
objeto do cluster padrão.
Crie a gateway do Cloud NAT
O processo de criação de uma gateway para um cluster padrão permanece o mesmo que a criação de qualquer gateway do Cloud NAT com âmbito do projeto.
Neste caso, focamo-nos na capacidade de filtragem de clusters para o Cloud NAT de clusters padrão e criamos uma configuração semelhante ao primeiro cenário, mas especificando o nome do cluster padrão user-vc-1 onde se encontram os pontos finais que encaminharão o tráfego através da gateway. Como resultado, o âmbito desta gateway será este cluster 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 configuração seleciona todas as cargas de trabalho com as etiquetas app: aa em todos os espaços de nomes no cluster padrão user-vc-1.
Verifique o estado da gateway
Execute o seguinte comando kubectl para verificar o estado das gateways.
export MGMT_KUBECONFIG=<path_to_management_kubeconfig>
kubectl get cloudnatgateways gateway-1 -n project-1 --kubeconfig "${MGMT_KUBECONFIG:?}"
Se estiver configurado corretamente, o campo de condição de estado da gateway do Cloud NAT deve apresentar a condição do tipo Ready definida como true e as sub-redes marcadas como OK, conforme mostrado no seguinte exemplo 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
Teste o tráfego
Para testar o tráfego, emita um comando curl a partir de um dos pods ou VMs atribuídos à gateway no cluster padrão para um ponto final externo. O ponto final de receção deve ver um pacote de um dos IPs de saída associados à gateway. Os pontos finais em clusters partilhados com as mesmas etiquetas NÃO podem encaminhar o tráfego de saída através desta gateway.
Restrições nas configurações de gateways específicas do cluster
Os correspondentes de etiquetas de cargas de trabalho (workloadSelector.labelSelector.workloads.matchLabels) de gateways com âmbito do cluster NÃO SE DEVEM SOBREPOR aos correspondentes de etiquetas de cargas de trabalho de outras gateways com âmbito do projeto. Conforme abordado em Restrições na configuração do Cloud NAT, o
workloadSelector.labelSelector.workloads.matchLabels não se deve sobrepor entre
gateways no mesmo projeto e zona.
As outras restrições indicadas em Restrições na configuração do Cloud NAT também se aplicam às configurações de gateways com âmbito do cluster.