כדי לתמוך בדרישות הרשת הפנימית שלכם, אתם יכולים ליצור תת-רשתות נוספות בענן הווירטואלי הפרטי (VPC) הפנימי של הארגון או ב-VPC שמוגדר כברירת מחדל. לדוגמה, אפשר להוסיף רשתות משנה של VPC כדי לוודא שלעומסי העבודה הפנימיים, כמו מכונות וירטואליות (VM) וקונטיינרים, יש מספיק כתובות IP.
בדף הזה מפורטות כמה משימות, שלא צריך לבצע אותן לפי הסדר:
- יצירת רשת משנה של ענף אזורי לעומסי עבודה: המשימה הזו שימושית לארגון נוסף של כתובות ה-IP הפנימיות הקיימות באזור או להקצאה שלהן לעומסי עבודה.
- יצירת תת-רשת עלים לעומס עבודה ספציפי: משימה שימושית כשמגדירים עומס עבודה חדש שעדיין לא הוקצתה לו כתובת IP.
- הקצאת תת-רשת אזורית מתוך טווח כתובות IP גלובלי: משימה זו שימושית אם אין יותר מספיק מקום לכתובות IP פנימיות באזור שלכם.
- חלוקת רשת משנה גלובלית בסיסית ללא הקצאת אזור: המשימה הזו שימושית כדי לארגן עוד יותר את כתובות ה-IP הפנימיות בשרת ה-API הגלובלי לפני שמקצים אותן לאזור.
- הוספת טווח חדש של כתובות IP פרטיות גלובליות ברשת הבסיסית: משימה שימושית אם אין יותר מספיק מקום להקצאת כתובות IP פרטיות גלובליות באזורים שלכם ב-VPC שמוגדר כברירת מחדל.
לפני שמבצעים את המשימות שבדף הזה, כדאי לעיין ברשתות משנה וכתובות IP כדי לקבל סקירה כללית של רשתות משנה והמושגים שקשורים אליהן.
המסמך הזה מיועד לאדמינים של פלטפורמות ולמפעילים של אפליקציות שאחראים על ניהול תעבורת הרשת בארגון שלהם. מידע נוסף זמין במאמר בנושא קהלים ב-GDC עם air gap.
לפני שמתחילים
כדי לקבל את ההרשאה שנדרשת ליצירת רשתות משנה, צריך לבקש מהאדמין של IAM בארגון להקצות לכם את תפקיד ה-IAM (subnet-org-admin) Subnet Org Admin. התפקיד הזה לא משויך למרחב שמות.
יצירת רשת משנה של ענף אזורי לעומסי עבודה
כדי לחלק עוד יותר את כתובות ה-IP ב-VPC האזורי שמוגדר כברירת מחדל, אפשר ליצור תת-רשת פנימית אזורית מתת-רשת הבסיס האזורית הקיימת באזור. צריך ליצור את סוג רשת המשנה הזה במרחב השמות platform.
אם לרשת המשנה האזורית הבסיסית אין מספיק כתובות IP זמינות, צריך להקצות רשת משנה אזורית נוספת מטווח כתובות ה-IP הגלובלי לפני שממשיכים.
בחלון המסוף, יוצרים את רשת המשנה האזורית החדשה בשרת של API הניהול:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f - <<EOF apiVersion: ipam.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/vpc: default-vpc name: SUBNET_NAME namespace: platform spec: ipv4Request: prefixLength: CIDR_PREFIX_LENGTH networkSpec: enableGateway: true enableVLANID: false parentReference: name: PARENT_SUBNET_NAME namespace: platform type: Branch EOFמחליפים את מה שכתוב בשדות הבאים:
MANAGEMENT_API_SERVER_KUBECONFIG: הנתיב לקובץ kubeconfig של שרת ה-API לניהול. מידע נוסף זמין במאמר בנושא משאבי שרת של API לניהול אזורים.
SUBNET_NAME: השם של תת-הרשת החדשה.
CIDR_PREFIX_LENGTH: אורך הקידומת של רשת המשנה החדשה, למשל27. בשדה הזה מוקצה באופן דינמי טווח כתובות ה-IP הבא בגודל הזה מתת-הרשת הראשית. משתמשים בשדהprefixLengthכשרוצים לדעת רק את הגודל של תת-הרשת, ולא את טווח כתובות ה-IP הספציפי שלה.כדי להקצות טווח ספציפי של כתובות IP במקום זאת, מבצעים את השלבים הבאים:
- מסירים את השורה
prefixLength: CIDR_PREFIX_LENGTH. - מוסיפים במקומה שורה של
cidr: "YOUR_CIDR_BLOCK", למשלcidr: "10.0.10.0/27".
משתמשים בשדה
cidrכשפועלים לפי תוכנית IP קפדנית וצריך להקצות טווח כתובות מדויק וצפוי. הטווח הזה צריך להיות רשת משנה חוקית וזמינה ברשת המשנה הראשית.- מסירים את השורה
PARENT_SUBNET_NAME: השם של תת-הרשת הראשית, למשלdefault-vpc-zone0-cidr. בדרך כלל, תת-הרשת הראשית היא תת-רשת בסיסית אזורית ב-VPC שמוגדר כברירת מחדל.
מידע נוסף מופיע במאמרי העזרה בנושא ה-API של משאב
Subnet.אתם יכולים להמשיך לחלק את רשתות המשנה האזוריות או ליצור רשת משנה מסוג leaf כדי להקצות כתובת IP נפרדת ישירות לעומס עבודה פנימי.
יצירת רשת משנה מסוג Leaf לעומס עבודה ספציפי
כדי להקצות כתובת IP אחת לעומס העבודה, צריך ליצור רשת משנה מסוג leaf.
לרשת המשנה הזו ברמת העלה צריך להיות ערך השדה type: Leaf, והיא צריכה להיות באותו מרחב שמות של פרויקט כמו משאב עומס העבודה, כמו מכונה וירטואלית או קונטיינר.
צריך להגדיר את רשת המשנה של העלה עם ערך prefixLength של 32,
כי היא מיועדת להקצאת כתובת IP אחת. הערך parentReference מפנה לתת-רשת שהוקצתה בעבר, כמו תת-הרשת האזורית הראשית שיצרתם במאמר יצירת תת-רשת אזורית מסועפת לעומסי עבודה.
בחלון הטרמינל, יוצרים את רשת המשנה העליונה בשרת של Management API:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f - <<EOF apiVersion: ipam.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/vpc: default-vpc name: SUBNET_NAME namespace: PROJECT_NAMESPACE spec: ipv4Request: prefixLength: 32 parentReference: name: PARENT_SUBNET namespace: PARENT_NAMESPACE type: Leaf EOFמחליפים את מה שכתוב בשדות הבאים:
-
MANAGEMENT_API_SERVER_KUBECONFIG: הנתיב לקובץ kubeconfig של שרת ה-API לניהול. מידע נוסף זמין במאמר בנושא משאבי שרת של API לניהול אזורים. -
SUBNET_NAME: השם של תת-הרשת בעלה. -
PROJECT_NAMESPACE: מרחב השמות של הפרויקט שמתאים לפרויקט שבו נמצאים עומסי העבודה. -
PARENT_SUBNET: השם של רשת המשנה הראשית שממנה תת-רשת העלה הזו תקבל את כתובת ה-IP שלה. -
PARENT_NAMESPACE: מרחב השמותPROJECT_NAMESPACEאוplatform.
-
כתובת ה-IP האישית שלכם זמינה עכשיו לשימוש בעומסי העבודה הפנימיים, כמו מכונות וירטואליות וקונטיינרים. מידע נוסף על הגדרת כתובת ה-IP לעומסי העבודה זמין במאמרים יצירת מכונה וירטואלית עם כתובת IP סטטית או דינמית או הגדרת מאזן עומסים פנימי לעומסי עבודה של קונטיינרים.
הקצאת תת-רשת אזורית מטווח כתובות IP גלובלי
אם האזור לא מספק מספיק כתובות IP לעומסי העבודה מטווח כתובות ה-IP הקיים של רשת המשנה הבסיסית באזור, אפשר להקצות כתובות IP נוספות מטווח כתובות ה-IP הבסיסי הגלובלי.
כדי להקצות תת-רשת אזורית מתוך טווח כתובות ה-IP הגלובלי, צריך לבצע את השלבים הבאים עבור רשת ה-VPC שמוגדרת כברירת מחדל במרחב השמות platform:
בחלון של מסוף, מתארים את כל רשתות המשנה הבסיסיות של ה-VPC שמוגדר כברירת מחדל ובודקים את בלוקי ה-CIDR הזמינים שלהן:
kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe subnets --namespace platform \ -l ipam.gdc.goog/vpc=default-vpc,ipam.gdc.goog/usage=network-root-rangeמחליפים את הערך
GLOBAL_API_SERVER_KUBECONFIGבנתיב לקובץ kubeconfig של שרת ה-API הגלובלי. מידע נוסף זמין במאמר בנושא משאבי שרת API גלובליים. התוויות קבועות וחייבות להישאר זהות.הפלט אמור להיראות כך:
Name: default-vpc-root-cidr Namespace: platform Labels: ipam.gdc.goog/allocation-preference=default ipam.gdc.goog/subnet-group=default-vpc-root-group ipam.gdc.goog/usage=network-root-range ipam.gdc.goog/vpc=default-vpc Annotations: <none> API Version: ipam.global.gdc.goog/v1 Kind: Subnet Metadata: Creation Timestamp: 2025-06-18T23:05:38Z Finalizers: global-subnet-finalizer Generation: 1 Resource Version: 439434 UID: 5ed1c51a-b5ee-473e-a185-8e065a87ae8f Spec: ipv4Request: Cidr: 10.252.0.0/14 Propagation Strategy: None Type: Root Status: Children Refs: Name: default-vpc-zone1-root-cidr Namespace: platform Type: SingleSubnet Conditions: Last Transition Time: 2025-06-18T23:05:38Z Message: IP allocation finished successfully Observed Generation: 1 Reason: AllocationSucceeded Status: True Type: Ready ipv4Allocation: Available CIDRs: 10.254.0.0/15 10.253.0.0/16 Cidr: 10.252.0.0/14 Events: <none>שימו לב לערכים של
Status.ipv4Allocation.Available CIDRs. הערכים האלה הם בלוקי ה-CIDR הזמינים שהשלב הבא מפנה אליהם. בפלט הקודם, טווחי ה-CIDR10.254.0.0/15ו-10.253.0.0/16זמינים. יכול להיות שפלט הפקודה יציג כמה רשתות משנה. שימו לב לכל בלוקי ה-CIDR הזמינים ולרשתות המשנה שלהם במקור.משווים את חסימת ה-CIDR הגדולה ביותר שזמינה מהשלב הקודם לגודל של חסימת ה-CIDR שדרושה לאזור. אם בלוק ה-CIDR הגדול ביותר שזמין לא מספיק גדול כדי להקצות את רשת המשנה החדשה, צריך להוסיף רשת משנה גלובלית חדשה של טווח שורש הרשת לפני שממשיכים. שימו לב לרשת המשנה הראשית שממנה אתם מחליטים לקבל את בלוק ה-CIDR עבור רשת המשנה החדשה.
לדוגמה, אם אתם צריכים בלוק CIDR של
/13, אבל ה-CIDR הזמינים כוללים רק/15ו-/16, אתם צריכים להוסיף רשת משנה גלובלית חדשה של טווח שורש ברשת. אם אתם צריכים רשת משנה של/15, אתם יכולים להקצות רשת משנה אזורית חדשה מבלוק ה-CIDR הקיים של/15.יוצרים את רשת המשנה החדשה בשרת ה-API הגלובלי:
kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f - <<EOF apiVersion: ipam.global.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/vpc: default-vpc ipam.gdc.goog/usage: zone-network-root-range name: SUBNET_NAME namespace: platform spec: ipv4Request: prefixLength: CIDR_PREFIX_LENGTH zone: ZONE_NAME propagationStrategy: SingleZone type: Branch parentReference: name: PARENT_SUBNET_NAME namespace: ORG_NAME EOFמחליפים את מה שכתוב בשדות הבאים:
-
GLOBAL_API_SERVER_KUBECONFIG: הנתיב לקובץ kubeconfig של שרת ה-API הגלובלי. מידע נוסף מופיע במאמר בנושא משאבי שרת API גלובליים. -
SUBNET_NAME: השם של תת-הרשת החדשה. -
CIDR_PREFIX_LENGTH: אורך הקידומת של ה-CIDR של תת-הרשת החדשה שהוקצתה באופן דינמי, למשל20. כדי להגדיר באופן סטטי את ה-CIDR, מחליפים את השדהprefixLengthבשדהcidr, ואז מגדירים את בלוק ה-CIDR, כמו10.0.10.0/27. -
ZONE_NAME: האזור שבו רוצים להקצות את רשת המשנה, למשלzone1. -
PARENT_SUBNET_NAME: השם של רשת המשנה הראשית, כמוdefault-vpc-root-cidr, או הטווח של רשת המשנה הגלובלית החדשה שיצרתם. -
ORG_NAME: שם הארגון.
מידע נוסף מופיע במאמרי העזרה בנושא ה-API של משאב
Subnet.-
בודקים שהרשת המשנית מוכנה וזמינה בשרת ה-API הגלובלי. לשם כך, בודקים שהסוג של הסטטוס שלה
Readyהואtrue:kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG get subnet --namespace platform \ SUBNET_NAME --output jsonpath='{.status.conditions[?(@.type=="Ready")].status}'הפלט אמור להיראות כך:
status: conditions: - lastTransitionTime: "2025-06-06T07:28:48Z" message: IP allocation finished successfully observedGeneration: 1 reason: AllocationSucceeded status: "True" type: Readyמוודאים שנוצרה רשת משנה אזורית בשרת של Zonal Management API, ושהסוג של הסטטוס שלה
Readyהואtrue:kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG get subnet --namespace platform \ SUBNET_NAME --output jsonpath='{.status.conditions[?(@.type=="Ready")].status}'מחליפים את הערך
MANAGEMENT_API_SERVER_KUBECONFIGבנתיב לקובץ kubeconfig של שרת ה-API לניהול. מידע נוסף זמין במאמר בנושא משאבי שרת של API לניהול אזורים.הפלט אמור להיראות כך:
status: conditions: - lastTransitionTime: "2025-06-06T07:29:34Z" message: IP allocation finished successfully observedGeneration: 1 reason: AllocationSucceeded status: "True" type: Readyמתת-הרשת החדשה הזו, אפשר ליצור עוד תת-רשתות צאצא אזוריות או להקצות כתובת IP בודדת ישירות לעומס עבודה פנימי.
חלוקת רשת משנה גלובלית בסיסית ללא הקצאת אזור
כדי לחלק עוד יותר רשת משנה גלובלית בלי להקצות אותה לאזור, יוצרים רשת משנה גלובלית ומשמיטים את אסטרטגיית ההפצה במשאב המותאם אישית Subnet. הגישה הזו שימושית אם רוצים להמשיך לארגן את טווח כתובות ה-IP שנגיש באופן גלובלי מרשת המשנה הגלובלית הבסיסית, בלי להקצות את כתובות ה-IP לאזור.
כדי לחלק את רשת המשנה הגלובלית הבסיסית בהיקף הגלובלי, צריך לבצע את השלבים הבאים במרחב השמות platform:
בחלון של מסוף, מתארים את כל רשתות המשנה הבסיסיות של ה-VPC שמוגדר כברירת מחדל ובודקים את בלוקי ה-CIDR הזמינים שלהן:
kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe subnets --namespace platform \ -l ipam.gdc.goog/vpc=default-vpc,ipam.gdc.goog/usage=network-root-rangeמחליפים את הערך
GLOBAL_API_SERVER_KUBECONFIGבנתיב לקובץ kubeconfig של שרת ה-API הגלובלי. מידע נוסף זמין במאמר בנושא משאבי שרת API גלובליים. התוויות קבועות וחייבות להישאר זהות.הפלט אמור להיראות כך:
Name: default-vpc-root-cidr Namespace: platform Labels: ipam.gdc.goog/allocation-preference=default ipam.gdc.goog/subnet-group=default-vpc-root-group ipam.gdc.goog/usage=network-root-range ipam.gdc.goog/vpc=default-vpc Annotations: <none> API Version: ipam.global.gdc.goog/v1 Kind: Subnet Metadata: Creation Timestamp: 2025-06-18T23:05:38Z Finalizers: global-subnet-finalizer Generation: 1 Resource Version: 439434 UID: 5ed1c51a-b5ee-473e-a185-8e065a87ae8f Spec: ipv4Request: Cidr: 10.252.0.0/14 Propagation Strategy: None Type: Root Status: Children Refs: Name: default-vpc-zone1-root-cidr Namespace: platform Type: SingleSubnet Conditions: Last Transition Time: 2025-06-18T23:05:38Z Message: IP allocation finished successfully Observed Generation: 1 Reason: AllocationSucceeded Status: True Type: Ready ipv4Allocation: Available CIDRs: 10.254.0.0/15 10.253.0.0/16 Cidr: 10.252.0.0/14 Events: <none>שימו לב לערכים של
Status.ipv4Allocation.Available CIDRs. הערכים האלה הם בלוקי ה-CIDR הזמינים שהשלב הבא מפנה אליהם. בפלט הקודם, טווחי ה-CIDR10.254.0.0/15ו-10.253.0.0/16זמינים. יכול להיות שיהיו כמה רשתות משנה בפלט, בהתאם למספר רשתות המשנה הבסיסיות שיש לכם. לכן, חשוב לשים לב לכל בלוקי ה-CIDR הזמינים ולרשום מאיזו רשת משנה הבלוק הזמין מגיע.משווים בין חסימת ה-CIDR הגדולה ביותר שזמינה מהשלב הקודם לבין הגודל של חסימת ה-CIDR שנדרשת לרשת המשנה הגלובלית החדשה. אם בלוק ה-CIDR הגדול ביותר שזמין לא מספיק גדול כדי להקצות את רשת המשנה החדשה, מוסיפים רשת משנה גלובלית חדשה של טווח שורש של רשת לפני שממשיכים. שימו לב לרשת המשנה הראשית שממנה אתם מחליטים לקבל את בלוק ה-CIDR עבור רשת המשנה החדשה.
לדוגמה, אם אתם צריכים בלוק CIDR של
/13, אבל ה-CIDR הזמינים כוללים רק/15ו-/16, אתם צריכים ליצור רשת משנה גלובלית חדשה של טווח שורש. אם אתם צריכים רשת משנה של/15, אתם יכולים להקצות את רשת המשנה הגלובלית החדשה מבלוק ה-CIDR הקיים של/15.יוצרים את רשת המשנה החדשה בשרת ה-API הגלובלי:
kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f - <<EOF apiVersion: ipam.global.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/vpc: default-vpc ipam.gdc.goog/usage: zone-network-root-range name: SUBNET_NAME namespace: platform spec: ipv4Request: prefixLength: CIDR_PREFIX_LENGTH propagationStrategy: None type: Branch parentReference: name: PARENT_SUBNET_NAME namespace: ORG_NAME EOFמחליפים את מה שכתוב בשדות הבאים:
-
GLOBAL_API_SERVER_KUBECONFIG: הנתיב לקובץ kubeconfig של שרת ה-API הגלובלי. מידע נוסף מופיע במאמר בנושא משאבי שרת API גלובליים. -
SUBNET_NAME: השם של תת-הרשת החדשה. -
CIDR_PREFIX_LENGTH: אורך הקידומת של ה-CIDR של תת-הרשת החדשה שהוקצתה באופן דינמי, למשל20. כדי להגדיר באופן סטטי את ה-CIDR, מחליפים את השדהprefixLengthבשדהcidr, ואז מגדירים את בלוק ה-CIDR, כמו10.0.10.0/27. -
PARENT_SUBNET_NAME: השם של רשת המשנה הראשית, כמוdefault-vpc-root-cidr, או הטווח של רשת המשנה הגלובלית החדשה שיצרתם. -
ORG_NAME: שם הארגון.
מידע נוסף מופיע במאמרי העזרה של ה-API בנושא המשאב הגלובלי
Subnet.-
בודקים שהרשת המשנית מוכנה וזמינה בשרת ה-API הגלובלי. לשם כך, בודקים שהסוג של הסטטוס שלה
Readyהואtrue:kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG get subnet --namespace platform \ SUBNET_NAME --output jsonpath='{.status.conditions[?(@.type=="Ready")].status}'הפלט אמור להיראות כך:
status: conditions: - lastTransitionTime: "2025-06-06T07:28:48Z" message: IP allocation finished successfully observedGeneration: 1 reason: AllocationSucceeded status: "True" type: Ready
רשת המשנה הגלובלית החדשה של הארגון שלכם ב-VPC שמוגדר כברירת מחדל זמינה. אפשר ליצור תת-רשת לאזור מסוים מתת-הרשת הגלובלית החדשה הזו.
הוספה של טווח חדש של רשת שורש, רשת משנה גלובלית
תתי-רשתות גלובליות עם התווית ipam.gdc.goog/usage: network-root-range מארחות את ה-CIDR של כל האזורים ברשת. אם טווח ה-CIDR מוצה, צריך ליצור תת-רשת חדשה של טווח הבסיס של הרשת בשרת ה-API הגלובלי. במקרה הצורך, אפשר ליצור כמה רשתות משנה גלובליות ברמת הבסיס.
כדי ליצור רשת משנה חדשה של טווח שורש ברשת:
בחלון מסוף, יוצרים את תת-הרשת הגלובלית החדשה של טווח הבסיס של הרשת עבור ה-VPC שמוגדר כברירת מחדל במרחב השמות
platform:kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f - <<EOF apiVersion: ipam.global.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/vpc: default-vpc ipam.gdc.goog/usage: network-root-range name: SUBNET_NAME namespace: platform spec: ipv4Request: cidr: NEW_CIDR type: Root EOFמחליפים את מה שכתוב בשדות הבאים:
-
GLOBAL_API_SERVER_KUBECONFIG: הנתיב לקובץ kubeconfig של שרת ה-API הגלובלי. מידע נוסף מופיע במאמר בנושא משאבי שרת API גלובליים. -
SUBNET_NAME: השם של תת-הרשת החדשה. -
NEW_CIDR: ה-CIDR החדש של תת-הרשת. ה-CIDR הזה לא יכול לחפוף ל-CIDR באף אחת מהרשתות המשנה הקיימות עם התוויתipam.gdc.goog/usage: network-root-rangeבאותו שרת API גלובלי.
-
אפשר לחלק את רשת המשנה החדשה של טווח השורש הגלובלי בתוך שרת ה-API הגלובלי או להקצות אותה לאזור ספציפי.
המאמרים הבאים
- תת-רשתות וכתובות IP
- סקירה כללית בנושא רשתות
- פריסת אפליקציית VM עם זמינות גבוהה
- פריסת אפליקציה בקונטיינר עם זמינות גבוהה