בדף הזה מוסבר איך להגדיר אשכולות מקוריים של VPC ב-Google Kubernetes Engine (GKE).
מידע נוסף על היתרונות והדרישות של אשכולות מקוריים ב-VPC זמין בסקירה הכללית על אשכולות מקוריים ב-VPC.
באשכולות GKE Autopilot, רשתות מקומיות של VPC מופעלות כברירת מחדל ואי אפשר לשנות את ההגדרה הזו.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את המשימות הבאות:
- מפעילים את ממשק ה-API של Google Kubernetes Engine. הפעלת Google Kubernetes Engine API
- כדי להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז לאתחל את ה-CLI של gcloud. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה
gcloud components updateכדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.
מגבלות
אי אפשר להמיר אשכול המותאם ל-VPC לאשכול מבוסס-נתיבים, ואי אפשר להמיר אשכול מבוסס-נתיבים לאשכול המותאם ל-VPC.
אשכולות מקוריים של VPC דורשים רשתות VPC. אין תמיכה ברשתות מדור קודם.
כמו בכל אשכול GKE, כתובות Service (ClusterIP) זמינות רק מתוך האשכול. אם אתם צריכים לגשת ל-Kubernetes Service ממכונות וירטואליות מחוץ לאשכול, אבל בתוך רשת ה-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 שמבצעים פעולת עמית לעמית עם האשכול הזה. אם אתם משתמשים באחד מהם, כדאי לציין את--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 מנסה להשתמש ברשת משנה ברשת ה-VPCdefaultבאזור של האשכול. - אם שיטת ההקצאה המשנית של הטווח היא מנוהלת על ידי GKE:
-
POD_IP_RANGE: טווח כתובות IP בסימון CIDR, כמו10.0.0.0/14, או הגודל של מסכה של רשת משנה של בלוק CIDR, כמו/14. הטווח הזה משמש ליצירת טווח כתובות משני של רשת המשנה עבור ה-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 במסוף 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 משניות ברשתות משנה כדי ליצור אשכול ששיטת ההקצאה של הטווח המשני שלו מנוהלת על ידי המשתמש. צריך לספק בלוקים של CIDR אם רוצים ש-GKE ינהל את שיטת הקצאת הטווח.
{
"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 \
--enable-ip-alias \
--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 \ --enable-dataplane-v2 \ --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 במצב אוטומטי למצב מותאם אישית.
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 במצב מותאם אישית שמשתמשת בכתובות IPv6 חד-שידור מקומיות ייחודיות (ULA). מידע נוסף זמין במאמר בנושא מעבר מרשת 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, בוחרים את השם של רשת המשנה עם פרוטוקול כפול.
בקטגוריה Standard clusters, בוחרים בלחצן הבחירה IPv4 and IPv6 (dual stack). האפשרות הזו זמינה רק אם בחרתם רשת משנה עם פרוטוקול כפול.
באשכולות 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 במצב מותאם אישית שמשתמשת בכתובות ULA (כתובות יוניקאסט מקומיות ייחודיות) של IPv6. מידע נוסף זמין במאמר בנושא מעבר מרשת 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
אתם יכולים לשנות את סוג ה-stack של אשכול קיים או לעדכן רשת משנה קיימת לרשת משנה עם dual-stack.
עדכון סוג ה-stack באשכול קיים
לפני שמשנים את סוג ה-stack באשכול קיים, חשוב להביא בחשבון את המגבלות הבאות:
אפשר לשנות את סוג המערך באשכולות GKE חדשים שפועלת בהם גרסה 1.25 ואילך. יכול להיות שבאשכולות GKE ששודרגו מגרסה 1.24 לגרסה 1.25 או 1.26 יופיעו שגיאות אימות כשמפעילים רשת עם כתובות IPv4 ו-IPv6. במקרה של שגיאות, אפשר לפנות Google Cloud לצוות התמיכה.
שינוי סוג הערימה הוא פעולה שגורמת לשיבוש, כי GKE מפעיל מחדש רכיבים במישור הבקרה ובצמתים.
GKE מכבד את חלונות התחזוקה שהגדרתם כשיוצרים מחדש צמתים. המשמעות היא שסוג מחסנית האשכול לא יפעל באשכול עד לחלון זמן לתחזוקה הבא. אם אתם לא רוצים לחכות, אתם יכולים לשדרג את מאגר הצמתים באופן ידני על ידי הגדרת הדגל
--cluster-versionלאותה גרסת GKE שמישור הבקרה כבר מריץ. אם משתמשים בפתרון העקיף הזה, צריך להשתמש ב-CLI של gcloud. מידע נוסף מופיע במאמר בנושא הערות לגבי חלונות תחזוקה.שינוי סוג ה-stack לא משנה אוטומטית את משפחת ה-IP של שירותים קיימים. התנאים הבאים חלים:
- אם משנים מחסנית אחת למחסנית כפולה, השירותים הקיימים נשארים במחסנית אחת.
- אם משנים את ההגדרה של dual-stack ל-single stack, השירותים הקיימים עם כתובות 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 Actions (פעולות) ואז על edit Edit (עריכה).
בקטע Networking, לצד Stack type, לוחצים על edit Edit.
בתיבת הדו-שיח Edit stack type, מסמנים את תיבת הסימון של סוג ה-stack של האשכול שרוצים.
לוחצים על שמירת השינויים.
עדכון של רשת משנה קיימת לרשת משנה עם תמיכה כפולה (זמין באשכולות Autopilot בגרסה 1.25 ואילך, ובאשכולות Standard בגרסה 1.24 ואילך).
עדכון של רשת משנה קיימת לרשת משנה עם מחסנית כפולה
כדי לעדכן רשת משנה קיימת לרשת משנה עם מחסנית כפולה, מריצים את הפקודה הבאה. עדכון של רשת משנה לא משפיע על אשכולות 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: אזור המחשוב של האשכול.
אימות סוג ה-stack, ה-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 הוא הטווח המשני של כתובות IP לשירותים
מחיקת האשכול
כדי למחוק את האשכול, פועלים לפי השלבים שמפורטים במאמר בנושא מחיקת אשכול.
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 חיצוניות לשימוש פרטי. אין תמיכה באשכולות מבוססי-נתיבים.
טווחים חיצוניים שמשמשים באופן פרטי הם טווחי תת-רשת. אפשר להשתמש בהם באופן בלעדי או בשילוב עם טווחים אחרים של תת-רשתות שמשתמשים בכתובות פרטיות. הצמתים, ה-Pods והשירותים ממשיכים להשתמש בטווחים של רשתות משנה, כמו שמתואר במאמר טווחים של כתובות IP עבור אשכולות מקוריים של VPC. כשמשתמשים מחדש בכתובות IP חיצוניות באופן פרטי, חשוב לזכור את הנקודות הבאות:
כשמשתמשים בטווח כתובות IP חיצוני כטווח של תת-רשת, האשכול לא יכול יותר לתקשר עם מערכות באינטרנט שמשתמשות בטווח החיצוני הזה. הטווח הופך לטווח כתובות IP פנימיות ברשת ה-VPC של האשכול.
צריך להקצות טווחים של תת-רשתות באופן ידני או באמצעות GKE לפני יצירת הצמתים של האשכול, גם אם מדובר בטווחים של כתובות IP חיצוניות שמשמשים באופן פרטי. אי אפשר לעבור לשימוש בטווחים של רשתות משנה שאינם RFC 1918 עבור כתובות IP של צמתים או שירותים באשכול קיים, או להפסיק את השימוש בהם, אלא אם מחליפים את האשכול. עם זאת, אפשר להוסיף טווחי CIDR נוספים של Pod, כולל טווחי non-RFC 1918, לאשכול המותאם ל-VPC קיים. מידע נוסף על הוספת טווחי CIDR נוספים של Pod זמין במאמר בנושא הרחבת טווחי כתובות ה-IP של אשכול GKE.
כברירת מחדל, ב-GKE מופעל SNAT בצמתים ליעדי כתובות IP חיצוניות. אם הגדרתם את ה-CIDR של ה-Pod לשימוש בכתובות IP חיצוניות, כללי ה-SNAT חלים על תעבורת הנתונים בין ה-Pods. כדי להימנע מכך, יש 2 אפשרויות:
- יוצרים את האשכול באמצעות הדגל
--disable-default-snat. פרטים נוספים על הדגל הזה זמינים במאמר בנושא הסתרת כתובות IP ב-GKE. - מגדירים את configMap
ip-masq-agent, כולל ברשימהnonMasqueradeCIDRsלפחות את Pod CIDR, Service CIDR ורשת המשנה של הצמתים.
באשכולות Standard, אם גרסת האשכול היא 1.14 ואילך, שתי האפשרויות יפעלו. אם גרסת האשכול שלכם מוקדמת יותר מ-1.14, אתם יכולים להשתמש רק באפשרות השנייה (הגדרה של ip-masq-agent).
המאמרים הבאים
- סקירה כללית על רשת GKE
- מידע נוסף על איזון עומסים פנימי
- מידע על הגדרת רשתות מורשות
- מידע נוסף על יצירת מדיניות רשת של אשכול