연결 제한 시간이 있는 Cloud NAT 게이트웨이

기본 요건

게이트웨이를 설정하기 전에 적절한 ID 및 액세스 관리 (IAM) 권한을 획득하고, 프로젝트에 적절한 네트워크 정책이 있는지 확인하고, 이그레스를 사용 설정해야 합니다.

자세한 내용은 Cloud NAT 시작하기 전에를 참고하세요.

Cloud NAT 게이트웨이는 외부 leaf 서브넷을 입력으로 사용합니다. Cloud NAT용 외부 서브넷 구성에 관한 자세한 내용은 Cloud NAT용 외부 서브넷 만들기를 참고하세요.

연결 시간 제한이 있는 Cloud NAT 게이트웨이 만들기 및 관리

이 문서에서는 연결 시간 제한이 있는 Cloud NAT 게이트웨이를 만들고 관리하는 방법을 설명합니다. 이 사용 사례는 첫 번째 시나리오와 유사한 설정을 만들지만 Cloud NAT 게이트웨이를 통해 설정된 연결의 시간 제한을 지정합니다.

다음 다이어그램은 여러 이그레스 IP가 있는 게이트웨이 설정의 예시를 보여줍니다. 두 서브넷에 연결된 여러 이그레스 IP가 있는 Cloud NAT 게이트웨이를 보여주는 다이어그램

기본적으로 Cloud NAT 게이트웨이를 통해 생성된 이그레스 연결에는 다음 시간 제한이 있습니다. 필요한 경우 수동으로 구성할 수 있습니다.

제한 시간 기본값 (초)
TCP 외 연결 60
유휴 TCP 연결 8000
TCP 연결 해체 10
TCP 연결 설정 60

시간 제한이 있는 Cloud NAT 게이트웨이 만들기

이 예에서는 연결 시간 제한이 있는 단일 Cloud NAT 게이트웨이를 정의합니다. 이전 예시와 마찬가지로 이 구성은 subnet-1subnet-2의 이그레스 IP를 app:aa 라벨이 있는 엔드포인트에서 나가는 트래픽에 할당합니다. 또한 이 구성은 기본 제한 시간을 맞춤 값으로 재정의합니다.

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

다음 kubectl 명령어를 사용하여 게이트웨이 상태를 확인할 수 있습니다.

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

올바르게 구성된 경우 Cloud NAT 게이트웨이의 상태 조건 필드에 Ready 유형의 조건이 true로 설정되고 서브넷이 OK로 표시됩니다(다음 예시 출력 참고).

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

새 구성이 적용되었는지 확인하려면 게이트웨이 상태를 확인하세요.