בדף הזה מוסבר איך יוצרים רשת משנה גלובלית ב-Google Distributed Cloud (GDC) עם air gap, ואיך משתמשים ברשת המשנה הזו למאזן עומסים פנימי (ILB).
רשתות משנה גלובליות מאפשרות להגדיר פעולות של איזון עומסים פנימי בכמה אזורים בארגון ב-GDC. איזון עומסים משפר את הביצועים, האמינות והזמינות של אפליקציות ושירותים, על ידי פיזור התנועה ברשת בין כמה שרתים. מידע נוסף על רשתות משנה גלובליות לאיזון עומסים זמין במאמר מידע על רשתות משנה לאיזון עומסים.
הדף הזה מיועד למפתחים בקבוצת מפעילי האפליקציות שרוצים לנהל את איזון העומסים בארגון. מידע נוסף זמין במאמר קהלי היעד של מסמכי התיעוד של GDC עם air gap.
לפני שמתחילים
כדי ליצור רשת משנה גלובלית ולהגדיר אותה ל-ILB, צריך:
- להיות הבעלים של הפרויקט שבו מגדירים את מאזן העומסים. למידע נוסף, קראו את המאמר יצירת פרויקט.
התפקידים הנדרשים לניהול זהויות והרשאות גישה:
- מבקשים ממנהל החשבון הארגוני ב-IAM להקצות לכם את התפקיד "אדמין של מאזן עומסים" (
load-balancer-admin). - מבקשים ממנהל החשבון הארגוני ב-IAM להקצות לכם את התפקיד "אדמין של מאזן עומסים גלובלי" (
global-load-balancer-admin). - מבקשים ממנהל החשבון הארגוני ב-IAM להקצות לכם את התפקיד "אדמין ארגוני של רשת משנה" (
subnet-org-admin). זהו תפקיד של אדמין בפלטפורמה של הארגון. - מבקשים ממנהל החשבון הארגוני ב-IAM להקצות לכם את התפקיד "אדמין של פרויקט רשת משנה" (
subnet-project-admin). זהו תפקיד של מפעיל אפליקציה בפרויקט.
למידע נוסף, קראו את תיאורי התפקידים המוגדרים מראש.
- מבקשים ממנהל החשבון הארגוני ב-IAM להקצות לכם את התפקיד "אדמין של מאזן עומסים" (
יצירת רשת משנה גלובלית ראשית
רשת המשנה הגלובלית הראשית שאתם יוצרים בקטע הזה משמשת כמאגר כתובות ה-IP שממנו נלקחות כתובות ה-IP של ה-ILB. מציינים את ההורים של רשת המשנה באמצעות השדה spec.parentReference.name.
יש שתי אפשרויות להגדרת ה-CIDR של רשת המשנה הראשית:
למידע נוסף על ההבדל בין הגדרות CIDR סטטיות ודינמיות, קראו את המאמר הגדרת CIDR סטטית ודינמית.
יצירת רשת משנה באמצעות הגדרת CIDR סטטית
כדאי להשתמש בהגדרת CIDR סטטית כשצריך שליטה מדויקת במרחב כתובות ה-IP.
סוג רשת המשנה הזו הוא Branch. למידע נוסף על סוגי רשתות המשנה (שורש, ענף ועלים), ראו היררכיית רשתות משנה.
כדי ליצור רשת משנה ראשית גלובלית עם הגדרת CIDR סטטית, מוסיפים את בלוק ה-CIDR שבחרתם לשדה spec.ipv4Request.cidr:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
apiVersion: ipam.global.gdc.goog/v1
kind: Subnet
metadata:
labels:
ipam.gdc.goog/vpc: default-vpc
name: ILB_PARENT_SUBNET_NAME
namespace: platform
spec:
ipv4Request:
cidr: STATIC_CIDR
parentReference:
name: PARENT_NAME
namespace: platform
propagationStrategy: None
type: Branch
EOF
מחליפים את מה שכתוב בשדות הבאים:
-
GLOBAL_API_SERVER: הנתיב של kubeconfig בשרת ה-API של הניהול הגלובלי. מידע נוסף זמין במאמר שרתי API גלובליים ואזוריים. אם עדיין לא יצרתם קובץ kubeconfig לשרת ה-API, תוכלו לקרוא פרטים נוספים בקטע כניסה. -
ILB_PARENT_SUBNET_NAME: השם שנבחר לתת-הרשת הגלובלית הראשית של ה-ILB. -
STATIC_CIDR: בלוק ה-CIDR הספציפי שרוצים להקצות לרשת המשנה הראשית, למשל10.0.10.0/27. -
PARENT_NAME: השם של רשת המשנה הראשית הקיימת שממנה נוצרה רשת המשנה החדשה.
כדי להגדיר את רשת המשנה הזו כך שתפעל עם מאזני עומסים פנימיים, צריך ליצור רשת משנה מסוג עלה למאזן העומסים הפנימי.
יצירת רשת משנה באמצעות הגדרת CIDR דינמית
הגדרת ה-CIDR הדינמית מקצה באופן אוטומטי בלוק CIDR זמין בגודל שצוין מרשת המשנה ההורה. כך קל יותר לנהל את כתובות ה-IP, במיוחד בסביבות גדולות.
סוג רשת המשנה הזו הוא Branch. למידע נוסף על סוגי רשתות המשנה (שורש, ענף ועלים), ראו היררכיית רשתות משנה.
כדי ליצור רשת משנה ראשית גלובלית עם CIDR דינמי, מגדירים את השדה spec.ipv4Request.prefixLength עם אורך הקידומת שנבחר:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
apiVersion: ipam.global.gdc.goog/v1
kind: Subnet
metadata:
labels:
ipam.gdc.goog/vpc: default-vpc
name: ILB_PARENT_SUBNET_NAME
namespace: platform
spec:
ipv4Request:
prefixLength: PREFIX_LENGTH
parentReference:
name: PARENT_NAME
namespace: platform
propagationStrategy: None
type: Branch
EOF
מחליפים את מה שכתוב בשדות הבאים:
-
ILB_PARENT_SUBNET_NAME: השם שבחרתם לתת-רשת הראשית של ה-ILB, למשלlb-global-lancer-ilb-subnet. -
STATIC_CIDR: בלוק ה-CIDR הספציפי שבו רוצים להשתמש, למשל10.0.10.0/27. המשתנה הזה רלוונטי רק להגדרת CIDR סטטית. -
PARENT_NAME: השם של תת-הרשת הראשית הקיימת שממנה נוצרה תת-הרשת החדשה, למשלdefault-vpc-workload-cidr. -
PREFIX_LENGTH: אורך הקידומת שנבחרה ל-CIDR שהוקצה באופן דינמי, למשל27. המשתנה הזה רלוונטי רק להגדרה הדינמית של CIDR.
כדי להגדיר את רשת המשנה הזו כך שתפעל עם מאזני עומסים פנימיים, צריך ליצור רשת משנה מסוג עלה למאזן העומסים הפנימי.
יצירת רשת משנה מסוג עלה ל-ILB
אחרי שמגדירים את תת-הרשת הראשית הגלובלית, צריך ליצור תת-רשת עלה כדי להקצות כתובת IP אחת לשירות ה-ILB הגלובלי. הערך בשדה type של רשת המשנה הזו חייב להיות Leaf, והיא חייבת להיות באותו מרחב שמות של הפרויקט כמו המשאבים של מאזן העומסים, למשל ForwardingRule, BackendService ו-Backend.
כדי ליצור את רשת המשנה של העלה ולקשר אותה ל-ILB:
יוצרים תת-רשת עלה עם ערך
prefixLengthשל32, כי היא מיועדת להקצאה של כתובת IP אחת. הערךparentReferenceמפנה אל רשת המשנה הגלובלית הראשית שנוצרה קודם:kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: ipam.global.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/allocation-preference: default ipam.gdc.goog/vpc: default-vpc name: ILB_IP_SUBNET_NAME namespace: PROJECT_NAMESPACE spec: ipv4Request: prefixLength: 32 parentReference: name: PARENT_REF namespace: platform type: Leaf EOFמחליפים את מה שכתוב בשדות הבאים:
-
ILB_IP_SUBNET_NAME: השם שבחרתם לתת-הרשת של העלה, למשלlb-project-ilb-ip. -
PROJECT_NAMESPACE: מרחב השמות של Kubernetes שתואם לפרויקט שבו נמצאים אובייקטי ה-ILB, לדוגמהlb-project. -
PARENT_REF: השם של רשת המשנה הראשית שרשת המשנה המשנית הזו מקבלת ממנה את כתובת ה-IP שלה, כמו רשת המשנה הגלובלית הראשית שיצרתם קודם.
-
מחברים את תת-הרשת החדשה שנוצרה, שמכילה את כתובת ה-IP שהוקצתה, למשאב
ForwardingRuleInternalשל ה-ILB. במשאבForwardingRuleInternal, מעדכנים את השדהspec.cidrRef.nameכך שיפנה לשם של רשת המשנה שיצרתם בשלב הקודם:kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ForwardingRuleInternal metadata: name: FRI_NAME namespace: PROJECT_NAMESPACE spec: ports: - port: PORT protocol: PROTOCOL backendServiceRef: name: BES_NAME cidrRef: name: LEAF_SUBNET_NAME EOFמחליפים את מה שכתוב בשדות הבאים:
-
FRI_NAME: השם שבחרתם לאובייקטForwardingRuleInternal, למשלnginx-ilb-static-fr. -
PORT: מספר היציאה שבה ה-ILB מאזין לתנועה נכנסת, למשל80. -
PROTOCOL: פרוטוקול הרשת שבו משתמש ה-ILB, כמוTCPאוUDP. -
BES_NAME: השם שלBackendServiceשמשויך למשאבForwardingRuleInternal, למשלnginx-bes. -
LEAF_SUBNET_NAME: השם של תת-הרשת שיצרתם בשלב הקודם, למשלlb-project-ilb-ip.
-