בדף הזה מוסבר איך להגדיר אשכולות מקוריים של VPC ב-Google Kubernetes Engine (GKE).
מידע נוסף על היתרונות והדרישות של אשכולות המותאמים ל-VPC זמין בסקירה הכללית על אשכולות המותאמים ל-VPC.
באשכולות GKE Autopilot, רשתות מקומיות של VPC מופעלות כברירת מחדל ואי אפשר לשנות את ההגדרה הזו.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את הפעולות הבאות:
- מפעילים את ממשק Google Kubernetes Engine API. הפעלת Google Kubernetes Engine API
- אם רוצים להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז להפעיל את ה-CLI של gcloud. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה
gcloud components updateכדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.
מגבלות
אי אפשר להמיר אשכול מותאם ל-VPC לאשכול מבוסס-נתיבים, ואי אפשר להמיר אשכול מבוסס-נתיבים לאשכול מותאם ל-VPC.
אשכולות המותאמים ל-VPC דורשים רשתות VPC. אין תמיכה ברשתות מדור קודם.
כמו בכל אשכול GKE, כתובות Service (ClusterIP) זמינות רק מתוך האשכול. אם אתם צריכים לגשת לשירות Kubernetes ממכונות וירטואליות מחוץ לאשכול, אבל בתוך רשת ה-VPC והאזור של האשכול, אתם יכולים ליצור מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי.
אם משתמשים בכל כתובות ה-IP של ה-Pod בתת-רשת, אי אפשר להחליף את טווח כתובות ה-IP המשני של תת-הרשת בלי להכניס את האשכול למצב לא יציב. עם זאת, אפשר ליצור טווחי כתובות IP נוספים של Pod באמצעות CIDR של כמה Pod לא רציפים.
יצירת אשכול
בקטע הזה מוסבר איך לבצע את המשימות הבאות בזמן יצירת האשכול:
- ליצור אשכול ותת-רשת בו-זמנית.
- יצירת אשכול ברשת משנה קיימת.
- יוצרים אשכול ובוחרים את טווח כתובות ה-IP של מישור הבקרה.
- יצירת אשכול עם רשתות בעלות פרוטוקול כפול ברשת משנה חדשה (זמין באשכולות Autopilot מגרסה 1.25 ואילך, ובאשכולות רגילים מגרסה 1.24 ואילך).
- יצירת אשכול עם תמיכה כפולה בערימות פרוטוקולים ורשת משנה עם תמיכה כפולה בערימות פרוטוקולים בו-זמנית (זמין באשכולות Autopilot מגרסה 1.25 ואילך, ובאשכולות רגילים מגרסה 1.24 ואילך).
אפשר גם ליצור אשכול ולהפעיל בו ניהול אוטומטי של כתובות IP (בגרסת Preview). המשמעות היא ש-GKE יוצר באופן אוטומטי רשתות משנה ומנהל את כתובות ה-IP בשבילכם. מידע נוסף זמין במאמר בנושא שימוש בניהול אוטומטי של כתובות IP.
אחרי שיוצרים את האשכול, אפשר לשנות את הגישה למישור הבקרה של האשכול. מידע נוסף מופיע במאמר התאמה אישית של בידוד הרשת ב-GKE.
יצירה של אשכול ושל רשת משנה בו-זמנית
בהוראות הבאות מוסבר איך ליצור בו-זמנית רשת משנה ואשכול GKE מקורי של VPC. שיטת ההקצאה המשנית של טווחים מנוהלת על ידי GKE כשמבצעים את שני השלבים האלה באמצעות פקודה אחת.
אם משתמשים ב-VPC משותף, אי אפשר ליצור את האשכול ואת רשת המשנה בו-זמנית. במקום זאת, אדמינים של הרשת בפרויקט המארח של ה-VPC המשותף צריכים ליצור קודם את רשת המשנה. אחר כך תוכלו ליצור את האשכול ברשת משנה קיימת עם שיטת הקצאת טווח משני בניהול המשתמשים.
gcloud
כדי ליצור אשכול המותאם ל-VPC ורשת משנה בו-זמנית, מריצים את הפקודה הבאה:
gcloud container clusters create CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--enable-ip-alias \
--create-subnetwork name=SUBNET_NAME,range=NODE_IP_RANGE \
--cluster-ipv4-cidr=POD_IP_RANGE \
--services-ipv4-cidr=SERVICES_IP_RANGE
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם של אשכול GKE. -
COMPUTE_LOCATION: המיקום של Compute Engine עבור האשכול. -
SUBNET_NAME: השם של רשת המשנה שרוצים ליצור. האזור של רשת המשנה הוא אותו אזור כמו האזור של האשכול (או האזור שמכיל את האשכול האזורי). אם רוצים ש-GKE ייצור שם, צריך להשתמש במחרוזת ריקה (name=""). -
NODE_IP_RANGE: טווח כתובות IP בסימון CIDR, כמו10.5.0.0/20, או הגודל של מסכה של רשת משנה של בלוק CIDR, כמו/20. הוא משמש ליצירת טווח כתובות ה-IP הראשי של רשת המשנה עבור הצמתים. אם לא מציינים טווח, GKE בוחר טווח כתובות IP זמין ב-VPC בגודל/20. -
POD_IP_RANGE: טווח כתובות IP בסימון CIDR, כמו10.0.0.0/14, או הגודל של מסכה של רשת משנה של בלוק CIDR, כמו/14. הטווח הזה משמש ליצירת טווח כתובות ה-IP המשני של רשת המשנה עבור ה-Pods. אם לא מציינים טווח, GKE משתמש בטווח שנבחר באופן אקראי/14שמכיל 218 כתובות. הטווח שנבחר באופן אוטומטי נבחר באקראי מתוך10.0.0.0/8(טווח של 224 כתובות) ולא כולל טווחי כתובות IP שהוקצו למכונות וירטואליות, נתיבים קיימים או טווחים שהוקצו לאשכולות אחרים. יכול להיות שהטווח שנבחר באופן אוטומטי יתנגש עם כתובות IP שמורות, עם מסלולים דינמיים או עם מסלולים ב-VPC שמבצעים פעולת Peering עם האשכול הזה. אם אתם משתמשים באחד מהם, כדאי לציין את--cluster-ipv4-cidrכדי למנוע התנגשויות. -
SERVICES_IP_RANGE: טווח כתובות IP בסימון CIDR, כמו10.4.0.0/19, או הגודל של מסכה של רשת משנה של בלוק CIDR, כמו/19. הטווח הזה משמש ליצירת טווח כתובות IP משני של רשת המשנה לשירותים. אם לא מציינים גודל, GKE משתמש ב-/20, שהוא גודל ברירת המחדל של טווח כתובות ה-IP של השירותים.
המסוף
אי אפשר ליצור אשכול ורשת משנה בו-זמנית באמצעותGoogle Cloud מסוף. במקום זאת, קודם יוצרים רשת משנה ואז יוצרים את האשכול ברשת משנה קיימת.
API
כדי ליצור אשכול שמותאם ל-VPC, מגדירים אובייקט IPAllocationPolicy במשאב האשכול:
{
"name": CLUSTER_NAME,
"description": DESCRIPTION,
...
"ipAllocationPolicy": {
"useIpAliases": true,
"createSubnetwork": true,
"subnetworkName": SUBNET_NAME
},
...
}
השדה createSubnetwork יוצר ומקצה באופן אוטומטי רשת משנה לאשכול. השדה subnetworkName הוא אופציונלי. אם הוא יישאר ריק, המערכת תבחר שם באופן אוטומטי לרשת המשנה.
אחרי שיוצרים את האשכול, אפשר לשנות את הגישה למישור הבקרה של האשכול. מידע נוסף מופיע במאמר התאמה אישית של בידוד הרשת ב-GKE.
יצירת אשכול ברשת משנה קיימת
בהוראות הבאות מוסבר איך ליצור אשכול GKE מקורי של VPC בתת-רשת קיימת עם שיטת הקצאת טווח משני לפי בחירתכם.
gcloud
כדי להשתמש בשיטה משנית להקצאת טווחים שמנוהלת על ידי GKE, מריצים את הפקודה הבאה:
gcloud container clusters create CLUSTER_NAME \ --location=COMPUTE_LOCATION \ --enable-ip-alias \ --subnetwork=SUBNET_NAME \ --cluster-ipv4-cidr=POD_IP_RANGE \ --services-ipv4-cidr=SERVICES_IP_RANGEכדי להשתמש בשיטה משנית להקצאת טווחים של ניהול על ידי המשתמש, מריצים את הפקודה הבאה:
gcloud container clusters create CLUSTER_NAME \ --location=COMPUTE_LOCATION \ --enable-ip-alias \ --subnetwork=SUBNET_NAME \ --cluster-secondary-range-name=SECONDARY_RANGE_PODS \ --services-secondary-range-name=SECONDARY_RANGE_SERVICES
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם של אשכול GKE. -
COMPUTE_LOCATION: המיקום של Compute Engine עבור האשכול. -
SUBNET_NAME: השם של רשת משנה קיימת. טווח כתובות ה-IP הראשי של תת-הרשת משמש לצמתים. רשת המשנה צריכה להיות באותו אזור שבו נמצא האשכול. אם לא מציינים רשת משנה, GKE מנסה להשתמש ברשת משנה ברשת ה-VPC באזור של האשכול.default - אם שיטת ההקצאה של הטווח המשני היא מנוהלת על ידי GKE:
-
POD_IP_RANGE: טווח כתובות IP בסימון CIDR, כמו10.0.0.0/14, או הגודל של מסכה של רשת משנה של בלוק CIDR, כמו/14. הטווח הזה משמש ליצירת טווח כתובות ה-IP המשני של רשת המשנה עבור ה-Pods. אם לא מציינים את האפשרות--cluster-ipv4-cidr, GKE בוחר טווח/14(218 כתובות) באופן אוטומטי. הטווח שנבחר באופן אוטומטי נבחר באקראי מתוך10.0.0.0/8(טווח של 224 כתובות) ולא יכלול טווחי כתובות IP שהוקצו למכונות וירטואליות, לניתובים קיימים או לטווחים שהוקצו לאשכולות אחרים. יכול להיות שהטווח שנבחר באופן אוטומטי יתנגש עם כתובות IP שמורות, מסלולים דינמיים או מסלולים בתוך רשתות VPC שמוצמדות לאשכול הזה. אם אתם משתמשים באחד מהם, כדאי לציין את--cluster-ipv4-cidrכדי למנוע התנגשויות. -
SERVICES_IP_RANGE: טווח כתובות IP בסימון CIDR (לדוגמה,10.4.0.0/19) או הגודל של מסכה של רשת משנה של בלוק CIDR (לדוגמה,/19). משתמשים בזה כדי ליצור את טווח כתובות ה-IP המשני של רשת המשנה לשירותים.
-
- אם שיטת ההקצאה המשנית של טווח כתובות היא בניהול המשתמש:
-
SECONDARY_RANGE_PODS: השם של טווח כתובות IP משני קיים ב-SUBNET_NAMEשצוין. GKE משתמש בכל טווח כתובות ה-IP המשני של רשת המשנה עבור ה-Pods של האשכול. -
SECONDARY_RANGE_SERVICES: השם של טווח כתובות IP משני קיים ב-SUBNET_NAME.
-
המסוף
-
נכנסים לדף Create an Autopilot cluster במסוף Google Cloud .
כניסה לדף Create an Autopilot cluster
אפשר גם ליצור אשכול רגיל כדי להשלים את המשימה הזו.
- בחלונית הניווט, בקטע Cluster, לוחצים על Networking.
- בקטע Control Plane Access, מגדירים את הגישה לנקודות הקצה של מישור הבקרה.
- בקטע Cluster networking, ברשימה הנפתחת Network, בוחרים ב-VPC.
- ברשימה הנפתחת Node subnet, בוחרים רשת משנה לאשכול.
- מוודאים שהתיבה Enable VPC-native traffic routing (uses alias IP) (הפעלת ניתוב תנועה מקורי ב-VPC (שימוש בכתובת IP של כינוי)) מסומנת.
- מסמנים את התיבה יצירה אוטומטית של טווחים משניים אם רוצים שמערכת GKE תנהל את שיטת ההקצאה של הטווח המשני. אם כבר יצרתם טווחי כתובות משניים עבור רשת המשנה שבחרתם, ואתם רוצים ששיטת ההקצאה של טווח הכתובות המשני תהיה בניהול המשתמש, אתם צריכים לבטל את הסימון של תיבת הסימון הזו.
- בשדה טווח כתובות של Pod, מזינים טווח של Pod, כמו
10.0.0.0/14. - בשדה Service address range, מזינים טווח כתובות למקרי חירום, כמו
10.4.0.0/19. - מגדירים את האשכול.
- לוחצים על יצירה.
Terraform
אפשר ליצור אשכול המותאם ל-VPC באמצעות Terraform באמצעות מודול Terraform.
לדוגמה, אפשר להוסיף את הבלוק הבא להגדרות ב-Terraform:
module "gke" {
source = "terraform-google-modules/kubernetes-engine/google"
version = "~> 12.0"
project_id = "PROJECT_ID"
name = "CLUSTER_NAME"
region = "COMPUTE_LOCATION"
network = "NETWORK_NAME"
subnetwork = "SUBNET_NAME"
ip_range_pods = "SECONDARY_RANGE_PODS"
ip_range_services = "SECONDARY_RANGE_SERVICES"
}
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
CLUSTER_NAME: השם של אשכול GKE. -
COMPUTE_LOCATION: המיקום של Compute Engine עבור האשכול. ב-Terraform, האזור של Compute Engine. -
NETWORK_NAME: השם של רשת קיימת. -
SUBNET_NAME: השם של רשת משנה קיימת. טווח כתובות ה-IP הראשי של תת-הרשת משמש לצמתים. רשת המשנה צריכה להיות באותו אזור שבו נמצא האשכול. -
SECONDARY_RANGE_PODS: השם של טווח כתובות IP משני קיים ב-SUBNET_NAME. -
SECONDARY_RANGE_SERVICES: השם של טווח כתובות IP משני קיים ב-SUBNET_NAME.
API
כשיוצרים אשכול המותאם ל-VPC, מגדירים אובייקט IPAllocationPolicy. אפשר להפנות לטווחים קיימים של כתובות IP משניות של רשתות משנה, או לציין בלוקים של CIDR. אפשר להפנות לטווחים קיימים של כתובות IP משניות ברשתות משנה כדי ליצור אשכול ששיטת ההקצאה של הטווח המשני שלו היא בניהול המשתמש. אם רוצים ש-GKE ינהל את שיטת הקצאת הטווח, צריך לספק בלוקים של CIDR.
{
"name": CLUSTER_NAME,
"description": DESCRIPTION,
...
"ipAllocationPolicy": {
"useIpAliases": true,
"clusterIpv4CidrBlock" : string,
"servicesIpv4CidrBlock" : string,
"clusterSecondaryRangeName" : string,
"servicesSecondaryRangeName": string,
},
...
}
הפקודה הזו כוללת את הערכים הבאים:
-
"clusterIpv4CidrBlock": טווח ה-CIDR של ה-Pods. ההגדרה הזו קובעת את הגודל של הטווח המשני של ה-Pods, ויכולה להיות בסימון CIDR, כמו10.0.0.0/14. מתוך הנפח הזמין ב-VPC, נבחר נפח ריק בגודל שצוין. אם השדה הזה יישאר ריק, המערכת תמצא טווח תקין ותיצור אותו עם גודל ברירת מחדל. -
"servicesIpv4CidrBlock": טווח ה-CIDR של Services. הצגת תיאור של"clusterIpv4CidrBlock". -
"clusterSecondaryRangeName": השם של הטווח המשני של ה-Pods. הטווח המשני צריך כבר להיות קיים ולהשתייך לרשת המשנה שמשויכת לאשכול. -
"serviceSecondaryRangeName": השם של הטווח המשני לשירותים. הטווח המשני חייב להיות קיים ולהשתייך לרשת המשנה שמשויכת לאשכול.
אחרי שיוצרים את האשכול, אפשר לשנות את הגישה למישור הבקרה של האשכול. מידע נוסף מופיע במאמר התאמה אישית של בידוד הרשת ב-GKE.
יצירת אשכול ובחירת טווח כתובות ה-IP של מישור הבקרה
כברירת מחדל, באשכולות בגרסה 1.29 ואילך נעשה שימוש בטווח רשת המשנה הראשי כדי להקצות את כתובת ה-IP הפנימית שמוקצית לנקודת הקצה של מישור הבקרה. אפשר לשנות את הגדרת ברירת המחדל הזו רק בזמן יצירת האשכול, על ידי בחירת טווח אחר של רשתות משנה.
בקטעים הבאים מוסבר איך ליצור אשכול ולשנות את טווח רשת המשנה.
gcloud
gcloud container clusters create CLUSTER_NAME \
--enable-private-nodes \
--private-endpoint-subnetwork=SUBNET_NAME \
--location=COMPUTE_LOCATION
כאשר:
- הדגל
enable-private-nodesהוא אופציונלי, והוא מציין ל-GKE ליצור את האשכול עם צמתים פרטיים. - הדגל
private-endpoint-subnetworkמגדיר את טווח כתובות ה-IP של נקודת הקצה הפנימית של מישור הבקרה. אתם יכולים להשתמש בדגלmaster-ipv4-cidrבמקום בדגלprivate-endpoint-subnetworkכדי להקצות את כתובת ה-IP הפנימית למישור הבקרה. כדי לבחור באיזה דגל להשתמש, כדאי להביא בחשבון את ההגדרות הבאות:- אם יוצרים אשכול עם הדגל
enable-private-nodes, הדגליםmaster-ipv4-cidrו-private-endpoint-subnetworkהם אופציונליים. - אם משתמשים בדגל
private-endpoint-subnetwork, GKE מקצה לנקודת הקצה הפנימית של מישור הבקרה כתובת IP מהטווח שהגדרתם. - אם משתמשים בדגל
master-ipv4-cidr, GKE יוצר רשת משנה חדשה מהערכים שסיפקתם. GKE מקצה לנקודת הקצה הפנימית של מישור הבקרה כתובת IP מתוך הטווח החדש הזה. - אם לא מציינים את הדגלים
private-endpoint-subnetworkו-master-ipv4-cidr, GKE מקצה לנקודת הקצה הפנימית של מישור הבקרה כתובת IP מתת-הרשת של האשכול המשני.
- אם יוצרים אשכול עם הדגל
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם של אשכול GKE. -
SUBNET_NAME: השם של רשת משנה קיימת להקצאת כתובת ה-IP הפנימית. -
COMPUTE_LOCATION: המיקום של Compute Engine עבור האשכול.
GKE יוצר אשכול עם Private Service Connect. אחרי שיוצרים את האשכול, אפשר לשנות את הגישה למישור הבקרה של האשכול. מידע נוסף מופיע במאמר התאמה אישית של בידוד הרשת ב-GKE.
המסוף
כדי להקצות רשת משנה למישור הבקרה של אשכול חדש, קודם צריך להוסיף רשת משנה. מבצעים את השלבים הבאים:
-
נכנסים לדף Create an Autopilot cluster במסוף Google Cloud .
כניסה לדף Create an Autopilot cluster
אפשר גם ליצור אשכול רגיל כדי להשלים את המשימה הזו.
- בקטע 'רגיל' או 'טייס אוטומטי', לוחצים על הגדרה.
- בשדה Name, מזינים את שם האשכול.
- בחלונית הניווט, בקטע Cluster, לוחצים על Networking.
- בקטע Control Plane Access, מגדירים את הגישה לנקודות הקצה של מישור הבקרה.
- בקטע Cluster networking (רשת אשכול), מסמנים את התיבה Override control plane's default private endpoint subnet (ביטול ברירת המחדל של רשת המשנה של נקודת הקצה הפרטית של מישור הבקרה).
- ברשימה Private endpoint subnet, בוחרים את רשת המשנה שיצרתם.
- לוחצים על סיום. מוסיפים רשתות מורשות נוספות לפי הצורך.
מטא-נתונים של פרויקט לטווחי כתובות IP משניות
כשיוצרים או משדרגים אשכול GKE, GKE מוסיף באופן אוטומטי רשומות של מטא-נתונים ברמת הפרויקט, כמו google_compute_project_metadata, כדי לעקוב אחרי השימוש בטווח כתובות ה-IP המשני, כולל בסביבות של VPC משותף. המטא-נתונים האלה מאמתים ש-GKE מקצה כתובות IP ל-Pods ולשירותים בצורה נכונה, וכך עוזר למנוע התנגשויות.
מערכת GKE מנהלת את המטא-נתונים האלה באופן אוטומטי.
המטא-נתונים הם בפורמט הבא:
key: gke-REGION-CLUSTER_NAME-GKE_UID-secondary-ranges
value: pods:SHARED_VPC_NETWORK:SHARED_VPC_SUBNETWORK:CLUSTER_PODS_SECONDARY_RANGE_NAME
where:
REGION: Google Cloud האזור שבו נמצא האשכול.
CLUSTER_NAME: השם של אשכול GKE.
GKE_UID: מזהה ייחודי של אשכול GKE.
VPC_NETWORK: השם של רשת ה-VPC שבה נעשה שימוש באשכול.
VPC_SUBNETWORK: השם של רשת המשנה בתוך רשת ה-VPC שבה נעשה שימוש באשכול.
CLUSTER_PODS_SECONDARY_RANGE_NAME: השם של טווח כתובות ה-IP המשני שמשמש את ה-Pods של האשכול.
יצירת אשכול עם רשתות בעלות פרוטוקול כפול
אפשר ליצור אשכול עם רשת IPv4/IPv6 dual-stack ברשת משנה חדשה או קיימת של dual-stack. רשת משנה עם תמיכה ב-IPv4 ו-IPv6 זמינה באשכולות Autopilot בגרסה 1.25 ואילך, ובאשכולות Standard בגרסה 1.24 ואילך. אין תמיכה ברשתות משנה עם פרוטוקול כפול במאגרי צמתים של Windows Server.
לפני שמגדירים אשכולות עם תמיכה ב-IPv4 ו-IPv6, מומלץ לבצע את הפעולות הבאות:
- מידע נוסף על היתרונות והדרישות של אשכולות GKE עם רשתות דו-ערכיות.
- הגבלות ומגבלות של רשתות עם פרוטוקול כפול
בקטע הזה, יוצרים קודם רשת משנה עם תמיכה כפולה בפרוטוקול IP, ואז משתמשים ברשת המשנה הזו כדי ליצור אשכול.
כדי ליצור רשת משנה עם פרוטוקול כפול, מריצים את הפקודה הבאה:
gcloud compute networks subnets create SUBNET_NAME \ --stack-type=ipv4-ipv6 \ --ipv6-access-type=ACCESS_TYPE \ --network=NETWORK_NAME \ --range=PRIMARY_RANGE \ --region=COMPUTE_REGIONמחליפים את מה שכתוב בשדות הבאים:
-
SUBNET_NAME: השם של רשת המשנה שבחרתם. -
ACCESS_TYPE: אפשרות הניתוב לאינטרנט הציבורי. משתמשים ב-INTERNALלכתובות IPv6 פנימיות או ב-EXTERNALלכתובות IPv6 חיצוניות. אם לא מציינים את--ipv6-access-type, סוג הגישה שמוגדר כברירת מחדל הואEXTERNAL. -
NETWORK_NAME: השם של הרשת שתכיל את תת-הרשת החדשה. הרשת הזו צריכה לעמוד בתנאים הבאים:- היא חייבת להיות רשת VPC במצב מותאם אישית. מידע נוסף זמין במאמר בנושא מעבר מרשת VPC במצב אוטומטי לרשת VPC במצב מותאם אישית.
- אם מחליפים את
ACCESS_TYPEב-INTERNAL, הרשת חייבת להשתמש בכתובות IPv6 יוניקאסט מקומיות (ULA).
-
PRIMARY_RANGE: טווח כתובות ה-IP הראשי של IPv4 עבור תת-הרשת החדשה, בסימון CIDR. מידע נוסף זמין במאמר בנושא טווחים של רשתות משנה. -
COMPUTE_REGION: אזור המחשוב של האשכול.
-
כדי ליצור אשכול עם רשת משנה כפולה, משתמשים ב-
gcloud CLIאו במסוף Google Cloud :
gcloud
לגבי אשכולות של Autopilot, מריצים את הפקודה הבאה:
gcloud container clusters create-auto CLUSTER_NAME \ --location=COMPUTE_LOCATION \ --network=NETWORK_NAME \ --subnetwork=SUBNET_NAMEמחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם של אשכול Autopilot החדש. -
COMPUTE_LOCATION: המיקום של Compute Engine עבור האשכול. -
NETWORK_NAME: השם של רשת ה-VPC שמכילה את תת-הרשת. רשת ה-VPC הזו צריכה להיות רשת VPC במצב מותאם אישית. מידע נוסף זמין במאמר בנושא מעבר מרשת VPC במצב אוטומטי לרשת VPC במצב מותאם אישית.
SUBNET_NAME: השם של רשת המשנה עם שני סוגי הכתובות.אשכולות GKE Autopilot מוגדרים כברירת מחדל כאשכולות עם תמיכה כפולה (dual-stack) כשמשתמשים ברשת משנה עם תמיכה כפולה. אחרי יצירת האשכול, אפשר לעדכן את אשכול Autopilot כך שיהיה מבוסס על IPv4 בלבד.
-
במקרה של אשכולות רגילים, מריצים את הפקודה הבאה:
gcloud container clusters create CLUSTER_NAME \ --enable-ip-alias \ --enable-dataplane-v2 \ --stack-type=ipv4-ipv6 \ --network=NETWORK_NAME \ --subnetwork=SUBNET_NAME \ --location=COMPUTE_LOCATIONמחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם של האשכול החדש. -
NETWORK_NAME: השם של רשת ה-VPC שמכילה את תת-הרשת. רשת ה-VPC הזו צריכה להיות רשת VPC במצב מותאם אישית שמשתמשת בכתובות ULA (כתובות יוניקאסט מקומיות ייחודיות) של IPv6. מידע נוסף זמין במאמר בנושא מעבר מרשת VPC במצב אוטומטי לרשת VPC במצב מותאם אישית. -
SUBNET_NAME: שם רשת המשנה. -
COMPUTE_LOCATION: המיקום של Compute Engine עבור האשכול.
-
המסוף
-
נכנסים לדף Create an Autopilot cluster במסוף Google Cloud .
כניסה לדף Create an Autopilot cluster
אפשר גם ליצור אשכול רגיל כדי להשלים את המשימה הזו.
- בקטע 'רגיל' או 'טייס אוטומטי', לוחצים על הגדרה.
- מגדירים את האשכול לפי הצורך.
- בחלונית הניווט, בקטע Cluster, לוחצים על Networking.
- בקטע Control Plane Access, מגדירים את הגישה לנקודות הקצה של מישור הבקרה.
- בקטע Cluster networking, ברשימה Network, בוחרים את שם הרשת.
- ברשימה Node subnet, בוחרים את השם של רשת המשנה עם פרוטוקול כפול.
במקרה של אשכולות רגילים, בוחרים בלחצן הבחירה IPv4 and IPv6 (dual stack). האפשרות הזו זמינה רק אם בחרתם רשת משנה עם כתובות IPv4 ו-IPv6.
באשכולות Autopilot, ברירת המחדל היא אשכול עם תמיכה בשני פרוטוקולים (dual-stack) כשמשתמשים ברשת משנה עם תמיכה בשני פרוטוקולים.
לוחצים על יצירה.
יצירה של אשכול ושל רשת משנה עם פרוטוקול כפול בו-זמנית
אפשר ליצור רשת משנה ואשכול עם תמיכה כפולה בו-זמנית. GKE יוצר רשת משנה של IPv6 ומקצה לרשת המשנה טווח ראשי חיצוני של IPv6.
אם משתמשים ב-VPC משותף, אי אפשר ליצור את האשכול ואת רשת המשנה בו-זמנית. במקום זאת, מנהל רשת בפרויקט המארח של ה-VPC המשותף צריך ליצור קודם את רשת המשנה עם שני סוגי הכתובות.
לגבי אשכולות של Autopilot, מריצים את הפקודה הבאה:
gcloud container clusters create-auto CLUSTER_NAME \ --location=COMPUTE_LOCATION \ --network=NETWORK_NAME \ --create-subnetwork name=SUBNET_NAMEמחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם של אשכול Autopilot החדש. -
COMPUTE_LOCATION: המיקום של Compute Engine עבור האשכול. -
NETWORK_NAME: השם של רשת ה-VPC שמכילה את תת-הרשת. רשת ה-VPC הזו צריכה להיות רשת VPC במצב מותאם אישית שמשתמשת בכתובות יוניקאסט מקומיות ייחודיות של IPv6 (ULA). מידע נוסף זמין במאמר בנושא מעבר מרשת VPC במצב אוטומטי לרשת VPC במצב מותאם אישית. -
SUBNET_NAME: השם של תת-הרשת החדשה. GKE יכול ליצור את תת-הרשת על סמך מדיניות הארגון:- אם מדיניות הארגון מאפשרת שימוש ב-dual-stack, והרשת היא במצב מותאם אישית, GKE יוצר רשת משנה עם dual-stack ומקצה לרשת המשנה טווח ראשי חיצוני של IPv6 .
- אם מדיניות הארגון לא מאפשרת שימוש ב-dual-stack, או אם הרשת במצב אוטומטי, GKE יוצר רשת משנה (subnet) עם מחסנית אחת (IPv4).
-
במקרה של אשכולות רגילים, מריצים את הפקודה הבאה:
gcloud container clusters create CLUSTER_NAME \ --enable-ip-alias \ --stack-type=ipv4-ipv6 \ --ipv6-access-type=ACCESS_TYPE \ --network=NETWORK_NAME \ --create-subnetwork name=SUBNET_NAME,range=PRIMARY_RANGE \ --location=COMPUTE_LOCATIONמחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם של האשכול החדש שבוחרים. -
ACCESS_TYPE: האפשרות לניתוב לאינטרנט הציבורי. משתמשים ב-INTERNALלכתובות IPv6 פנימיות או ב-EXTERNALלכתובות IPv6 חיצוניות. אם לא מציינים את הערך--ipv6-access-type, סוג הגישה שמוגדר כברירת מחדל הואEXTERNAL. -
NETWORK_NAME: השם של הרשת שתכיל את תת-הרשת החדשה. הרשת הזו צריכה לעמוד בתנאים הבאים:- היא חייבת להיות רשת VPC במצב מותאם אישית. מידע נוסף זמין במאמר בנושא מעבר מרשת VPC במצב אוטומטי לרשת VPC במצב מותאם אישית.
- אם מחליפים את
ACCESS_TYPEב-INTERNAL, הרשת חייבת להשתמש בכתובות IPv6 יוניקאסט מקומיות (ULA).
-
SUBNET_NAME: השם של תת-הרשת החדשה שבוחרים. -
PRIMARY_RANGE: טווח כתובות ה-IPv4 הראשי לתת-הרשת החדשה, בסימון CIDR. מידע נוסף זמין במאמר בנושא טווחים של רשתות משנה. -
COMPUTE_LOCATION: המיקום של Compute Engine עבור האשכול.
-
עדכון סוג הערימה
אתם יכולים לשנות את סוג ה-stack של אשכול קיים או לעדכן רשת משנה קיימת לרשת משנה עם dual-stack.
עדכון סוג ה-stack באשכול קיים
לפני שמשנים את סוג ה-stack באשכול קיים, חשוב לקחת בחשבון את המגבלות הבאות:
אפשר לשנות את סוג ה-stack באשכולות GKE חדשים שמופעלת בהם גרסה 1.25 ואילך. יכול להיות שבאשכולות GKE ששודרגו מגרסה 1.24 לגרסה 1.25 או 1.26 יתקבלו שגיאות אימות כשמפעילים רשת עם תמיכה ב-IPv4 ו-IPv6. במקרה של שגיאות, אפשר לפנות ל Google Cloud צוות התמיכה.
שינוי סוג הערימה הוא פעולה שגורמת לשיבוש, כי GKE מפעיל מחדש רכיבים במישור הבקרה ובצמתים.
GKE פועל בהתאם לחלונות הזמנים לתחזוקה שהגדרתם כשיוצרים מחדש צמתים. המשמעות היא שסוג מחסנית האשכול לא יהיה תפעולי באשכול עד לחלון זמן לתחזוקה הבא. אם אתם לא רוצים לחכות, אתם יכולים לשדרג את מאגר הצמתים באופן ידני על ידי הגדרת הדגל
--cluster-versionלאותה גרסת GKE שמישור הבקרה כבר פועל בה. אם משתמשים בפתרון העקיף הזה, צריך להשתמש ב-CLI של gcloud. מידע נוסף מופיע במאמר בנושא הערות לגבי חלונות תחזוקה.שינוי סוג המערך לא משנה אוטומטית את משפחת ה-IP של שירותים קיימים. התנאים הבאים חלים:
- אם משנים מחסנית אחת למחסנית כפולה, השירותים הקיימים נשארים במחסנית אחת.
- אם משנים את המצב של ערימה כפולה לערימה יחידה, השירותים הקיימים עם כתובות IPv6 עוברים למצב שגיאה. מוחקים את השירות ויוצרים שירות חדש עם
ipFamiliesנכון. דוגמה להגדרת פריסה
כדי לעדכן אשכול המותאם ל-VPC קיים, אפשר להשתמש ב-CLI של gcloud או במסוף Google Cloud :
gcloud
מריצים את הפקודה הבאה:
gcloud container clusters update CLUSTER_NAME \
--stack-type=STACK_TYPE \
--location=COMPUTE_LOCATION
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם של האשכול שרוצים לעדכן. -
STACK_TYPE: סוג המערך. מחליפים באחד מהערכים הבאים:-
ipv4: כדי לעדכן אשכול עם תמיכה כפולה ב-IPv4 לאשכול עם תמיכה ב-IPv4 בלבד. GKE משתמש בטווח הראשי של כתובות IPv4 של רשת המשנה של האשכול. -
ipv4-ipv6: כדי לעדכן אשכול IPv4 קיים ל-dual-stack. אפשר לשנות קלאסטר ל-dual-stack רק אם רשת המשנה הבסיסית תומכת ב-dual-stack. מידע נוסף זמין במאמר בנושא עדכון של רשת משנה קיימת לרשת משנה עם תמיכה כפולה ב-IPv4 וב-IPv6.
-
-
COMPUTE_LOCATION: המיקום של Compute Engine עבור האשכול.
המסוף
נכנסים לדף Google Kubernetes Engine במסוף Google Cloud .
לצד האוסף שרוצים לערוך, לוחצים על more_vert פעולות ואז על edit עריכה.
בקטע Networking, לצד Stack type, לוחצים על edit Edit.
בתיבת הדו-שיח Edit stack type, מסמנים את תיבת הסימון של סוג ה-stack של האשכול שרוצים.
לוחצים על שמירת השינויים.
עדכון של רשת משנה קיימת לרשת משנה עם תמיכה ב-IPv4 ו-IPv6 (זמין באשכולות Autopilot מגרסה 1.25 ואילך, ובאשכולות Standard מגרסה 1.24 ואילך).
עדכון של רשת משנה קיימת לרשת משנה עם מחסנית כפולה
כדי לעדכן רשת משנה קיימת לרשת משנה עם תמיכה כפולה ב-IPv4 ו-IPv6, מריצים את הפקודה הבאה. עדכון של רשת משנה לא משפיע על אף אחד מאשכולות ה-IPv4 הקיימים ברשת המשנה.
gcloud compute networks subnets update SUBNET_NAME \
--stack-type=ipv4-ipv6 \
--ipv6-access-type=ACCESS_TYPE \
--region=COMPUTE_REGION
מחליפים את מה שכתוב בשדות הבאים:
-
SUBNET_NAME: שם רשת המשנה. -
ACCESS_TYPE: אפשרות הניתוב לאינטרנט הציבורי. משתמשים ב-INTERNALלכתובות IPv6 פנימיות או ב-EXTERNALלכתובות IPv6 חיצוניות. אם לא מציינים את--ipv6-access-type, סוג הגישה שמוגדר כברירת מחדל הואEXTERNAL. -
COMPUTE_REGION: אזור המחשוב של האשכול.
אימות סוג המערך, ה-Pod וטווח כתובות ה-IP של השירות
אחרי שיוצרים אשכול המותאם ל-VPC, אפשר לאמת את טווחי ה-Pod והשירות שלו.
gcloud
כדי לאמת את האשכול, מריצים את הפקודה הבאה:
gcloud container clusters describe CLUSTER_NAME
הפלט כולל בלוק ipAllocationPolicy. בשדה stackType מתואר סוג הגדרת הרשת. לכל סוג, אפשר לראות את פרטי הרשת הבאים:
פרטי רשת IPv4:
-
clusterIpv4Cidrהוא הטווח המשני של ה-Pods. -
servicesIpv4Cidrהוא הטווח המשני של שירותים.
-
פרטי רשת IPv6 (אם לאשכול יש רשת עם פרוטוקול כפול):
-
ipv6AccessType: אפשרות הניתוב לאינטרנט הציבורי. INTERNALלכתובות IPv6 פנימיות ו-EXTERNALלכתובות IPv6 חיצוניות. -
subnetIpv6CidrBlock: טווח כתובות ה-IPv6 המשני של רשת המשנה החדשה. -
servicesIpv6CidrBlock: טווח הכתובות שהוקצה לשירותי IPv6 באשכול עם תמיכה כפולה.
-
המסוף
כדי לאמת את האשכול, מבצעים את השלבים הבאים:
נכנסים לדף Google Kubernetes Engine במסוף Google Cloud .
ברשימת האשכולות, לוחצים על שם האשכול שרוצים לבדוק.
הטווחים המשניים מוצגים בקטע Networking:
- טווח כתובות ה-Pod הוא הטווח המשני של ה-Pods
- Service address range הוא הטווח המשני של טווח כתובות לשירותים
מחיקת האשכול
כדי למחוק את האשכול, פועלים לפי השלבים שמפורטים במאמר בנושא מחיקת אשכול.
GKE מנסה לנקות את רשת המשנה שנוצרה כשמ删除ים את האשכול. אבל אם רשת המשנה נמצאת בשימוש של משאבים אחרים, GKE לא מוחק את רשת המשנה, ואתם צריכים לנהל את מחזור החיים של רשת המשנה בעצמכם.
הגדרה מתקדמת של כתובות IP פנימיות
בסעיפים הבאים מוסבר איך להשתמש בטווחים של כתובות IP פרטיות שאינן RFC 1918 ואיך להפעיל טווחים של כתובות IP ציבוריות לשימוש פרטי.
שימוש בטווחים של כתובות IP שהם לא RFC 1918
אפשר להשתמש בטווחים של כתובות IP מחוץ לטווחים של RFC 1918 עבור צמתים, Pod ושירותים באשכולות GKE. במסמכי התיעוד של רשת VPC מופיעה רשימה של טווחים פרטיים שאינם RFC 1918, שאפשר להשתמש בהם ככתובות IP פנימיות לטווחים של רשתות משנה. אפשר לעיין בטווחים תקפים.
התכונה הזו לא נתמכת במאגרי צמתים של Windows Server.
טווחים פרטיים שאינם RFC 1918 הם טווחים של רשתות משנה – אפשר להשתמש בהם באופן בלעדי או בשילוב עם טווחים של רשתות משנה RFC 1918. צמתים, פודים ושירותים ממשיכים להשתמש בטווחים של רשתות משנה, כפי שמתואר בטווחים של כתובות IP לאשכולות מקוריים של VPC. אם אתם משתמשים בטווחים שאינם RFC 1918, חשוב לזכור את הנקודות הבאות:
צריך להקצות טווחים של רשתות משנה באופן ידני או באמצעות GKE לפני שנוצרים הצמתים של האשכול, גם אם מדובר בטווחים שלא מוגדרים ב-RFC 1918. אי אפשר לעבור לשימוש בטווחים של רשתות משנה שאינם RFC 1918 או להפסיק את השימוש בהם עבור כתובות IP של צמתים או שירותים באשכול קיים, אלא אם מחליפים את האשכול. עם זאת, אפשר להוסיף טווחי CIDR של Pod נוספים, כולל טווחים שאינם RFC 1918, לאשכול המותאם ל-VPC קיים. מידע נוסף על הוספת טווחי CIDR של Pod זמין במאמר הרחבת טווחי כתובות ה-IP של אשכול GKE.
מאזני עומס פנימיים של רשת להעברת סיגנל ללא שינוי משתמשים רק בכתובות IP מטווח כתובות ה-IP הראשי של תת-הרשת. כדי ליצור מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי עם כתובת שאינה RFC 1918, טווח כתובות ה-IP הראשי של רשת המשנה צריך להיות שאינו RFC 1918.
יכול להיות שיהיה קשה ליעדים מחוץ לאשכול לקבל תנועה מטווחים פרטיים שאינם RFC 1918. לדוגמה, טווחים פרטיים של RFC 1112 (class E) משמשים בדרך כלל ככתובות מולטיקאסט. אם יעד מחוץ לאשכול לא יכול לעבד חבילות שהמקורות שלהן הם כתובות IP פרטיות מחוץ לטווח RFC 1918, אפשר לבצע את הפעולות הבאות:
משתמשים בטווח RFC 1918 לטווח כתובות ה-IP הראשי של תת-הרשת. כך, הצמתים באשכול משתמשים בכתובות RFC 1918.
מוודאים שבאשכול פועל סוכן של הסתרת כתובת IP ושהיעדים לא מופיעים ברשימה
nonMasqueradeCIDRs. בדרך הזו, המקורות של מנות (packets) שנשלחות מ-Pods משתנים (SNAT) לכתובות של צמתים, שהן RFC 1918.
הפעלה של טווחי כתובות IP חיצוניות לשימוש פרטי
אשכולות GKE יכולים להשתמש בפרטיות בטווחים מסוימים של כתובות IP חיצוניות כטווחים של כתובות IP פנימיות של רשתות משנה. אתם יכולים להשתמש באופן פרטי בכל כתובת IP חיצונית, למעט טווחים מסוימים שמוגבלים, כמו שמתואר במסמכי התיעוד של רשת ה-VPC. התכונה הזו לא נתמכת במאגרי צמתים של Windows Server.
האשכול חייב להיות אשכול המותאם ל-VPC כדי להשתמש בטווחים של כתובות IP חיצוניות לשימוש פרטי. אין תמיכה באשכולות מבוססי-נתיבים.
טווחים חיצוניים שמשמשים באופן פרטי הם טווחי רשת משנה. אפשר להשתמש בהם באופן בלעדי או בשילוב עם טווחי רשתות משנה אחרים שמשתמשים בכתובות פרטיות. הצמתים, ה-Pods והשירותים ממשיכים להשתמש בטווחים של רשתות משנה, כפי שמתואר בטווחים של כתובות IP לאשכולות מקוריים של VPC. כשמשתמשים מחדש בכתובות IP חיצוניות באופן פרטי, חשוב לזכור את הנקודות הבאות:
כשמשתמשים בטווח כתובות IP חיצוניות כטווח של תת-רשת, האשכול לא יכול יותר לתקשר עם מערכות באינטרנט שמשתמשות בטווח החיצוני הזה. הטווח הופך לטווח כתובות IP פנימיות ברשת ה-VPC של האשכול.
צריך להקצות טווחים של תת-רשתות באופן ידני או באמצעות GKE לפני יצירת הצמתים של האשכול, גם אם מדובר בטווחים של כתובות IP חיצוניות שמשמשים באופן פרטי. אי אפשר לעבור לשימוש בטווחים של רשתות משנה שאינם RFC 1918 עבור כתובות IP של צמתים או שירותים באשכול קיים, או להפסיק את השימוש בהם, אלא אם מחליפים את האשכול. עם זאת, אפשר להוסיף טווחי CIDR נוספים של Pod, כולל טווחים שאינם RFC 1918, לאשכול המותאם ל-VPC קיים. מידע נוסף על הוספת טווחי CIDR נוספים של Pod זמין במאמר בנושא הרחבת טווחי כתובות ה-IP של אשכול GKE.
כברירת מחדל, ב-GKE מופעל SNAT בצמתים ליעדי כתובות IP חיצוניות. אם הגדרתם את ה-CIDR של ה-Pod לשימוש בכתובות IP חיצוניות, כללי ה-SNAT חלים על תעבורת נתונים מ-Pod ל-Pod. כדי להימנע מכך, יש 2 אפשרויות:
- יוצרים את האשכול באמצעות הדגל
--disable-default-snat. פרטים נוספים על הדגל הזה זמינים במאמר בנושא הסתרת כתובות IP ב-GKE. - מגדירים את configMap
ip-masq-agent, כולל ברשימהnonMasqueradeCIDRsלפחות את Pod CIDR, Service CIDR ורשת המשנה של הצמתים.
באשכולות Standard, אם גרסת האשכול היא 1.14 ואילך, שתי האפשרויות יפעלו. אם גרסת האשכול שלכם מוקדמת מגרסה 1.14, אתם יכולים להשתמש רק באפשרות השנייה (הגדרה של ip-masq-agent).
המאמרים הבאים
- סקירה כללית על רשתות GKE
- מידע נוסף על איזון עומסים פנימי
- מידע על הגדרת רשתות מורשות
- מידע נוסף על יצירת מדיניות רשת של אשכול