בדף הזה מוסבר איך להפעיל כמה ממשקים בצמתים וב-Pods באשכול Google Kubernetes Engine (GKE) באמצעות תמיכה בריבוי רשתות ל-Pods.
לפני שקוראים את הדף הזה, חשוב לוודא שמכירים את המושגים הכלליים בנושא רשתות, את הטרמינולוגיה והמושגים שספציפיים לתכונה הזו ואת הדרישות והמגבלות של תמיכה בריבוי רשתות ב-Pods.
מידע נוסף זמין במאמר מידע על תמיכה בריבוי רשתות עבור Pods.
דרישות ומגבלות
הדרישות והמגבלות הבאות חלות על תמיכה בריבוי רשתות ב-Pods:
דרישות
- GKE Standard בגרסה 1.28 ואילך.
- GKE Autopilot גרסה 1.29.5-gke.1091000 ואילך או גרסה 1.30.1-gke.1280000 ואילך.
- תמיכה בריבוי רשתות עבור Pods משתמשת באותם מפרטים ברמת המכונה הווירטואלית כמו ריבוי כרטיסי NIC ב-Compute Engine.
- כדי להשתמש בתמיכה בריבוי רשתות ב-Pods, צריך להשתמש ב-GKE Dataplane V2.
- תמיכה בריבוי רשתות ל-Pods זמינה במערכת ההפעלה שמותאמת לקונטיינרים. התמיכה ב-Ubuntu זמינה בצמתים שמריצים את גרסת GKE 1.32.3-gke.1785000 ואילך.
מגבלות כלליות
- התמיכה בריבוי רשתות ב-Pods לא פועלת באשכולות שמופעלת בהם רשת עם פרוטוקול כפול.
- VPC משותף נתמך רק ב-GKE בגרסה 1.28 ואילך.
- Multi-Pod CIDR נתמך רק ב-GKE בגרסה 1.29 ואילך, ורק ברשת ברירת המחדל של ה-Pod.
- לא יכולים להיות טווחי CIDR חופפים ברשתות Pod באשכול GKE יחיד.
- כשמפעילים תמיכה בריבוי רשתות עבור Pods, אי אפשר להוסיף או להסיר ממשקי רשת של צמתים או רשתות של Pods אחרי שיוצרים מאגר צמתים. כדי לשנות את ההגדרות האלה, צריך ליצור מחדש את מאגר הצמתים.
- כברירת מחדל, אין גישה לאינטרנט בממשקים נוספים של רשתות Pod בתוך ה-Pod. אבל אתם יכולים להפעיל אותו ידנית באמצעות Cloud NAT.
- אי אפשר לשנות את שער ברירת המחדל בתוך Pod עם כמה ממשקים באמצעות ה-API. שער ברירת המחדל חייב להיות מחובר לרשת ברירת המחדל של ה-Pod.
- תמיד צריך לכלול את רשת ה-Pod שמוגדרת כברירת מחדל ב-Pods, גם אם יוצרים רשתות Pod נוספות או ממשקי Pod נוספים.
- אי אפשר להגדיר את התכונה של ריבוי רשתות אם כבר הגדרתם את Managed Hubble.
- כדי להשתמש ב-VPC משותף, צריך לוודא שאשכול GKE פועל בגרסה 1.28.4 ואילך.
- בפריסות של VPC משותף, כל ממשקי הרשת (NIC) שמצורפים לצמתים צריכים להשתייך לאותו פרויקט כמו הפרויקט המארח.
- השם של אובייקטים ברשת שמוקלדים במכשיר לא יכול להיות ארוך מ-41 תווים. הנתיב המלא של כל שקע דומיין של UNIX מורכב, כולל שם הרשת המתאים.
ב-Linux יש מגבלה על אורך נתיבי שקע (מתחת ל-107 בייט).
אחרי שכוללים את הספרייה, הקידומת של שם הקובץ והסיומת
.sock, שם הרשת מוגבל ל-41 תווים לכל היותר. - אי אפשר לשנות אובייקטים מסוג
Networkו-GKENetworkParamSet. כדי לעדכן את האובייקטים האלה, צריך למחוק אותם וליצור אותם מחדש.
מגבלות של ערכת פיתוח של מישור נתונים (DPDK) ומכשירים
- כרטיס רשת של מכונה וירטואלית שמועבר ל-Pod ככרטיס רשת מסוג
Deviceלא זמין ל-Pods אחרים באותו צומת. - צריך להפעיל את ה-Pods שמשתמשים במצב DPDK במצב הרשאות כדי לגשת למכשירי VFIO.
- מצב טייס אוטומטי לא תומך ב-DPDK.
- במצב DPDK, המכשיר נחשב למשאב של צומת ומצורף רק למאגר הראשון (שאינו init) ב-Pod. אם רוצים לפצל כמה מכשירי DPDK בין קונטיינרים באותו Pod, צריך להפעיל את הקונטיינרים האלה ב-Pods נפרדים.
- בצמתי Ubuntu, רשתות
DPDK-VFIOנתמכות רק בגרסה 1.33.1-gke.1959000 של GKE ואילך.
מגבלות על הרחבת היקף הפעילות
GKE מספק ארכיטקטורת רשת גמישה שמאפשרת לכם לשנות את גודל האשכול. אפשר להוסיף עוד רשתות צמתים ורשתות של Pod לאשכול. כדי לשנות את גודל האשכול:
- אפשר להוסיף עד 8 רשתות צמתים נוספות לכל מאגר צמתים של GKE. זוהי אותה מגבלת קנה מידה כמו במכונות וירטואליות ב-Compute Engine.
- לכל פוד יכולות להיות עד 8 רשתות נוספות שמצורפות אליו.
- אתם יכולים להגדיר עד 35 רשתות של Pod ב-8 רשתות של צמתים בתוך מאגר צמתים יחיד. אפשר לפרק את זה לשילובים שונים, כמו:
- 7 רשתות צמתים עם 5 רשתות Pod בכל אחת
- 5 רשתות צמתים עם 7 רשתות Pod בכל אחת
- רשת אחת של צמתים עם 30 רשתות של פודים. המגבלה של טווחי משנה משניים לכל רשת משנה היא 30.
- אפשר להגדיר עד 50 רשתות Pod לכל אשכול.
- אפשר להגדיר עד 32 תרמילי רשת מרובה לכל צומת.
- אפשר להשתמש בעד 5,000 צמתים עם כמה ממשקים.
- אפשר לקבל עד 100,000 ממשקים נוספים בכל ה-Pods.
Deploy multi-network Pods
כדי לפרוס Pods עם כמה רשתות:
- מכינים עוד VPC, רשת משנה (node-network) וטווחים משניים (Pod-network).
- יוצרים אשכול GKE עם תמיכה בכמה רשתות באמצעות פקודת Google Cloud CLI.
- יוצרים מאגר צמתים חדש של GKE שמחובר לרשת הצמתים ולרשת ה-Pod הנוספות באמצעות פקודת Google Cloud CLI.
- יצירת רשת של Pod והפניה ל-VPC, לתת-רשת ולטווחים המשניים הנכונים באובייקטים של רשתות מרובות באמצעות Kubernetes API.
- בהגדרת עומס העבודה, מפנים אל אובייקט הרשת שהוכן מראש ב-Kubernetes באמצעות Kubernetes API.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את הפעולות הבאות:
- מפעילים את ממשק ה-API של Google Kubernetes Engine. הפעלת Google Kubernetes Engine API
- אם רוצים להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז להפעיל את ה-CLI של gcloud. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה
gcloud components updateכדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.
- קוראים את הדרישות וההגבלות.
הכנת VPC נוסף
Google Cloud יוצר רשת Pod כברירת מחדל במהלך יצירת האשכול, שמשויכת למאגר הצמתים של GKE שבו נעשה שימוש במהלך היצירה הראשונית של אשכול ה-GKE. רשת ברירת המחדל של ה-Pod זמינה בכל הצמתים וה-Pods של האשכול. כדי לאפשר יכולות של ריבוי רשתות במאגר הצמתים, צריך להכין רשתות VPC קיימות או חדשות שתומכות ברשתות מסוג Layer 3 ו-Device.
כדי להכין VPC נוסף, צריך לעמוד בדרישות הבאות:
רשת מסוג
Layer 3ו-Netdevice:- יוצרים טווח משני אם משתמשים ברשתות מסוג
Layer 3. - חשוב לוודא שגודל ה-CIDR של הטווח המשני גדול מספיק כדי להכיל את מספר הצמתים במאגר הצמתים ואת מספר ה-Pods לכל צומת שרוצים להגדיר.
- בדומה לרשת ברירת המחדל של ה-Pod, גם רשתות ה-Pod האחרות משתמשות בהקצאת יתר של כתובות IP. בטווח המשני של כתובות ה-IP צריך להיות מספר כפול של כתובות IP לכל צומת ממספר ה-Pods לכל צומת.
- יוצרים טווח משני אם משתמשים ברשתות מסוג
Deviceדרישות סוג הרשת: יצירת רשת משנה רגילה ב-VPC. לא נדרשת תת-רשת משנית.
כדי להפעיל את היכולות של ריבוי רשתות במאגר הצמתים, צריך להכין את ה-VPC שרוצים ליצור אליו חיבורים נוספים. אפשר להשתמש ב-VPC קיים או ליצור VPC חדש במיוחד בשביל מאגר הצמתים.
יצירת רשת VPC שתומכת במכשיר מסוג Layer 3
כדי ליצור רשת VPC שתומכת במכשיר מסוג Layer 3:
- מוודאים שגודל ה-CIDR של הטווח המשני גדול מספיק כדי לספק את מספר הצמתים במאגר הצמתים ואת מספר ה-Pods לכל צומת שרוצים שיהיה.
בדומה לרשת ברירת המחדל של ה-Pod, גם רשתות ה-Pod האחרות משתמשות בהקצאת יתר של כתובות IP. בטווח המשני של כתובות ה-IP צריך להיות מספר כפול של כתובות IP לכל צומת ממספר ה-Pods לכל צומת.
gcloud
gcloud compute networks subnets create SUBNET_NAME \
--project=PROJECT_ID \
--range=SUBNET_RANGE \
--network=NETWORK_NAME \
--region=REGION \
--secondary-range=SECONDARY_RANGE_NAME=<SECONDARY_RANGE_RANGE>
מחליפים את מה שכתוב בשדות הבאים:
-
SUBNET_NAME: שם רשת המשנה. -
PROJECT_ID: מזהה הפרויקט שמכיל את רשת ה-VPC שבה נוצרת רשת המשנה. -
SUBNET_RANGE: טווח כתובות ה-IPv4 הראשי לתת-הרשת החדשה, בסימון CIDR. -
NETWORK_NAME: השם של רשת ה-VPC שמכילה את תת-הרשת החדשה. -
REGION: האזור שבו נוצרת תת-הרשת החדשה. Google Cloud -
SECONDARY_RANGE_NAME: השם של הטווח המשני. SECONDARY_IP_RANGEטווח כתובות ה-IPv4 המשני בסימון CIDR.
המסוף
נכנסים לדף VPC networks במסוף Google Cloud .
לוחצים על יצירת רשת VPC.
בשדה Name (שם), מזינים את שם הרשת. לדוגמה,
l3-vpc.כדי להגדיר את יחידת השידור המקסימלית (MTU) של הרשת, מבצעים את הפעולות הבאות:
- כדי להשתמש בערך ברירת המחדל
1460, משאירים את התיבה הגדרת MTU באופן אוטומטי מסומנת. - כדי להגדיר ערך מותאם אישית:
- בודקים את המידע בנושא יחידת שידור מקסימלית.
- מבטלים את הסימון בתיבה הגדרת MTU באופן אוטומטי.
- בשדה יחידת שידור מקסימלית (MTU), בוחרים ערך MTU.
- כדי להשתמש בערך ברירת המחדל
בקטע Subnet creation mode (מצב יצירת רשת משנה), בוחרים באפשרות Custom (מותאם אישית).
לוחצים על הוספת רשת משנה.
בקטע New subnet (רשת משנה חדשה), מציינים את פרמטרי ההגדרה הבאים של רשת משנה:
מזינים שם. לדוגמה,
l3-subnet.בוחרים Region.
מזינים טווח כתובות IP. זהו טווח ה-IPv4 הראשי של רשת המשנה.
אם בוחרים טווח שהוא לא כתובת RFC 1918, צריך לוודא שהטווח לא מתנגש עם הגדרה קיימת. מידע נוסף זמין במאמר בנושא טווחים של רשתות משנה IPv4.
כדי להגדיר טווח משני לרשת המשנה, לוחצים על יצירת טווח כתובות IP משני.
אם בוחרים טווח שהוא לא כתובת RFC 1918, צריך לוודא שהטווח לא מתנגש עם הגדרה קיימת. מידע נוסף זמין במאמר בנושא טווחים של רשתות משנה IPv4.
גישה פרטית ל-Google: אתם יכולים להפעיל גישה פרטית ל-Google לרשת המשנה כשאתם יוצרים אותה או מאוחר יותר כשאתם עורכים אותה.
יומני תעבורה: אתם יכולים להפעיל יומני תעבורה של VPC לתת-הרשת כשאתם יוצרים אותה או מאוחר יותר על ידי עריכה שלה.
לוחצים על סיום.
בקטע Firewall rules, מתחת ל-IPv4 firewall rules, בוחרים אפס או יותר כללים מוגדרים מראש של חומת אש.
הכללים מתייחסים לתרחישי שימוש נפוצים לקישוריות למופעים. אחרי שיוצרים את הרשת, אפשר ליצור כללים משלכם לחומת האש. כל שם של כלל מוגדר מראש מתחיל בשם של רשת ה-VPC שאתם יוצרים.
בקטע כללי חומת אש של IPv4, כדי לערוך את כלל חומת האש המוגדר מראש לתעבורת נתונים נכנסת (ingress) שנקרא
allow-custom, לוחצים על עריכה.אפשר לערוך רשתות משנה, להוסיף טווחי IPv4 נוספים ולציין פרוטוקולים ויציאות.
כלל חומת האש
allow-customלא מתעדכן אוטומטית אם מוסיפים רשתות משנה נוספות בשלב מאוחר יותר. אם אתם צריכים כללים לחומת האש עבור רשתות המשנה החדשות, כדי להוסיף את הכללים, אתם צריכים לעדכן את ההגדרות של חומת האש.בקטע מצב ניתוב דינמי, עבור רשת ה-VPC. מידע נוסף זמין במאמר בנושא מצב ניתוב דינמי. אפשר לשנות את מצב הניתוב הדינמי בהמשך.
לוחצים על יצירה.
יצירת רשת VPC שתומכת במכשירים מסוג Netdevice או DPDK
gcloud
gcloud compute networks subnets create SUBNET_NAME \
--project=PROJECT_ID \
--range=SUBNET_RANGE \
--network=NETWORK_NAME \
--region=REGION
מחליפים את מה שכתוב בשדות הבאים:
-
SUBNET_NAME: שם רשת המשנה. -
PROJECT_ID: מזהה הפרויקט שמכיל את רשת ה-VPC שבה נוצרת רשת המשנה. -
SUBNET_RANGE: טווח כתובות ה-IPv4 הראשי לתת-הרשת החדשה, בסימון CIDR. -
NETWORK_NAME: השם של רשת ה-VPC שמכילה את תת-הרשת החדשה. -
REGION: האזור שבו נוצרת תת-הרשת החדשה. Google Cloud
המסוף
נכנסים לדף VPC networks במסוף Google Cloud .
לוחצים על יצירת רשת VPC.
בשדה Name (שם), מזינים את שם הרשת. לדוגמה,
netdevice-vpcאוdpdk-vpc.בתפריט הנפתח Maximum transmission unit (MTU) (יחידת שידור מקסימלית), בוחרים את ערך ה-MTU המתאים.
בקטע Subnet creation mode (מצב יצירת רשת משנה), בוחרים באפשרות Custom (מותאם אישית).
בקטע New subnet (רשת משנה חדשה), מציינים את פרמטרי ההגדרה הבאים של רשת משנה:
מזינים שם. לדוגמה,
netdevice-subnetאוdpdk-vpc.בוחרים Region.
מזינים טווח כתובות IP. זהו טווח ה-IPv4 הראשי של רשת המשנה.
אם בוחרים טווח שהוא לא כתובת RFC 1918, צריך לוודא שהטווח לא מתנגש עם הגדרה קיימת. מידע נוסף זמין במאמר בנושא טווחים של רשתות משנה IPv4.
גישה פרטית ל-Google: בוחרים אם להפעיל גישה פרטית ל-Google לרשת המשנה כשיוצרים אותה או מאוחר יותר על ידי עריכה שלה.
יומני תעבורה: אתם יכולים להפעיל יומני תעבורה של VPC לתת-הרשת כשאתם יוצרים אותה או מאוחר יותר על ידי עריכה שלה.
לוחצים על סיום.
בקטע Firewall rules, מתחת ל-IPv4 firewall rules, בוחרים אפס או יותר כללים מוגדרים מראש של חומת אש.
הכללים מתייחסים לתרחישי שימוש נפוצים לקישוריות למופעים. אחרי שיוצרים את הרשת, אפשר ליצור כללים משלכם לחומת האש. כל שם של כלל מוגדר מראש מתחיל בשם של רשת ה-VPC שאתם יוצרים.
בקטע כללי חומת אש של IPv4, כדי לערוך את כלל חומת האש המוגדר מראש לתעבורת נתונים נכנסת (ingress) שנקרא
allow-custom, לוחצים על עריכה.אפשר לערוך רשתות משנה, להוסיף טווחי IPv4 נוספים ולציין פרוטוקולים ויציאות.
כלל חומת האש
allow-customלא מתעדכן אוטומטית אם מוסיפים רשתות משנה נוספות בשלב מאוחר יותר. אם אתם צריכים כללים לחומת האש עבור רשתות המשנה החדשות, כדי להוסיף את הכללים, אתם צריכים לעדכן את ההגדרות של חומת האש.בקטע מצב ניתוב דינמי, עבור רשת ה-VPC. מידע נוסף זמין במאמר בנושא מצב ניתוב דינמי. אפשר לשנות את מצב הניתוב הדינמי בהמשך.
לוחצים על יצירה.
יצירת אשכול GKE עם יכולות של רשתות מרובות
הפעלת ריבוי רשתות באשכול מוסיפה לשרת ה-API של האשכול את ההגדרות הנדרשות של CustomResourceDefinitions (CRD). הוא גם פורס את network-controller-manager, שאחראי על התאמה וניהול של אובייקטים מרובי רשתות. אי אפשר לשנות את הגדרות האשכול אחרי שהוא נוצר.
יצירת אשכול GKE Autopilot עם יכולות של ריבוי רשתות
יוצרים אשכול GKE Autopilot עם יכולות של ריבוי רשתות:
gcloud container clusters create-auto CLUSTER_NAME \
--cluster-version=CLUSTER_VERSION \
--enable-multi-networking
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: שם האשכול. -
CLUSTER_VERSION: גרסת האשכול.
הדגל --enable-multi-networking מפעיל הגדרות של משאבים מותאמים אישית (CRD) של ריבוי רשתות בשרת API עבור האשכול הזה, ומפריס network-controller-manager שמכיל את התיאום ואת ניהול מחזור החיים של אובייקטים של ריבוי רשתות.
יצירת אשכול GKE Standard עם יכולות של ריבוי רשתות
gcloud
יוצרים אשכול GKE Standard עם יכולות של רשתות מרובות:
gcloud container clusters create CLUSTER_NAME \
--cluster-version=CLUSTER_VERSION \
--enable-dataplane-v2 \
--enable-ip-alias \
--enable-multi-networking
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: שם האשכול. -
CLUSTER_VERSION: גרסת האשכול.
הפקודה הזו כוללת את הדגלים הבאים:
-
--enable-multi-networking:מאפשר הגדרות של משאבים מותאמים אישית (CRD) של ריבוי רשתות בשרת ה-API של האשכול הזה, ומבצע פריסה של network-controller-manager שמכיל את התיאום ואת ניהול מחזור החיים של אובייקטים של ריבוי רשתות. -
--enable-dataplane-v2:מפעיל את GKE Dataplane V2. הדגל הזה נדרש כדי להפעיל רשתות מרובות.
המסוף
- נכנסים לדף Create a Kubernetes cluster במסוף Google Cloud .
- מגדירים את אשכול Standard. מידע נוסף זמין במאמרים בנושא יצירת אשכול אזורי או יצירת אשכול אזורי. במהלך יצירת האשכול, בוחרים את הרשת המתאימה ואת תת-הרשת של הצומת.
- בחלונית הניווט, בקטע Cluster, לוחצים על Networking.
- מסמנים את התיבה Enable Dataplane V2 (הפעלת Dataplane V2).
- בוחרים באפשרות הפעלת ריבוי רשתות.
- לוחצים על יצירה.
יצירת מאגר צמתים ב-GKE Standard שמחובר לרשתות VPC נוספות
יוצרים מאגר צמתים שכולל צמתים שמחוברים לרשת הצמתים (VPC ורשת משנה) ולרשת ה-Pod (טווח משני) שנוצרו במאמר יצירת רשת Pod.
כדי ליצור את מאגר הצמתים החדש ולשייך אותו לרשתות הנוספות באשכול GKE:
gcloud
gcloud container node-pools create POOL_NAME \
--cluster=CLUSTER_NAME \
--additional-node-network network=NETWORK_NAME,subnetwork=SUBNET_NAME \
--additional-pod-network subnetwork=subnet-dp,pod-ipv4-range=POD_IP_RANGE,max-pods-per-node=NUMBER_OF_PODS \
--additional-node-network network=highperformance,subnetwork=subnet-highperf
מחליפים את מה שכתוב בשדות הבאים:
-
POOL_NAMEבשם של מאגר הצמתים החדש. -
CLUSTER_NAMEבשם של האשכול הקיים שאליו רוצים להוסיף את מאגר הצמתים. -
NETWORK_NAMEעם שם הרשת שאליה רוצים לצרף את הצמתים של מאגר הצמתים. -
SUBNET_NAMEעם השם של רשת המשנה בתוך הרשת שבה רוצים להשתמש עבור הצמתים. POD_IP_RANGEטווח כתובות ה-IP של ה-Pod בתוך תת-הרשת.NUMBER_OF_PODSמספר הפודים המקסימלי לכל צומת.
הפקודה הזו כוללת את הדגלים הבאים:
-
--additional-node-network: הגדרת פרטים של ממשק הרשת הנוסף, הרשת ורשת המשנה. הפרמטר הזה משמש לציון רשתות הצמתים לחיבור לצמתים של מאגר הצמתים. מציינים את הפרמטר הזה כשרוצים להתחבר ל-VPC אחר. אם לא מציינים את הפרמטר הזה, נעשה שימוש ב-VPC שמוגדר כברירת מחדל ומשויך לאשכול. ברשתות מסוגLayer 3, צריך לציין את הדגלadditional-pod-networkשמגדיר את רשת ה-Pod, שנחשפת בתוך אשכול GKE כאובייקטNetwork. כשמשתמשים בדגל--additional-node-network, צריך לספק רשת ותת-רשת כפרמטרים חובה. חשוב להפריד בין ערכי הרשת והרשת המשנית באמצעות פסיק, ולהימנע משימוש ברווחים. -
--additional-pod-network: מציין את הפרטים של הטווח המשני שישמש את רשת הפודים. הפרמטר הזה לא נדרש אם משתמשים ברשת מסוגDevice. הארגומנט הזה מציין את ערכי המפתח הבאים:subnetwork, pod-ipv4-rangeו-max-pods-per-node. כשמשתמשים ב---additional-pod-network, צריך לציין את הערכיםpod-ipv4-rangeו-max-pods-per-node, מופרדים בפסיקים וללא רווחים.-
subnetwork: מקשר בין רשת הצמתים לרשת ה-Pod. הרשת המשנה היא אופציונלית. אם לא מציינים את רשת ה-Pod הנוספת, היא משויכת לרשת המשנה שמוגדרת כברירת מחדל ומסופקת במהלך יצירת האשכול. -
--max-pods-per-node: צריך לציין אתmax-pods-per-node, והוא חייב להיות חזקה של 2. הערך המינימלי הוא 4. הערך שלmax-pods-per-nodeלא יכול להיות גדול מהערך שלmax-pods-per-nodeבמאגר הצמתים.
-
המסוף
נכנסים לדף Google Kubernetes Engine במסוף Google Cloud .
בחלונית הניווט, לוחצים על אשכולות.
בקטע Kubernetes clusters (אשכולות Kubernetes), לוחצים על האשכול שיצרתם.
בחלק העליון של הדף, כדי ליצור את מאגר הצמתים, לוחצים על add_box Add Node Pool (הוספת מאגר צמתים).
בקטע פרטי מאגר צמתים, ממלאים את הפרטים הבאים:
- מזינים שם למאגר הצמתים.
- מזינים את מספר הצמתים שרוצים ליצור במאגר הצמתים.
בחלונית הניווט, בקטע Node Pools (מאגרי צמתים), לוחצים על Nodes (צמתים).
- ברשימה הנפתחת סוג התמונה בוחרים את תמונת הצומת מערכת הפעלה שמותאמת לקונטיינרים עם containerd (cos_containerd).
כשיוצרים מכונה וירטואלית, בוחרים סוג מכונה מתוך משפחת מכונות שקובעת את המשאבים שזמינים למכונה הווירטואלית. לדוגמה, סוג מכונה כמו
e2-standard-4מכיל 4 vCPU, ולכן יכול לתמוך בעד 4 VPC בסך הכול. יש כמה משפחות מכונות שאפשר לבחור מביניהן, וכל משפחת מכונות מאורגנת בנוסף לסדרות מכונות ולסוגי מכונות מוגדרים מראש או בהתאמה אישית בכל סדרה. החיוב על כל סוג מכונה מתבצע באופן שונה. מידע נוסף זמין בגיליון התמחור של סוגי המכונות.בחלונית הניווט, בוחרים באפשרות Networking (רשת).
בקטע Node Networking (רשת צמתים), מציינים את המספר המקסימלי של Pods לכל צומת. בקטע Node Networks (רשתות צמתים) מוצגת רשת ה-VPC שנעשה בה שימוש ליצירת האשכול. צריך להגדיר רשתות צמתים נוספות שמתאימות לרשתות VPC ולסוגי מכשירים שהוגדרו בעבר.
יצירת שיוך של מאגר צמתים:
- למכשיר מסוג
Layer 3:- בקטע Node Networks (רשתות צמתים), לוחצים על ADD A NODE NETWORK (הוספת רשת צמתים).
- מהרשימה הנפתחת של הרשת, בוחרים את ה-VPC שתומך במכשיר מסוג Layer 3.
- בוחרים את רשת המשנה שנוצרה עבור
Layer 3VPC. - בקטע טווח כתובות IP של Pod של כינוי, לוחצים על הוספת טווח כתובות IP של Pod.
- בוחרים את רשת המשנה המשנית ומציינים את המספר המקסימלי של יחידות Pod לכל צומת.
- לוחצים על סיום.
- למכשירים מסוג
Netdeviceו-DPDK:- בקטע Node Networks (רשתות צמתים), לוחצים על ADD A NODE NETWORK (הוספת רשת צמתים).
- מהרשימה הנפתחת של הרשת, בוחרים את ה-VPC שתומך במכשירים מסוג
NetdeviceאוDPDK. - בוחרים את רשת המשנה שנוצרה עבור
NetdeviceאוDPDKVPC. - לוחצים על סיום.
- למכשיר מסוג
לוחצים על יצירה.
הערות:
- אם מציינים כמה רשתות פודים נוספות באותה רשת צמתים, הן צריכות להיות באותה רשת משנה.
- אי אפשר להפנות לאותו טווח משני של רשת משנה כמה פעמים.
דוגמה
בדוגמה הבאה נוצר מאגר צמתים בשם pool-multi-net שמצורפות אליו שתי רשתות נוספות לצמתים, datapalane (רשת מסוג Layer 3) ו-highperformance (רשת מסוג netdevice). בדוגמה הזו מניחים שכבר יצרתם אשכול GKE בשם cluster-1:
gcloud container node-pools create pool-multi-net \
--project my-project \
--cluster cluster-1 \
--location us-central1-c \
--additional-node-network network=dataplane,subnetwork=subnet-dp \
--additional-pod-network subnetwork=subnet-dp,pod-ipv4-range=sec-range-blue,max-pods-per-node=8 \
--additional-node-network network=highperformance,subnetwork=subnet-highperf
כדי לציין עוד ממשקי רשת של צומת ושל Pod, מגדירים את הפרמטרים --additional-node-network ו---additional-pod-network כמה פעמים, כמו בדוגמה הבאה:
--additional-node-network network=dataplane,subnetwork=subnet-dp \
--additional-pod-network subnetwork=subnet-dp,pod-ipv4-range=sec-range-blue,max-pods-per-node=8 \
--additional-pod-network subnetwork=subnet-dp,pod-ipv4-range=sec-range-green,max-pods-per-node=8 \
--additional-node-network network=managementdataplane,subnetwork=subnet-mp \
--additional-pod-network subnetwork=subnet-mp,pod-ipv4-range=sec-range-red,max-pods-per-node=4
כדי לציין רשתות Pod נוספות ישירות בממשק ה-VPC הראשי של מאגר הצמתים, כמו בדוגמה הבאה:
--additional-pod-network subnetwork=subnet-def,pod-ipv4-range=sec-range-multinet,max-pods-per-node=8
יצירת רשת Pod
הגדרת רשתות ה-Pod שה-Pods יקבלו אליהן גישה על ידי הגדרת אובייקטים של Kubernetes וקישור שלהם למשאבי Compute Engine המתאימים, כמו רשתות VPC, רשתות משנה וטווחים משניים.
כדי ליצור רשת של Pod, צריך להגדיר את אובייקטי ה-CRD של הרשת באשכול.
הגדרה של רשת Layer 3 VPC
YAML
ברשת ה-VPC Layer 3, יוצרים את האובייקטים Network ו-GKENetworkParamSet:
שומרים את קובץ המניפסט לדוגמה הבא בשם
blue-network.yaml:apiVersion: networking.gke.io/v1 kind: Network metadata: name: blue-network spec: type: "L3" parametersRef: group: networking.gke.io kind: GKENetworkParamSet name: "l3-vpc"המניפסט מגדיר משאב
Networkבשםblue-networkמהסוגLayer 3. האובייקטNetworkמפנה לאובייקטGKENetworkParamSetשנקראl3-vpc, שמשייך רשת למשאבי Compute Engine.מחילים את המניפסט על האשכול:
kubectl apply -f blue-network.yamlשומרים את קובץ המניפסט הבא בשם
l3-vpc.yaml:apiVersion: networking.gke.io/v1 kind: GKENetworkParamSet metadata: name: "l3-vpc" spec: vpc: "l3-vpc" vpcSubnet: "subnet-dp" podIPv4Ranges: rangeNames: - "sec-range-blue"במניפסט הזה מוגדר אובייקט
GKENetworkParamSetבשםl3-vpcעל ידי הגדרת שם ה-VPC כ-l3-vpc, שם רשת המשנה כ-subnet-dpוטווח כתובות ה-IPv4 המשני של ה-Pods כ-sec-range-blue.מחילים את המניפסט על האשכול:
kubectl apply -f l3-vpc.yaml
המסוף
נכנסים לדף Google Kubernetes Engine במסוף Google Cloud .
בחלונית הניווט, לוחצים על כלי לשיפור התפקוד של הרשת.
בראש הדף, לוחצים על add_box יצירה כדי ליצור את רשת ה-Pod.
בקטע לפני שמתחילים, בודקים את הפרטים.
לוחצים על הבא: מיקום רשת ה-POD.
בקטע Pod network location, בתפריט הנפתח Cluster, בוחרים את אשכול GKE שבו מופעלת רשת מרובה ו-GKE Dataplane V2.
לוחצים על הבא: הפניה לרשת VPC.
בקטע VPC network reference, בתפריט הנפתח VPC network reference, בוחרים את רשת ה-VPC שמשמשת ל-Pods עם כמה כרטיסי רשת
Layer 3.לוחצים על הבא: סוג רשת ה-POD.
בקטע Pod network type (סוג רשת ה-Pod), בוחרים באפשרות L3 ומזינים את Pod network name (שם רשת ה-Pod).
לוחצים על הבא: טווח משני של רשת POD.
בקטע Pod network secondary range, מזינים את Secondary range.
לוחצים על הבא: נתיבי רשת POD.
בקטע Pod network routes (נתיבי רשת של פודים), כדי להגדיר Custom routes (נתיבים מותאמים אישית), לוחצים על ADD ROUTE (הוספת נתיב).
לוחצים על יצירת רשת של פודים.
הגדרת רשת DPDK
YAML
עבור DPDK VPC, יוצרים אובייקטים של Network ו-GKENetworkParamSet.
שומרים את קובץ המניפסט לדוגמה הבא בשם
dpdk-network.yaml:apiVersion: networking.gke.io/v1 kind: Network metadata: name: dpdk-network spec: type: "Device" parametersRef: group: networking.gke.io kind: GKENetworkParamSet name: "dpdk"המניפסט הזה מגדיר משאב
Networkבשםdpdk-networkעם סוג שלDevice. המשאבNetworkמפנה לאובייקטGKENetworkParamSetשנקראdpdkלצורך ההגדרה שלו.מחילים את המניפסט על האשכול:
kubectl apply -f dpdk-network.yamlעבור אובייקט
GKENetworkParamSet, שומרים את המניפסט הבא כ-dpdk.yaml:apiVersion: networking.gke.io/v1 kind: GKENetworkParamSet metadata: name: "dpdk" spec: vpc: "dpdk" vpcSubnet: "subnet-dpdk" deviceMode: "DPDK-VFIO"במניפסט הזה מוגדר אובייקט
GKENetworkParamSetבשםdpdk, השם של ה-VPC מוגדר כ-dpdk, השם של רשת המשנה מוגדר כ-subnet-dpdkוהשם של deviceMode מוגדר כ-DPDK-VFIO.מחילים את המניפסט על האשכול:
kubectl apply -f dpdk-network.yaml
המסוף
נכנסים לדף Google Kubernetes Engine במסוף Google Cloud .
בחלונית הניווט, לוחצים על כלי לשיפור התפקוד של הרשת.
בראש הדף, לוחצים על add_box יצירה כדי ליצור את רשת ה-Pod.
בקטע לפני שמתחילים, בודקים את הפרטים.
לוחצים על הבא: מיקום רשת ה-POD.
בקטע Pod network location, בתפריט הנפתח Cluster, בוחרים את אשכול GKE שבו מופעלת רשת מרובה ו-GKE Dataplane V2.
לוחצים על הבא: הפניה לרשת VPC.
בקטע VPC network reference (הפניה לרשת VPC), בתפריט הנפתח VPC network reference (הפניה לרשת VPC), בוחרים את רשת ה-VPC שמשמשת ל-Pods של dpdk multinic.
לוחצים על הבא: סוג רשת ה-POD.
בקטע Pod network type (סוג רשת ה-Pod), בוחרים באפשרות DPDK-VFIO (Device) (מכשיר) ומזינים את Pod network name (שם רשת ה-Pod).
לוחצים על הבא: טווח משני של רשת POD. הקטע 'טווח משני של רשת הפודים' לא יהיה זמין
לוחצים על הבא: נתיבי רשת POD. בקטע Pod network routes (מסלולי רשת של פודים), בוחרים באפשרות ADD ROUTE (הוספת מסלול) כדי להגדיר מסלולים מותאמים אישית.
לוחצים על יצירת רשת של פודים.
הגדרת רשת netdevice
ברשת ה-VPC netdevice, יוצרים אובייקטים מסוג Network ו-GKENetworkParamSet.
YAML
שומרים את קובץ המניפסט לדוגמה הבא בשם
netdevice-network.yaml:apiVersion: networking.gke.io/v1 kind: Network metadata: name: netdevice-network spec: type: "Device" parametersRef: group: networking.gke.io kind: GKENetworkParamSet name: "netdevice"המניפסט הזה מגדיר משאב
Networkבשםnetdevice-networkעם סוגDevice. הוא מפנה לאובייקטGKENetworkParamSetבשםnetdevice.מחילים את המניפסט על האשכול:
kubectl apply -f netdevice-network.yamlשומרים את קובץ המניפסט הבא בשם
netdevice.yaml:apiVersion: networking.gke.io/v1 kind: GKENetworkParamSet metadata: name: netdevice spec: vpc: netdevice vpcSubnet: subnet-netdevice deviceMode: NetDeviceבמניפסט הזה מוגדר משאב
GKENetworkParamSetבשםnetdevice, מוגדר שם ה-VPC כ-netdevice, שם רשת המשנה כ-subnet-netdevice, ומצב המכשיר מוגדר כ-NetDevice.מחילים את המניפסט על האשכול:
kubectl apply -f netdevice.yaml
המסוף
נכנסים לדף Google Kubernetes Engine במסוף Google Cloud .
בחלונית הניווט, לוחצים על כלי לשיפור התפקוד של הרשת.
בראש הדף, לוחצים על add_box יצירה כדי ליצור את רשת ה-Pod.
בקטע לפני שמתחילים, בודקים את הפרטים.
לוחצים על הבא: מיקום רשת ה-POD.
בקטע Pod network location, בתפריט הנפתח Cluster, בוחרים את אשכול GKE שבו מופעלת רשת מרובה ו-GKE Dataplane V2.
לוחצים על הבא: הפניה לרשת VPC.
בקטע VPC network reference, בתפריט הנפתח VPC network reference, בוחרים את רשת ה-VPC שמשמשת ל-Pods של netdevice multinic.
לוחצים על הבא: סוג רשת ה-POD.
בקטע סוג רשת ה-Pod, בוחרים באפשרות NetDevice (Device) ומזינים את Pod network name.
לוחצים על הבא: טווח משני של רשת POD. הקטע 'טווח משני של רשת הפודים' לא יהיה זמין
לוחצים על הבא: נתיבי רשת POD. בקטע Pod network routes (נתיבי רשת של Pod), כדי להגדיר נתיבים מותאמים אישית, בוחרים באפשרות ADD ROUTE (הוספת נתיב).
לוחצים על יצירת רשת של פודים.
הגדרת נתיבי רשת
הגדרת נתיב ברשת מאפשרת להגדיר נתיבים מותאמים אישית לרשת ספציפית, שמוגדרים ב-Pods כדי להפנות את התעבורה לממשק המתאים בתוך ה-Pod.
YAML
שומרים את קובץ המניפסט הבא בשם
red-network.yaml:apiVersion: networking.gke.io/v1 kind: Network metadata: name: red-network spec: type: "L3" parametersRef: group: networking.gke.io kind: GKENetworkParamSet name: "management" routes: - to: "10.0.2.0/28"במניפסט הזה מוגדר משאב Network בשם
red-networkעם סוג שלLayer 3ומסלול מותאם אישית '10.0.2.0/28' דרך ממשק הרשת הזה.מחילים את המניפסט על האשכול:
kubectl apply -f red-network.yaml
המסוף
נכנסים לדף כלי לשיפור התפקוד של הרשת במסוף Google Cloud .
לוחצים על יצירה.
בוחרים אשכול שבו מופעלת תכונת הרישות המרובה.
מגדירים את העדפות הרשת.
לוחצים על יצירת רשת Pod.
הפניה אל Network שהוכנו
בהגדרת עומס העבודה, מציינים הפניה לאובייקט Kubernetes Network שהוכן באמצעות Kubernetes API.
חיבור של Pod לרשתות ספציפיות
כדי לחבר את ה-Pods לרשתות שצוינו, צריך לכלול את השמות של אובייקטים Network כהערות בתוך הגדרת ה-Pod. חשוב לכלול בהערות גם את default Network וגם את חבילות הערוצים הנוספות שנבחרו כדי ליצור את החיבורים.
שומרים את קובץ המניפסט לדוגמה הבא בשם
sample-l3-pod.yaml:apiVersion: v1 kind: Pod metadata: name: sample-l3-pod annotations: networking.gke.io/default-interface: 'eth0' networking.gke.io/interfaces: | [ {"interfaceName":"eth0","network":"default"}, {"interfaceName":"eth1","network":"blue-network"} ] spec: containers: - name: sample-l3-pod image: busybox command: ["sleep", "10m"] ports: - containerPort: 80 restartPolicy: Alwaysקובץ המניפסט הזה יוצר Pod בשם
sample-l3-podעם שני ממשקי רשת,eth0ו-eth1, שמשויכים לרשתותdefaultו-blue-network, בהתאמה.מחילים את המניפסט על האשכול:
kubectl apply -f sample-l3-pod.yaml
חיבור של Pod למספר רשתות
שומרים את קובץ המניפסט לדוגמה הבא בשם
sample-l3-netdevice-pod.yaml:apiVersion: v1 kind: Pod metadata: name: sample-l3-netdevice-pod annotations: networking.gke.io/default-interface: 'eth0' networking.gke.io/interfaces: | [ {"interfaceName":"eth0","network":"default"}, {"interfaceName":"eth1","network":"blue-network"}, {"interfaceName":"eth2","network":"netdevice-network"} ] spec: containers: - name: sample-l3-netdevice-pod image: busybox command: ["sleep", "10m"] ports: - containerPort: 80 restartPolicy: Alwaysהמניפסט הזה יוצר Pod בשם
sample-l3-netdevice-podעם שלוש ממשקי רשת,eth0,eth1ו-eth2שמשויכים לרשתותdefault,blue-networkו-netdevice, בהתאמה.מחילים את המניפסט על האשכול:
kubectl apply -f sample-l3-netdevice-pod.yaml
אפשר להשתמש באותה הערה בכל ReplicaSet (Deployment או DaemonSet) בקטע ההערות של התבנית.
דוגמה להגדרה של Pod עם כמה ממשקים:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0@if9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc noqueue state UP group default
link/ether 2a:92:4a:e5:da:35 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 10.60.45.4/24 brd 10.60.45.255 scope global eth0
valid_lft forever preferred_lft forever
10: eth1@if11: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc noqueue state UP group default qlen 1000
link/ether ba:f0:4d:eb:e8:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.16.1.2/32 scope global eth1
valid_lft forever preferred_lft forever
אימות
- חשוב לוודא שאתם יוצרים אשכולות עם
--enable-multi-networkingרק אם--enable-dataplane-v2מופעל. - מוודאים שכל מאגרי הצמתים באשכול מריצים תמונות של מערכת הפעלה שמותאמת לקונטיינרים בזמן יצירת האשכול ומאגר הצמתים.
- מוודאים שמאגרי הצמתים נוצרו עם
--additional-node-networkאו עם--additional-pod-networkרק אם הופעלה רשת מרובה באשכול. - מוודאים שאותה רשת משנה לא מצוינת פעמיים כארגומנט
--additional-node-networkלמאגר צמתים. - מוודאים שאותו טווח משני לא מצוין כארגומנט
--additional-pod-networkלמאגר צמתים. - צריך לפעול בהתאם למגבלות הגודל שצוינו לאובייקטים ברשת, תוך התחשבות במספר המקסימלי של הצמתים, קבוצות ה-Pod וכתובות ה-IP שמותרים.
- מוודאים שיש רק אובייקט
GKENetworkParamSetאחד שמפנה לתת-רשת ולטווח משני מסוימים. - מוודאים שכל אובייקט רשת מפנה לאובייקט
GKENetworkParamSetשונה. - מוודאים שאובייקט הרשת, אם הוא נוצר עם רשת משנה ספציפית עם
Devicenetwork, לא נמצא בשימוש באותו צומת עם רשת אחרת עם טווח משני. אפשר לאמת את זה רק בזמן הריצה. - מוודאים שלטווחים המשניים השונים שהוקצו למאגרי הצמתים אין כתובות IP חופפות.
פתרון בעיות בפרמטרים של כמה רשתות ב-GKE
כשיוצרים אשכול ומאגר צמתים, Google Cloud מיושמות בדיקות מסוימות כדי לוודא שמותרים רק פרמטרים תקפים של ריבוי רשתות. כך מוודאים שהרשת מוגדרת בצורה נכונה עבור האשכול.
החל מגרסה 1.32 של GKE ואילך, נדרש רק אם יש רשת DPDK-VFIO בצומת.high-perf-config-daemon כדי לבדוק את high-perf-config-daemon, מוודאים שתווית הצומת cloud.google.com/run-high-perf-config-daemons: "true" מופיעה. היעדר התוספים הנדרשים או תוויות הצמתים לסוג הרשת הספציפי עשוי להצביע על הגדרה לא מלאה או שגויה.
אם לא הצלחתם ליצור עומסי עבודה מרובי-רשתות, תוכלו לבדוק את הסטטוס של ה-Pod ואת האירועים כדי לקבל מידע נוסף:
kubectl describe pods samplepod
הפלט אמור להיראות כך:
Name: samplepod
Namespace: default
Status: Running
IP: 192.168.6.130
IPs:
IP: 192.168.6.130
...
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal NotTriggerScaleUp 9s cluster-autoscaler pod didn't trigger scale-up:
Warning FailedScheduling 8s (x2 over 9s) default-scheduler 0/1 nodes are available: 1 Insufficient networking.gke.io.networks/my-net.IP. preemption: 0/1 nodes are available: 1 No preemption victims found for incoming pod
אלה הסיבות הכלליות לכשל ביצירת Pod:
- התזמון של ה-Pod נכשל כי הדרישות של משאבי ריבוי רשתות לא מתקיימות
- הזיהוי של הרשתות שצוינו נכשל
פתרון בעיות ביצירת רשתות Kubernetes
אחרי שיוצרים רשת בהצלחה, הצמתים שאמורה להיות להם גישה לרשת שהוגדרה מסומנים בהערה network-status.
כדי לראות את ההערות, מריצים את הפקודה הבאה:
kubectl describe node NODE_NAME
מחליפים את NODE_NAME בשם הצומת.
הפלט אמור להיראות כך:
networking.gke.io/network-status: [{"name":"default"},{"name":"dp-network"}]
בפלט מפורטת כל רשת שזמינה בצומת. אם סטטוס הרשת הצפוי לא מוצג בצומת, מבצעים את הפעולות הבאות:
בודקים אם לצומת יש גישה לרשת
אם הרשת לא מופיעה בהערה network-status של הצומת:
- מוודאים שהצומת הוא חלק ממאגר שהוגדר לריבוי רשתות.
- בודקים את הממשקים של הצומת כדי לראות אם יש לו ממשק לרשת שמגדירים.
- אם חסר צומת עם network-status ויש לו רק ממשק רשת אחד, עדיין צריך ליצור מאגר צמתים עם ריבוי רשתות מופעל.
- אם הצומת מכיל את הממשק של הרשת שאתם מגדירים, אבל הוא לא מופיע בהערה של סטטוס הרשת, בדקו את המשאבים
Networkו-GKENetworkParamSet(GNP).
כדאי לעיין במקורות המידע בנושא Network וGKENetworkParamSet
הסטטוס של שני מקורות המידע Network ו-GKENetworkParamSet (GNP) כולל שדה תנאים לדיווח על שגיאות בהגדרה. מומלץ לבדוק קודם את GNP, כי הוא לא מסתמך על משאב אחר כדי להיות תקף.
כדי לבדוק את השדה conditions, מריצים את הפקודה הבאה:
kubectl get gkenetworkparamsets GNP_NAME -o yaml
מחליפים את GNP_NAME בשם של משאב GKENetworkParamSet.
אם התנאי Ready שווה ל-true, ההגדרה תקינה והפלט ייראה כך:
apiVersion: networking.gke.io/v1
kind: GKENetworkParamSet
...
spec:
podIPv4Ranges:
rangeNames:
- sec-range-blue
vpc: dataplane
vpcSubnet: subnet-dp
status:
conditions:
- lastTransitionTime: "2023-06-26T17:38:04Z"
message: ""
reason: GNPReady
status: "True"
type: Ready
networkName: dp-network
podCIDRs:
cidrBlocks:
- 172.16.1.0/24
אם התנאי Ready שווה ל-false, הפלט יציג את הסיבה וייראה כך:
apiVersion: networking.gke.io/v1
kind: GKENetworkParamSet
...
spec:
podIPv4Ranges:
rangeNames:
- sec-range-blue
vpc: dataplane
vpcSubnet: subnet-nonexist
status:
conditions:
- lastTransitionTime: "2023-06-26T17:37:57Z"
message: 'subnet: subnet-nonexist not found in VPC: dataplane'
reason: SubnetNotFound
status: "False"
type: Ready
networkName: ""
אם מופיעה הודעה דומה, צריך לוודא שהגדרתם את ה-GNP בצורה נכונה. אם הוא כבר מוגדר, צריך לוודא שהגדרת הרשת נכונה. Google Cloud אחרי עדכון Google Cloud הגדרת הרשת, יכול להיות שתצטרכו ליצור מחדש את משאב ה-GNP כדי להפעיל סנכרון מחדש באופן ידני. המטרה היא למנוע סקר אינסופי שלGoogle CloudAPI.
אחרי שה-GNP מוכן, כדאי לעיין במשאב Network.
kubectl get networks NETWORK_NAME -o yaml
מחליפים את NETWORK_NAME בשם של משאב Network.
הפלט של הגדרה תקינה אמור להיראות כך:
apiVersion: networking.gke.io/v1
kind: Network
...
spec:
parametersRef:
group: networking.gke.io
kind: GKENetworkParamSet
name: dp-gnp
type: L3
status:
conditions:
- lastTransitionTime: "2023-06-07T19:31:42Z"
message: ""
reason: GNPParamsReady
status: "True"
type: ParamsReady
- lastTransitionTime: "2023-06-07T19:31:51Z"
message: ""
reason: NetworkReady
status: "True"
type: Ready
-
reason: NetworkReadyמציין שהמשאב Network מוגדר בצורה נכונה.reason: NetworkReadyלא מרמז שהמשאב ברשת זמין בהכרח בצומת ספציפי או נמצא בשימוש פעיל. - אם יש הגדרה שגויה או שגיאה, השדה
reasonבתנאי מציין את הסיבה המדויקת לבעיה. במקרים כאלה, צריך לשנות את ההגדרה בהתאם. - GKE מאכלס את השדה ParamsReady אם השדה parametersRef מוגדר למשאב
GKENetworkParamSetשקיים באשכול. אם ציינתםGKENetworkParamSettype parametersRef והתנאי לא מופיע, ודאו שהשם, הסוג והקבוצה תואמים למשאב GNP שקיים באשכול.