דרישות מוקדמות
לפני שמגדירים שער, צריך לקבל הרשאות מתאימות לניהול זהויות והרשאות גישה (IAM), לוודא שלפרויקט יש מדיניות רשת מתאימה ולהפעיל תעבורת נתונים יוצאת (egress).
פרטים נוספים מופיעים במאמר לפני שמתחילים להשתמש ב-Cloud NAT.
שער Cloud NAT משתמש ברשתות משנה חיצוניות leaf כקלט. מידע נוסף על הגדרת רשתות משנה חיצוניות ל-Cloud NAT זמין במאמר יצירת רשתות משנה חיצוניות ל-Cloud NAT.
יצירה וניהול של שערי Cloud NAT עם פסק זמן לחיבור
במאמר הזה מוסבר איך ליצור ולנהל שערים של Cloud NAT עם הגדרות של פסק זמן (timeout) לחיבור. מקרה השימוש הזה יוצר הגדרה שדומה לתרחיש הראשון, אבל מציין פסק זמן לחיבורים שנוצרו דרך שער Cloud NAT.
בתרשים הבא מוצגת דוגמה להגדרת שער עם כמה כתובות IP ליציאה:

כברירת מחדל, לחיבורים יוצאים שנוצרים דרך שער Cloud NAT יש את ערכי הזמן הקצובים לתפוגה הבאים. אפשר להגדיר אותם באופן ידני אם צריך.
| פסק זמן | ברירת מחדל (שניות) |
| חיבורים שהם לא TCP | 60 |
| חיבורי TCP במצב לא פעיל | 8000 |
| ניתוק חיבורי TCP | 10 |
| יצירת חיבור TCP | 60 |
יצירת שער Cloud NAT עם הגדרות זמן קצוב לתפוגה
בדוגמה הזו מוגדר שער Cloud NAT יחיד עם פסק זמן לחיבור.
כמו בדוגמה הקודמת, ההגדרה הזו מקצה את כתובות ה-IP ליציאה מ-subnet-1 ומ-subnet-2 לתעבורת נתונים יוצאת מנקודות קצה עם התווית 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
כדי לוודא שההגדרה החדשה בתוקף, אפשר לבדוק את הסטטוס של השערים.