בדף הזה מוסבר איך להגדיר אשכולות מקוריים של 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-native בו-זמנית. שיטת ההקצאה המשנית של טווחים מנוהלת על ידי 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 של השירותים.
המסוף
אי אפשר ליצור אשכול ורשת משנה בו-זמנית באמצעות מסוףCloud de Confiance . במקום זאת, קודם יוצרים רשת משנה ואז יוצרים את האשכול ברשת משנה קיימת.
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 שמבצעות פעולות Peering עם האשכול הזה. אם אתם משתמשים באחד מהם, כדאי לציין את--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 במסוף Cloud de Confiance .
כניסה לדף 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 במסוף Cloud de Confiance .
כניסה לדף 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: Cloud de Confiance by S3NS האזור שבו נמצא האשכול.
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 עם רשתות דו-ערכיות.
- הגבלות ומגבלות של רשתות עם פרוטוקול כפול
בקטע הזה יוצרים קודם רשת משנה עם פרוטוקול כפול, ואז משתמשים ברשת המשנה הזו כדי ליצור אשכול.
כדי ליצור רשת משנה עם פרוטוקול כפול, מריצים את הפקודה הבאה:
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 ממצב אוטומטי למצב מותאם אישית.
- אם מחליפים את
ACCESS_TYPEב-INTERNAL, הרשת חייבת להשתמש בכתובות IPv6 יוניקאסט מקומיות (ULA).
-
PRIMARY_RANGE: טווח כתובות ה-IP הראשי של IPv4 עבור תת-הרשת החדשה, בסימון CIDR. מידע נוסף מופיע במאמר בנושא טווחים של רשתות משנה. -
COMPUTE_REGION: אזור המחשוב של האשכול.
-
כדי ליצור אשכול עם רשת משנה כפולה, משתמשים ב-
gcloud CLIאו במסוף Cloud de Confiance :
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 כשמשתמשים ברשת משנה עם תמיכה ב-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 במסוף Cloud de Confiance .
כניסה לדף Create an Autopilot cluster
אפשר גם ליצור אשכול רגיל כדי להשלים את המשימה הזו.
- בקטע 'רגיל' או 'טייס אוטומטי', לוחצים על הגדרה.
- מגדירים את האשכול לפי הצורך.
- בחלונית הניווט, בקטע Cluster, לוחצים על Networking.
- בקטע Control Plane Access, מגדירים את הגישה לנקודות הקצה של מישור הבקרה.
- בקטע Cluster networking, ברשימה Network, בוחרים את שם הרשת.
- ברשימה Node subnet, בוחרים את השם של רשת המשנה עם פרוטוקול כפול.
בקטגוריה Standard clusters, בוחרים בלחצן הבחירה IPv4 and IPv6 (dual stack). האפשרות הזו זמינה רק אם בחרתם רשת משנה עם פרוטוקול כפול.
באשכולות Autopilot, ברירת המחדל היא אשכול עם תמיכה בשני פרוטוקולים (dual-stack) כשמשתמשים ברשת משנה עם תמיכה בשני פרוטוקולים.
לוחצים על יצירה.
יצירה של אשכול ושל רשת משנה עם כתובות IPv4 ו-IPv6 בו-זמנית
אפשר ליצור רשת משנה ואשכול עם פרוטוקול כפול בו-זמנית. 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 במצב מותאם אישית שמשתמשת בכתובות ULA (כתובות יוניקאסט מקומיות ייחודיות) של IPv6. מידע נוסף זמין במאמר בנושא מעבר מרשת 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 ממצב אוטומטי למצב מותאם אישית.
- אם מחליפים את
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.
שינוי סוג ה-stack הוא פעולה שגורמת לשיבוש, כי GKE מפעיל מחדש רכיבים במישור הבקרה ובצמתים.
GKE מכבד את חלונות הזמן לתחזוקה שהגדרתם כשיוצרים מחדש צמתים. המשמעות היא שסוג מחסנית האשכול לא יפעל באשכול עד לחלון זמן לתחזוקה הבא. אם אתם לא רוצים לחכות, אתם יכולים לשדרג את מאגר הצמתים באופן ידני על ידי הגדרת הדגל
--cluster-versionלאותה גרסת GKE שמישור הבקרה כבר פועל בה. אם משתמשים בפתרון העקיף הזה, צריך להשתמש ב-CLI של gcloud. מידע נוסף מופיע במאמר בנושא הערות לגבי חלונות תחזוקה.שינוי סוג הערימה לא משנה אוטומטית את משפחת ה-IP של שירותים קיימים. התנאים הבאים חלים:
- אם משנים מחסנית אחת למחסנית כפולה, השירותים הקיימים נשארים במחסנית אחת.
- אם משנים את המצב של ערימת פרוטוקולים כפולה לערימת פרוטוקולים יחידה, השירותים הקיימים עם כתובות IPv6 עוברים למצב שגיאה. מוחקים את השירות ויוצרים שירות חדש עם
ipFamiliesנכון. דוגמה להגדרת פריסה
כדי לעדכן אשכול קיים שמותאם ל-VPC, אפשר להשתמש ב-gcloud CLI או במסוף Cloud de Confiance :
gcloud
מריצים את הפקודה הבאה:
gcloud container clusters update CLUSTER_NAME \
--stack-type=STACK_TYPE \
--location=COMPUTE_LOCATION
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם של האשכול שרוצים לעדכן. -
STACK_TYPE: סוג ה-stack. מחליפים באחד מהערכים הבאים:-
ipv4: כדי לעדכן אשכול עם תמיכה כפולה ב-IPv4 וב-IPv6 לאשכול עם תמיכה ב-IPv4 בלבד. GKE משתמש בטווח הראשי של כתובות IPv4 של רשת המשנה של האשכול. -
ipv4-ipv6: לעדכון אשכול IPv4 קיים ל-dual-stack. אפשר לשנות קלאסטר ל-dual-stack רק אם רשת המשנה הבסיסית תומכת ב-dual-stack. מידע נוסף זמין במאמר בנושא עדכון של רשת משנה קיימת לרשת משנה עם כתובות IPv4 ו-IPv6.
-
-
COMPUTE_LOCATION: המיקום של Compute Engine של האשכול.
המסוף
נכנסים לדף Google Kubernetes Engine במסוף Cloud de Confiance .
לצד האשכול שרוצים לערוך, לוחצים על more_vert פעולות ואז על edit עריכה.
בקטע Networking, לצד Stack type, לוחצים על edit Edit.
בתיבת הדו-שיח Edit stack type, מסמנים את תיבת הסימון של סוג מחסנית האשכול שרוצים.
לוחצים על שמירת השינויים.
עדכון של רשת משנה קיימת לרשת משנה עם תמיכה כפולה (זמין באשכולות 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 במסוף Cloud de Confiance .
ברשימת האשכולות, לוחצים על שם האשכול שרוצים לבדוק.
הטווחים המשניים מוצגים בקטע Networking:
- טווח כתובות של Pod הוא הטווח המשני של Pods
- טווח הכתובות למקרי חירום הוא הטווח המשני לשירותים
מחיקת האשכול
כדי למחוק את האשכול, פועלים לפי השלבים שמפורטים במאמר בנושא מחיקת אשכול.
מערכת 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 חיצוניות לשימוש פרטי
אפשר להשתמש בטווחים מסוימים של כתובות IP חיצוניות באופן פרטי באשכולות GKE כטווחים פנימיים של כתובות IP של תת-רשת. אתם יכולים להשתמש באופן פרטי בכל כתובת IP חיצונית, למעט טווחים מסוימים שמוגבלים, כמו שמתואר במסמכי התיעוד של רשת ה-VPC. התכונה הזו לא נתמכת במאגרי צמתים של Windows Server.
האשכול חייב להיות אשכול המותאם ל-VPC כדי להשתמש בטווחים של כתובות IP חיצוניות לשימוש פרטי. אין תמיכה באשכולות מבוססי-נתיבים.
טווחים חיצוניים שמשמשים באופן פרטי הם טווחי תת-רשת. אפשר להשתמש בהם באופן בלעדי או בשילוב עם טווחי תת-רשתות אחרים שמשתמשים בכתובות פרטיות. צמתים, פודים ושירותים ממשיכים להשתמש בטווחים של רשתות משנה, כפי שמתואר בטווחים של כתובות 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
- מידע נוסף על איזון עומסים פנימי
- מידע על הגדרת רשתות מורשות
- מידע נוסף על יצירת כללי מדיניות ברשת של אשכול