Gateway Cloud NAT con timeout di connessione

Prerequisiti

Prima di configurare un gateway, devi ottenere le autorizzazioni IAM (Identity and Access Management) appropriate, assicurarti che il tuo progetto disponga di una policy di rete appropriata e abilitare il traffico in uscita.

Per maggiori dettagli, consulta Prima di iniziare a utilizzare Cloud NAT.

Il gateway Cloud NAT utilizza le subnet leaf esterne come input. Per saperne di più sulla configurazione delle subnet esterne per Cloud NAT, consulta Creare subnet esterne per Cloud NAT.

Creare e gestire gateway Cloud NAT con timeout di connessione

Questo documento descrive come creare e gestire i gateway Cloud NAT con timeout di connessione. Questo caso d'uso crea una configurazione simile al primo scenario, ma specifica i timeout per le connessioni stabilite tramite il gateway Cloud NAT.

Il seguente diagramma mostra un esempio di configurazione del gateway con più IP in uscita: Diagramma che mostra un gateway Cloud NAT con più IP in uscita connessi a due subnet.

Per impostazione predefinita, le connessioni in uscita create tramite un gateway Cloud NAT hanno i seguenti timeout. Se necessario, puoi configurarli manualmente.

Timeout Valore predefinito (secondi)
Connessioni non TCP 60
Connessioni TCP inattive 8000
Chiusura delle connessioni TCP 10
Stabilimento della connessione TCP 60

Creare un gateway Cloud NAT con timeout

Questo esempio definisce un singolo gateway Cloud NAT con timeout di connessione. Come nell'esempio precedente, questa configurazione assegna gli IP in uscita da subnet-1 e subnet-2 al traffico in uscita dagli endpoint con l'etichetta app:aa. Inoltre, questa configurazione sostituisce i timeout predefiniti con valori personalizzati.

apiVersion: networking.gdc.goog/v1
kind: CloudNATGateway
metadata:
  namespace: project-1
  name: gateway-1
spec:
  workloadSelector:   # Immutable
    labelSelector:
      workloads:
        matchLabels:
          app: aa
  subnetRefs:          # Mutable
  - subnet-1
  - subnet-2
  connectionOptions:   # Mutable
    nonTCPTimeoutSeconds: 10            # All non-TCP connections. 60 by default
    tcpTimeoutSeconds: 900              # Established TCP connections. 8000 by default
    tcpTeardownTimeoutSeconds: 10       # TCP connection teardown. 10 by default
    tcpEstablishmentTimeoutSeconds: 10  # TCP connection establishment. 60 by default

Lo stato dei gateway può essere controllato utilizzando il seguente comando kubectl.

export MGMT_KUBECONFIG=<path_to_management_kubeconfig>
kubectl get cloudnatgateways gateway-1 -n project-1 --kubeconfig "${MGMT_KUBECONFIG:?}"

Se configurato correttamente, il campo della condizione di stato del gateway Cloud NAT mostra la condizione del tipo Ready impostata su true e le subnet contrassegnate come OK, come mostrato nell'output di esempio seguente.

apiVersion: networking.gdc.goog/v1
kind: CloudNATGateway
metadata:
  namespace: project-1
  name: gateway-1
spec:
  workloadSelector:   # Immutable
    labelSelector:
      workloads:
        matchLabels:
          app: aa
  subnetRefs:         # Mutable
  - subnet-1
  - subnet-2
  connectionOptions:   # Mutable
    nonTCPTimeoutSeconds: 10
    tcpTimeoutSeconds: 900
    tcpTeardownTimeoutSeconds: 10
    tcpEstablishmentTimeoutSeconds: 10
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

Per verificare che la nuova configurazione sia effettiva, puoi controllare lo stato dei gateway.