בדף הזה מוסבר איך להגדיר אשכולות המותאמים ל-VPC ב-Google Kubernetes Engine (GKE).
מידע נוסף על היתרונות והדרישות של אשכולות המותאמים ל-VPC זמין בסקירה הכללית של אשכולות המותאמים ל-VPC.
באשכולות GKE Autopilot, רשתות VPC-native מופעלות כברירת מחדל ואי אפשר לשנות את ההגדרה הזו.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את המשימות הבאות:
- מפעילים את Google Kubernetes Engine API. הפעלת Google Kubernetes Engine API
- כדי להשתמש ב-Google Cloud CLI למשימה הזו, מתקינים ואז מאתחלים את ה-CLI של gcloud. אם כבר התקנתם את ה-CLI של gcloud, הריצו את הפקודה
gcloud components updateכדי להוריד את הגרסה העדכנית. יכול להיות שבגרסאות קודמות של ה-CLI של gcloud אי אפשר להריץ את הפקודות שבמסמך הזה.
מגבלות
אי אפשר להמיר אשכולות מותאמים ל-VPC לאשכולות מבוססי-נתיבים, ולהפך.
אשכולות המותאמים ל-VPC דורשים רשתות VPC. אין תמיכה ברשתות מדור קודם.
כמו בכל אשכול GKE, כתובות Service (ClusterIP) זמינות רק מתוך האשכול. אם אתם צריכים לגשת לשירות Kubernetes ממכונות וירטואליות מחוץ לאשכול, אבל בתוך רשת ה-VPC והאזור של האשכול, צרו מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי.
אם אתם משתמשים בכל כתובות ה-IP של Pod בתת-רשת, אתם לא יכולים להחליף את טווח כתובות ה-IP המשני של תת-הרשת בלי להעביר את האשכול למצב לא יציב. עם זאת, אתם יכולים ליצור טווחי כתובות IP נוספים של Pod באמצעות CIDR לא רציף של כמה Pods.
יצירת אשכול
בקטע הזה מוסבר איך לבצע את המשימות הבאות בזמן יצירת האשכול:
- ליצור אשכול ורשת משנה בו-זמנית.
- יוצרים אשכול ברשת משנה קיימת.
- יוצרים אשכול ובוחרים את טווח כתובות ה-IP של מישור הבקרה.
- יצירת אשכול עם רשת במצב דואלי ברשת משנה חדשה (זמין באשכולות Autopilot בגרסה 1.25 ואילך, ובאשכולות רגילים בגרסה 1.24 ואילך).
- ליצור בו-זמנית אשכול ורשת משנה בשני פרוטוקולים (זמין באשכולות Autopilot בגרסה 1.25 ואילך, ובאשכולות Standard בגרסה 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 המשני של תת-הרשת בשביל Services. אם לא מציינים ערך, 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-native בתת-רשת קיימת, באמצעות שיטת הקצאה של טווח משני לבחירתכם.
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 המשני של רשת המשנה בשביל Services.
-
- אם השיטה להקצאת טווח משני היא בניהול המשתמש:
-
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, בוחרים VPC מהרשימה הנפתחת Network.
- ברשימה הנפתחת Node subnet, בוחרים רשת משנה לאשכול.
- מוודאים שתיבת הסימון Enable VPC-native traffic routing (uses alias IP) מסומנת.
- אם רוצים ש-GKE ינהל את שיטת ההקצאה של טווחים משניים, מסמנים את התיבה Automatically create secondary ranges. אם כבר יצרתם טווחים משניים לרשת המשנה שבחרתם ואתם רוצים ששיטת ההקצאה של הטווח המשני תהיה בניהול המשתמש, צריך לבטל את הסימון של התיבה הזו.
- בשדה Pod address range, מזינים טווח Pod, למשל
10.0.0.0/14. - בשדה Service address range, מזינים טווח כתובות, למשל
10.4.0.0/19. - מגדירים את האשכול.
- לוחצים על יצירה.
Terraform
אתם יכולים ליצור אשכול המותאם ל-VPC באמצעות מודול של 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 של השירותים. תיאור של"clusterIpv4CidrBlock". -
"clusterSecondaryRangeName": השם של הטווח המשני של Pods. הטווח המשני כבר צריך להיות קיים ולהשתייך לרשת המשנה שמשויכת לאשכול. -
"serviceSecondaryRangeName": השם של טווח המשנה של Services. הטווח המשני כבר צריך להיות קיים ולהשתייך לרשת המשנה שמשויכת לאשכול.
אחרי שיוצרים את האשכול, אפשר לשנות את הגישה למישור הבקרה של האשכול. מידע נוסף זמין במאמר התאמה אישית של בידוד הרשת ב-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
אפשר גם לבצע את המשימה הזו על ידי יצירת אשכול רגיל.
- בקטע Standard או Autopilot, לוחצים על Configure.
- בשדה Name, מזינים את שם האשכול.
- בחלונית הניווט, בקטע Cluster, לוחצים על Networking.
- בקטע Control Plane Access, מגדירים את הגישה לנקודות הקצה של מישור הבקרה.
- בקטע Cluster networking, מסמנים את התיבה Override control plane's default private endpoint subnet.
- ברשימה Private endpoint subnet, בוחרים את רשת המשנה שיצרתם.
- לוחצים על סיום. מוסיפים עוד רשתות מורשות לפי הצורך.
מטא-נתונים של פרויקט לטווחי כתובות IP משניים
כשיוצרים או משדרגים אשכול GKE, המערכת מוסיפה באופן אוטומטי רשומות של מטא-נתונים ברמת הפרויקט, כמו google_compute_project_metadata, כדי לעקוב אחרי השימוש בטווחים משניים של כתובות IP, כולל בסביבות VPC משותף. המטא-נתונים האלה מאמתים ש-GKE מקצה נכון כתובות IP לפודים ולשירותים, וכך עוזרים למנוע התנגשויות.
GKE מנהל את המטא-נתונים האלה באופן אוטומטי.
פורמט המטא-נתונים הוא:
key: gke-REGION-CLUSTER_NAME-GKE_UID-secondary-ranges
value: pods:SHARED_VPC_NETWORK:SHARED_VPC_SUBNETWORK:CLUSTER_PODS_SECONDARY_RANGE_NAME
כאשר:
REGION: האזור Google Cloud שבו נמצא האשכול.
CLUSTER_NAME: השם של אשכול GKE.
GKE_UID: מזהה ייחודי של אשכול GKE.
VPC_NETWORK: השם של רשת ה-VPC שבה משתמש האשכול.
VPC_SUBNETWORK: השם של רשת המשנה בתוך רשת ה-VPC שבה משתמש האשכול.
CLUSTER_PODS_SECONDARY_RANGE_NAME: השם של טווח כתובות ה-IP המשני שמשמש את ה-Pods של האשכול.
יצירת אשכול עם רשת במצב דואלי
אפשר ליצור אשכול עם רשת בשני פרוטוקולים IPv4/IPv6 ברשת משנה בשני פרוטוקולים חדשה או קיימת. רשת משנה בשני פרוטוקולים זמינה באשכולות Autopilot בגרסה 1.25 ואילך, ובאשכולות Standard בגרסה 1.24 ואילך. אי אפשר להשתמש ברשת משנה בשני פרוטוקולים עם מאגרי צמתים של Windows Server.
לפני שמגדירים אשכולות עם מחסנית כפולה, מומלץ לבצע את הפעולות הבאות:
- מידע נוסף על היתרונות והדרישות של אשכולות GKE עם רשתות במצב כפול
- ההגבלות והמגבלות של רשתות עם מחסנית כפולה
בקטע הזה קודם יוצרים רשת משנה בשני פרוטוקולים, ואז משתמשים בה כדי ליצור אשכול.
כדי ליצור רשת משנה בשני פרוטוקולים, מריצים את הפקודה הבאה:
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 ממצב אוטומטי למצב מותאם אישית.
- אם מחליפים את
ACCESS_TYPEב-INTERNAL, הרשת צריכה להשתמש בכתובות IPv6 Unicast מקומיות ייחודיות (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 הם אשכולות בשני פרוטוקולים כשמשתמשים ברשת משנה בשני פרוטוקולים. אחרי שיוצרים את האשכול, אפשר לעדכן את אשכול Autopilot כך שיהיה IPv4 בלבד.
-
באשכולות Standard, מריצים את הפקודה הבאה:
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 במצב מותאם אישית שמשתמשת בכתובות Unicast ייחודיות מקומיות של IPv6 (ULA). למידע נוסף, קראו איך להעביר רשת VPC ממצב אוטומטי למצב מותאם אישית. -
SUBNET_NAME: שם תת-הרשת. COMPUTE_LOCATION: המיקום של Compute Engine לאשכול.
-
המסוף
-
נכנסים לדף Create an Autopilot cluster במסוף Google Cloud .
מעבר לדף Create an Autopilot cluster
אפשר גם לבצע את המשימה הזו על ידי יצירת אשכול רגיל.
- בקטע Standard או Autopilot, לוחצים על Configure.
- מגדירים את האשכול לפי הצורך.
- בחלונית הניווט, בקטע Cluster, לוחצים על Networking.
- בקטע Control Plane Access, מגדירים את הגישה לנקודות הקצה של מישור הבקרה.
- בקטע Cluster networking, ברשימה Network, בוחרים את שם הרשת.
- ברשימה Node subnet, בוחרים את השם של רשת המשנה בשני פרוטוקולים.
באשכולות Standard, לוחצים על כפתור הבחירה IPv4 and IPv6 (dual stack). האפשרות הזו זמינה רק אם בחרתם רשת משנה בשני פרוטוקולים.
כברירת מחדל, אשכולות Autopilot הם אשכולות בשני פרוטוקולים כשמשתמשים ברשת משנה בשני פרוטוקולים.
לוחצים על יצירה.
יצירת אשכול עם מחסנית כפולה ורשת משנה בו-זמנית
אפשר ליצור בו-זמנית רשת משנה ואשכול בפריסה כפולה. 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 במצב מותאם אישית שמשתמשת בכתובות Unicast מקומיות ייחודיות (ULA) של IPv6. למידע נוסף, קראו איך להעביר רשת VPC ממצב אוטומטי למצב מותאם אישית. -
SUBNET_NAME: השם של תת-הרשת החדשה. GKE יכול ליצור את רשת המשנה על סמך מדיניות הארגון:- אם מדיניות הארגון מאפשרת שימוש בשני פרוטוקולים, והרשת היא במצב מותאם אישית, GKE יוצר רשת משנה בשני פרוטוקולים ומקצה לרשת המשנה טווח ראשי חיצוני של IPv6 .
- אם מדיניות הארגון לא מאפשרת מחסנית כפולה, או אם הרשת במצב אוטומטי, GKE יוצר רשת משנה עם מחסנית אחת (IPv4).
-
באשכולות Standard, מריצים את הפקודה הבאה:
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 Unicast מקומיות ייחודיות (ULA).
-
SUBNET_NAME: השם של תת-הרשת החדשה שבחרתם. -
PRIMARY_RANGE: טווח כתובות ה-IPv4 הראשי של תת-הרשת החדשה, בסימון CIDR. מידע נוסף מופיע במאמר טווחי רשתות משנה. COMPUTE_LOCATION: המיקום של Compute Engine לאשכול.
-
יצירת אשכול IPv6 עם מחסנית אחת (גרסת טרום-השקה (Preview))
אתם יכולים ליצור אשכול IPv6 במחסנית אחת, שבו GKE מקצה רק כתובות IPv6 ל-Pods, לצמתים ולשירותים. אשכולות IPv6 עם סטאק יחיד דורשים את GKE Dataplane V2, Cloud DNS ורשת משנה פנימית ייעודית ל-Private Service Connect.
באשכולות IPv6 עם מחסנית אחת, טווחי המשנה של כתובות ה-IPv6 של הצמתים וה-Pods מוקצים ישירות, בלי להשתמש בטווחי כתובות IP חלופיות של IPv4. מידע נוסף זמין במאמר יצירה וניהול של אשכולות IPv6 עם מחסנית אחת.
עדכון סוג הערימה
אתם יכולים לשנות את סוג המחסנית של אשכול קיים או לעדכן רשת משנה קיימת לרשת משנה בשני פרוטוקולים.
עדכון סוג המקבץ באשכול קיים
לפני שמשנים את סוג המקבץ באשכול קיים, חשוב להביא בחשבון את המגבלות הבאות:
אפשר לשנות את סוג המחסנית באשכולות GKE חדשים שפועלים בגרסה 1.25 ואילך. אם שדרגתם אשכולות GKE מגרסה 1.24 לגרסה 1.25 או 1.26, יכול להיות שתקבלו שגיאות אימות כשתפעילו רשת עם שני סוגי כתובות IP.
שינוי סוג המחסנית הוא פעולה משבשת, כי 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 בלבד. GKE משתמש בטווח הראשי של כתובות IPv4 של רשת המשנה של האשכול. -
ipv4-ipv6: כדי לעדכן אשכול IPv4 קיים למחסנית כפולה. אפשר לשנות אשכול למצב של שני פרוטוקולים רק אם תת-הרשת הבסיסית תומכת בשני פרוטוקולים. למידע נוסף, קראו את המאמר עדכון של רשת משנה קיימת לרשת משנה בשני פרוטוקולים.
-
COMPUTE_LOCATION: המיקום של Compute Engine לאשכול.
המסוף
נכנסים לדף Google Kubernetes Engine במסוף Google Cloud .
לצד האשכול שרוצים לערוך, לוחצים על more_vert Actions ואז על edit Edit.
בקטע Networking, ליד Stack type, לוחצים על edit Edit.
בתיבת הדו-שיח Edit stack type, בוחרים את תיבת הסימון של סוג המקבץ שרוצים.
לוחצים על שמירת השינויים.
עדכון של רשת משנה קיימת לרשת משנה בשני פרוטוקולים (זמין באשכולות Autopilot בגרסה 1.25 ואילך, ובאשכולות רגילים בגרסה 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: אזור המחשוב של האשכול.
אימות סוג המקבץ, ה-Pod וטווחי כתובות ה-IP של השירות
אחרי שיוצרים אשכול המותאם ל-VPC, אפשר לאמת את טווחי ה-Pod וה-Service שלו.
gcloud
כדי לאמת את האשכול, מריצים את הפקודה הבאה:
gcloud container clusters describe CLUSTER_NAME
הפלט כולל בלוק ipAllocationPolicy. השדה stackType מתאר את סוג הגדרת הרשת. לכל סוג, אפשר לראות את פרטי הרשת הבאים:
פרטי רשת IPv4:
-
clusterIpv4Cidrהוא הטווח המשני של Pods. -
servicesIpv4Cidrהוא הטווח המשני של Services.
-
פרטי רשת IPv6 (אם לאשכול יש רשת עם מחסנית כפולה):
-
ipv6AccessType: יכולת הניתוב לאינטרנט הציבורי. INTERNALלכתובות IPv6 פנימיות ו-EXTERNALלכתובות IPv6 חיצוניות. -
subnetIpv6CidrBlock: טווח כתובות ה-IPv6 המשני של רשת המשנה החדשה. -
servicesIpv6CidrBlock: טווח הכתובות שהוקצה לשירותי IPv6 באשכול עם מחסנית כפולה.
-
המסוף
כדי לאמת את האשכול:
נכנסים לדף Google Kubernetes Engine במסוף Google Cloud .
ברשימת האשכולות, לוחצים על שם האשכול שרוצים לבדוק.
הטווחים המשניים מוצגים בקטע Networking:
- טווח הכתובות של Pod הוא הטווח המשני של Pods
- טווח הכתובות של השירות הוא הטווח המשני של השירותים
מחיקת האשכול
כדי למחוק את האשכול, פועלים לפי השלבים שמפורטים במאמר מחיקת אשכול.
כשמוחקים את האשכול, GKE מנסה לנקות את רשת המשנה שנוצרה. אבל אם משאבים אחרים משתמשים ברשת המשנה, GKE לא מוחק אותה, ואתם צריכים לנהל את משך החיים שלה בעצמכם.
הגדרה מתקדמת של כתובות IP פנימיות
בקטעים הבאים מוסבר איך להשתמש בטווחים של כתובות IP פרטיות שהן לא RFC 1918, ואיך להפעיל טווחים של כתובות IP ציבוריות בשימוש פרטי.
שימוש בטווחי כתובות IP שהם לא RFC 1918
אשכולות GKE יכולים להשתמש בטווחים של כתובות IP מחוץ לטווחים של RFC 1918 לצמתים, לפודים ולשירותים. במסמכי התיעוד של רשת ה-VPC, בקטע טווחים חוקיים, מפורטים טווחים פרטיים שאינם RFC 1918 שאפשר להשתמש בהם ככתובות IP פנימיות לטווחי רשתות משנה.
התכונה הזו לא נתמכת במאגרי צמתים של Windows Server.
טווחים פרטיים שהם לא RFC 1918 הם טווחים של רשתות משנה – אפשר להשתמש בהם באופן בלעדי או בשילוב עם טווחים של רשתות משנה מסוג RFC 1918. צמתים, Pods ושירותים ממשיכים להשתמש בטווחי רשתות משנה, כמו שמתואר במאמר טווחי כתובות IP לאשכולות המותאמים ל-VPC. אם אתם משתמשים בטווחים שהם לא RFC 1918, חשוב לזכור את הנקודות הבאות:
לפני שיוצרים את הצמתים של האשכול, צריך להקצות טווחי רשתות משנה, גם כאלה שלא משתמשים בטווחי RFC 1918, באופן ידני או באמצעות GKE. אי אפשר להחליף או להפסיק להשתמש בטווחי רשתות משנה שאינם RFC 1918 לכתובות IP של צמתים או שירותים באשכול קיים, אלא אם מחליפים את האשכול. עם זאת, אתם יכולים להוסיף לאשכול קיים שמותאם ל-VPC טווחי CIDR נוספים של Pod, כולל טווחים שאינם RFC 1918. מידע נוסף על הוספת טווחי CIDR של Pod זמין במאמר הרחבת טווחי כתובות ה-IP של אשכול GKE.
מאזני עומסי רשת פנימיים להעברת סיגנל ללא שינוי משתמשים רק בכתובות IP מטווח כתובות ה-IP הראשי של רשת המשנה. כדי ליצור מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי עם כתובת שאינה RFC 1918, טווח כתובות ה-IP הראשי של רשת המשנה חייב להיות לא RFC 1918.
יעדים מחוץ לאשכול עלולים להתקשות בקבלת תנועה מטווחים פרטיים שאינם RFC 1918. לדוגמה, טווחים פרטיים של RFC 1112 (מחלקה E) משמשים בדרך כלל ככתובות multicast. אם יעד מחוץ לאשכול לא יכול לעבד חבילות שהמקורות שלהן הם כתובות IP פרטיות מחוץ לטווח RFC 1918, אתם יכולים:
משתמשים בטווח RFC 1918 לטווח כתובות ה-IP הראשי של תת-הרשת. כך הצמתים באשכול משתמשים בכתובות RFC 1918.
מוודאים שבקלאסטר פועל סוכן הסתרת ה-IP, ושהיעדים לא נמצאים ברשימה
nonMasqueradeCIDRs. כך, המקורות של חבילות שנשלחות מפודים משתנים (SNAT) לכתובות של צמתים, שהן RFC 1918.
הפעלת טווחי כתובות IP חיצוניות בשימוש פרטי
באשכולות GKE אפשר להשתמש באופן פרטי בטווחים מסוימים של כתובות IP חיצוניות כטווחים פנימיים של כתובות IP של רשתות משנה. אתם יכולים להשתמש באופן פרטי בכל כתובת IP חיצונית, חוץ מטווחים מוגבלים מסוימים, כמו שמתואר במסמכי התיעוד של רשת ה-VPC. התכונה הזו לא נתמכת במאגרי צמתים של Windows Server.
כדי להשתמש בטווחי כתובות IP חיצוניות בשימוש פרטי, האשכול חייב להיות אשכול המותאם ל-VPC. אין תמיכה באשכולות מבוססי-נתיבים.
טווחים חיצוניים בשימוש פרטי הם טווחים של רשתות משנה. אפשר להשתמש בהם באופן בלעדי או בשילוב עם טווחי תת-רשת אחרים שמשתמשים בכתובות פרטיות. צמתים, Pods ושירותים ממשיכים להשתמש בטווחי רשתות משנה, כמו שמתואר במאמר טווחי כתובות IP לאשכולות המותאמים ל-VPC. כשמשתמשים מחדש בכתובות IP חיצוניות באופן פרטי, חשוב לזכור את הדברים הבאים:
כשמשתמשים בטווח כתובות IP חיצוניות כטווח של רשת משנה, האשכול לא יכול יותר לתקשר עם מערכות באינטרנט שמשתמשות בטווח החיצוני הזה. הטווח הופך לטווח כתובות IP פנימיות ברשת ה-VPC של האשכול.
צריך להקצות טווחי רשתות משנה, גם כאלה שמשתמשים באופן פרטי בטווחי כתובות IP חיצוניות, באופן ידני או באמצעות GKE, לפני שיוצרים את הצמתים של האשכול. אי אפשר להחליף או להפסיק להשתמש בטווחי רשתות משנה שאינם RFC 1918 לכתובות IP של צמתים או שירותים באשכול קיים, אלא אם מחליפים את האשכול. עם זאת, אתם יכולים להוסיף טווחי CIDR של Pod, כולל טווחים שאינם RFC 1918, לאשכול המותאם ל-VPC קיים. למידע נוסף על הוספת טווחי CIDR של Pod, ראו הרחבת טווחי כתובות ה-IP של אשכול GKE.
כברירת מחדל, GKE מטמיע SNAT בצמתים ליעדי כתובות IP חיצוניות. אם הגדרתם את Pod CIDR לשימוש בכתובות IP חיצוניות, כללי ה-SNAT חלים על תעבורת הנתונים בין Pod ל-Pod. כדי להימנע מכך, יש לכם שתי אפשרויות:
- יוצרים את האשכול עם הדגל
--disable-default-snat. לפרטים נוספים על הדגל הזה, קראו את המאמר הסתרת IP ב-GKE. - מגדירים את configMap
ip-masq-agent, כולל ברשימהnonMasqueradeCIDRsלפחות את Pod CIDR, את Service CIDR ואת רשת המשנה של הצמתים.
באשכולות Standard, אם גרסת האשכול היא 1.14 ואילך, שתי האפשרויות יעבדו. אם גרסת האשכול שלכם היא לפני 1.14, אתם יכולים להשתמש רק באפשרות השנייה (הגדרת ip-masq-agent).
המאמרים הבאים
- סקירה כללית על רשת GKE
- מידע על איזון עומסים פנימי
- מידע על הגדרת רשתות מורשות
- מידע ולמידה על יצירת כללי מדיניות רשת ב-Kubernetes לאשכולות