기본 요건
게이트웨이를 설정하기 전에 적절한 ID 및 액세스 관리 (IAM) 권한을 획득하고, 프로젝트에 적절한 네트워크 정책이 있는지 확인하고, 이그레스를 사용 설정해야 합니다.
자세한 내용은 Cloud NAT 시작하기 전에를 참고하세요.
Cloud NAT 게이트웨이는 외부 leaf 서브넷을 입력으로 사용합니다. Cloud NAT용 외부 서브넷 구성에 관한 자세한 내용은 Cloud NAT용 외부 서브넷 만들기를 참고하세요.
연결 시간 제한이 있는 Cloud NAT 게이트웨이 만들기 및 관리
이 문서에서는 연결 시간 제한이 있는 Cloud NAT 게이트웨이를 만들고 관리하는 방법을 설명합니다. 이 사용 사례는 첫 번째 시나리오와 유사한 설정을 만들지만 Cloud NAT 게이트웨이를 통해 설정된 연결의 시간 제한을 지정합니다.
다음 다이어그램은 여러 이그레스 IP가 있는 게이트웨이 설정의 예시를 보여줍니다. 
기본적으로 Cloud NAT 게이트웨이를 통해 생성된 이그레스 연결에는 다음 시간 제한이 있습니다. 필요한 경우 수동으로 구성할 수 있습니다.
| 제한 시간 | 기본값 (초) |
| TCP 외 연결 | 60 |
| 유휴 TCP 연결 | 8000 |
| TCP 연결 해체 | 10 |
| TCP 연결 설정 | 60 |
시간 제한이 있는 Cloud NAT 게이트웨이 만들기
이 예에서는 연결 시간 제한이 있는 단일 Cloud NAT 게이트웨이를 정의합니다.
이전 예시와 마찬가지로 이 구성은 subnet-1 및 subnet-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
새 구성이 적용되었는지 확인하려면 게이트웨이 상태를 확인하세요.