שערי Cloud NAT עם פסק זמן לחיבור

דרישות מוקדמות

לפני שמגדירים שער, צריך לקבל הרשאות מתאימות לניהול זהויות והרשאות גישה (IAM), לוודא שלפרויקט יש מדיניות רשת מתאימה ולהפעיל תעבורת נתונים יוצאת (egress).

פרטים נוספים מופיעים במאמר לפני שמתחילים להשתמש ב-Cloud NAT.

שער Cloud NAT משתמש ברשתות משנה חיצוניות leaf כקלט. מידע נוסף על הגדרת רשתות משנה חיצוניות ל-Cloud NAT זמין במאמר יצירת רשתות משנה חיצוניות ל-Cloud NAT.

יצירה וניהול של שערי Cloud NAT עם פסק זמן לחיבור

במאמר הזה מוסבר איך ליצור ולנהל שערים של Cloud NAT עם הגדרות של פסק זמן (timeout) לחיבור. מקרה השימוש הזה יוצר הגדרה שדומה לתרחיש הראשון, אבל מציין פסק זמן לחיבורים שנוצרו דרך שער Cloud NAT.

בתרשים הבא מוצגת דוגמה להגדרת שער עם כמה כתובות IP ליציאה: דיאגרמה שבה מוצג שער 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

כדי לוודא שההגדרה החדשה בתוקף, אפשר לבדוק את הסטטוס של השערים.