בדף הזה מוסבר איך להגדיר טווחי כתובות IPv4 נוספים של Pod לאשכולות המותאמים ל-VPC, ואיך לציין טווחי כתובות IPv4 בהתאמה אישית של Pod למאגרי צמתים של אשכול המותאם ל-VPC.
טווח כתובות ה-IPv4 של הפודים באשכולות מקוריים של VPC תמיד מגיע מטווחים משניים של כתובות IPv4 של רשתות משנה. כשיוצרים אשכול חדש, מקצים לאשכול טווח ברירת מחדל של כתובות IPv4 של Pod.
- באשכולות Autopilot ובאשכולות רגילים, אפשר להגדיר אשכול לשימוש בטווחים נוספים של כתובות IPv4 של Pod. GKE משתמש בטווחי הכתובות הנוספים האלה של Pod IPv4 בשביל כתובות Pod IPv4 בצמתים שנוצרו במאגרי צמתים עתידיים.
- במערכות Standard, אפשר ליצור מאגרי צמתים שכל אחד מהם משתמש בטווח מותאם אישית של כתובות IPv4 משניות של רשת משנה, עבור כתובות ה-IPv4 של ה-Pod.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את המשימות הבאות:
- מפעילים את ממשק ה-API של Google Kubernetes Engine. הפעלת Google Kubernetes Engine API
- כדי להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז לאתחל את ה-CLI של gcloud. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה
gcloud components updateכדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.
- מוודאים שיש לכם את התפקיד אדמין רשת Compute בממשק של ניהול הזהויות והרשאות הגישה (IAM) בפרויקט שמכיל את רשת המשנה של האשכול. הדרישה הזו חלה על יצירת טווחי כתובות IPv4 משניים חדשים של רשתות משנה. כשמשתמשים ב-VPC משותף, צריך לתאם עם אדמין הרשת בפרויקט המארח של ה-VPC המשותף.
- כברירת מחדל, כל האשכולות החדשים הם אשכולות מקוריים של VPC. אם אתם צריכים אשכול חדש, צרו אשכול Autopilot. אשכולות מבוססי-נתיבים לא תומכים בטווחי כתובות IPv4 נוספים של Pod או בטווחי כתובות IPv4 בהתאמה אישית של Pod במאגר צמתים.
- בודקים את הקטע השלבים הבאים.
יצירת טווח כתובות IPv4 משני חדש ברשת המשנה
כדי ליצור טווח חדש של כתובות IPv4 משניות של רשת משנה, משתמשים במסוףCloud de Confiance או ב-Google Cloud CLI. כל תת-רשת תומכת בעד 170 טווחי כתובות IPv4 משניים. מידע נוסף זמין במאמר עריכת טווחי IPv4 משניים במסמכי התיעוד של VPC.
המסוף
נכנסים לדף VPC networks במסוף Cloud de Confiance .
ברשימת רשתות VPC, בוחרים את הרשת שרוצים להרחיב.
ברשימה Subnets, בוחרים את רשת המשנה הרצויה.
לוחצים על Edit.
לוחצים על הוספת טווח IP.
בשדה Subnet range name, מזינים את השם של טווח כתובות ה-IPv4 המשני של רשת המשנה החדשה. לדוגמה,
pod-range-2.בשדה Secondary IP range, מזינים את טווח כתובות ה-IPv4 בפורמט CIDR. לדוגמה,
10.2.204.0/22.לוחצים על Save.
gcloud
gcloud compute networks subnets update SUBNET_NAME \
--region=REGION \
--add-secondary-ranges=SECONDARY_RANGE_NAME=SECONDARY_RANGE_CIDR
מחליפים את מה שכתוב בשדות הבאים:
-
SUBNET_NAME: השם של תת-הרשת של האשכול (אותה תת-רשת שהוקצתה לאשכול כשהוא נוצר). -
REGION: האזור של רשת המשנה של האשכול. האזור של רשת המשנה של האשכול הוא האזור שמכיל את אשכול GKE. -
SECONDARY_RANGE_NAME: השם של טווח כתובות IPv4 משני חדש של רשת המשנה, שישמש כטווח כתובות IPv4 נוסף של הפוד בשביל האשכול. לדוגמה,pod-range-2. -
SECONDARY_RANGE_CIDR: ה-CIDR שבו ישתמש טווח כתובות ה-IPv4 המשני של רשת המשנה החדשה. לדוגמה,10.2.204.0/22.
אפשר להוסיף שני טווחים משניים חדשים של כתובות IPv4 לתת-רשת, או יותר, על ידי ציון זוגות נוספים של SECONDARY_RANGE_NAME=SECONDARY_RANGE_CIDR, מופרדים בפסיקים, אחרי הדגל --add-secondary-ranges.
הקצאת טווחי כתובות IPv4 נוספים של Pod לאשכול
אפשר להקצות טווחי כתובות IPv4 נוספים של Pod ברמת האשכול, רלוונטי לצמתים חדשים שנוצרו במאגרי צמתים חדשים שיוצרים באשכול. כדי להקצות ל-Cluster טווחי כתובות IPv4 נוספים של Pod, צריך קודם ליצור טווח כתובות IPv4 משני חדש של רשת משנה.
הוספה של טווחי כתובות IPv4 חדשים של Pod לאשכול לא הופכת אותם לזמינים באופן אוטומטי למאגרי צמתים קיימים. ההתנהגות הזו מתרחשת כי טווח כתובות ה-IP של מאגר צמתים הוא הגדרה שלא ניתנת לשינוי, שמוגדרת כשיוצרים את מאגר הצמתים. מאגר צמתים קיים מודע רק לטווח המקורי שלו. כדי להשתמש בטווח חדש של כתובות IPv4 של Pod, צריך ליצור מאגר צמתים חדש ולהקצות לו את הטווח החדש של כתובות IPv4 של Pod.
אפשר להקצות לאשכול טווחי כתובות IPv4 נוספים של Pods באמצעות:
- אשכולות Autopilot שפועלים ב-GKE בגרסה 1.26 ואילך
אשכולות רגילים
המסוף
נכנסים לדף Google Kubernetes Engine במסוף Cloud de Confiance .
לצד האשכול שרוצים לערוך, לוחצים על more_vert Actions (פעולות) ואז על edit Edit (עריכה).
בקטע Networking, לצד Cluster Pod IPv4 ranges (additional), לוחצים על edit Edit.
בתיבת הדו-שיח Edit additional Cluster Pod IPv4 ranges, לוחצים על Pod secondary CIDR ranges ובוחרים את השמות של טווח אחד או יותר של טווחי CIDR משניים של כתובות IPv4 של רשתות משנה קיימות ברשת המשנה של האשכול. אם אין טווחי כתובות IPv4 משניים נוספים של רשתות משנה, קודם צריך ליצור טווח כתובות IPv4 משני חדש של רשת משנה ואז לחזור על השלבים האלה.
לוחצים על שמירת השינויים.
gcloud
מעדכנים את האשכול באמצעות הדגל
--additional-pod-ipv4-ranges:gcloud container clusters update CLUSTER_NAME \ --additional-pod-ipv4-ranges=SECONDARY_RANGE_NAME \ --location=COMPUTE_LOCATIONמחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: שם האשכול. -
SECONDARY_RANGE_NAME: השמות של טווחי כתובות IPv4 משניים קיימים של רשתות משנה ברשת המשנה של האשכול, מופרדים באמצעות פסיקים. אם אין טווחים משניים של כתובות IPv4 ברשת המשנה, קודם צריך ליצור טווח משני חדש של כתובות IPv4 ברשת המשנה. -
COMPUTE_LOCATION: המיקום של Compute Engine של האשכול.
-
חיפוש טווחי כתובות IPv4 של Pod באשכול
כדי לחפש את טווח כתובות ה-IPv4 של ה-Pod שמוגדר כברירת מחדל באשכול, וכל טווח כתובות IPv4 נוסף של ה-Pod שהוקצה לאשכול, משתמשים בפקודה הבאה:
gcloud container clusters describe CLUSTER_NAME \
--location=COMPUTE_LOCATION
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: שם האשכול. -
COMPUTE_LOCATION: המיקום של Compute Engine של האשכול.
הפלט אמור להיראות כך, כולל IPAllocationPolicy של האשכול:
ipAllocationPolicy:
clusterSecondaryRangeName: cluster-pods
clusterIpv4CidrBlock: 10.10.0.0/23
additionalPodRangesConfig:
podRangeNames:
- pod-range-1
- pod-range-2
where:
-
clusterSecondaryRangeName: השם של טווח כתובות ה-IPv4 המשני של רשת המשנה שמשמש כטווח כתובות ה-IPv4 של הפוד שמוגדר כברירת מחדל באשכול, שהוגדר כשנוצר האשכול. -
clusterIpv4CidrBlock: ה-CIDR של טווח כתובות ה-IPv4 המשני של תת-הרשת לכתובות ה-IPv4 של הפודים, שמוגדר כשיוצרים את האשכול. -
additionalPodRangesConfig.podRangeNames: רשימה של טווחים נוספים של כתובות IPv4 משניות של רשתות משנה שהוקצו לכתובות IPv4 של Pod.
מאגר צמתים עם טווחי כתובות IPv4 מותאמים אישית של Pod
באשכולות רגילים שמופעלת בהם גרסה GKE 1.20.4-gke.500 ומעלה, אפשר להקצות טווח כתובות IPv4 מותאם אישית של Pod למאגר צמתים חדש באמצעות אחת מהשיטות הבאות:
טווח כתובות IPv4 מותאם אישית של Pod במאגר צמתים שמנוהל על ידי GKE: באפשרות הזו, יוצרים מאגר צמתים חדש ומספקים ל-GKE את המידע שנדרש כדי ליצור טווח כתובות IPv4 משני חדש של רשת משנה, ברשת המשנה של האשכול. לכל צומת חדש שנוצר במאגר הצמתים החדש מוקצה טווח של כתובות IP וירטואליות לכתובות ה-IPv4 של ה-Pod שלו, וכל טווח של כתובות IP וירטואליות מגיע מטווח כתובות ה-IPv4 המשני של תת-הרשת החדשה שנוצרת על ידי GKE. אפשר להשתמש באפשרות הזו רק אם האשכול ורשת ה-VPC שמכילה את רשת המשנה של האשכול נמצאים באותו פרויקט.
טווח כתובות IPv4 מותאם אישית של Pod במאגר צמתים בניהול המשתמש: באפשרות הזו, יוצרים מאגר צמתים חדש שבו GKE משתמש בטווח כתובות IPv4 משני של רשת משנה קיימת. לכל צומת חדש שנוצר במאגר הצמתים החדש מוקצה טווח כתובות IP של כינוי לכתובות ה-IPv4 של ה-Pod, וכל טווח כתובות IP של כינוי מגיע מטווח כתובות ה-IPv4 המשני של תת-הרשת, שאתם מנחים את GKE להשתמש בו. אם האשכול שלכם נמצא בפרויקט שירות של VPC משותף, ותת-הרשת של האשכול נמצאת ברשת ה-VPC המשותפת של הפרויקט המארח, אתם צריכים להשתמש באפשרות הזו.
טווח כתובות ה-IPv4 המותאם אישית של Pod במאגר צמתים מבטל את כל טווחי כתובות ה-IPv4 של Pod שמוגדרים ברמת האשכול, כולל טווחי כתובות IPv4 נוספים של Pod שמוקצים לאשכול. טווחים מותאמים אישית של כתובות IPv4 של Pod שמוקצים למאגרי צמתים נקראים גם CIDR של כמה Pod לא רציפים.
דוגמה לטווח כתובות IPv4 של Pod בהתאמה אישית במאגר צמתים
בתרשים הבא מוצג אשכול מקורי של VPC עם טווחים של כתובות IPv4 של פודים בניהול המשתמש:
בתרשים שלמעלה:
- המספר המקסימלי של Pods לכל צומת לכל מאגר צמתים באשכול הוגדר ל-
64. כדי לאפשר עד 64 תרמילים לכל צומת, מערכת GKE יוצרת כל צומת עם טווח של/25כתובות IP של כינוי, ומספקת128כתובות IPv4 של תרמילים לכל צומת. - טווח ברירת המחדל של כתובות ה-IPv4 של Pod באשכול הוא
/24. מכיוון שכל צומת דורש/25לכתובות IPv4 של Pod, טווח כתובות ה-IPv4 של Pod שמוגדר כברירת מחדל באשכול תומך רק בשני צמתים. - כדי לתמוך בצמתים נוספים, אדמין של אשכול יצר מאגר צמתים נוסף, תוך שמירה על
64מספר הפודים המקסימלי לכל צומת. מאגר הצמתים הנוסף משתמש בטווח כתובות IPv4 מותאם אישית של Pod ב-/20, שתומך ב-32 צמתים נוספים.
טווח כתובות IPv4 מותאם אישית של Pod במאגר צמתים שמנוהל על ידי GKE
כדי ליצור מאגר צמתים עם טווח כתובות IPv4 מותאם אישית של Pods שמנוהל על ידי GKE, משתמשים ב-CLI של gcloud או ב-GKE API באופן הבא:
gcloud
gcloud container node-pools create POOL_NAME \
--cluster=CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--create-pod-ipv4-range=name=SECONDARY_RANGE_NAME,range=CIDR_OR_NETMASK
מחליפים את מה שכתוב בשדות הבאים:
-
POOL_NAME: השם של מאגר הצמתים החדש. -
CLUSTER_NAME: שם האשכול. -
COMPUTE_LOCATION: המיקום של Compute Engine של האשכול. -
SECONDARY_RANGE_NAME: השם של טווח כתובות ה-IPv4 המשני של רשת המשנה שנוצר על ידי GKE. אם לא מציינים אתname=SECONDARY_RANGE_NAME, GKE יוצר באופן אוטומטי את השם של טווח כתובות ה-IPv4 המשני של תת-הרשת החדשה. -
CIDR_OR_NETMASK: טווח כתובות ה-IPv4 של ה-Pod, בפורמט CIDR (לדוגמה,10.12.4.0/20) או כמסיכת תת-רשת (לדוגמה,/20).- אם תספקו רק מסכה של רשת משנה, GKE ינסה ליצור טווח כתובות IPv4 משני חדש של רשת משנה שלא מתנגש עם טווחי כתובות IPv4 קיימים של רשת משנה ברשת ה-VPC שמכילה את רשת המשנה של האשכול.
- אם משמיטים את
range=CIDR_OR_NETMASK, GKE מנסה ליצור טווח כתובות IPv4 משני חדש של רשת משנה/14שלא מתנגש עם טווחי כתובות IPv4 קיימים של רשת משנה ברשת ה-VPC שמכילה את רשת המשנה של האשכול.
API
"nodePool": {
"name": "POOL_NAME",
...
"networkConfig": {
"createPodRange": true,
"podRange": "SECONDARY_RANGE_NAME",
"podIpv4CidrBlock": "CIDR_OR_NETMASK"
}
}
מחליפים את מה שכתוב בשדות הבאים:
-
POOL_NAME: השם של מאגר הצמתים החדש. -
SECONDARY_RANGE_NAME: אופציונלי – השם של טווח כתובות ה-IPv4 המשני של רשת המשנה שנוצר על ידי GKE. אם משתמשים בערך""עבורnetworkConfig.podRangeאו אם משמיטים את הפרמטרpodRangeבבקשה, GKE יוצר באופן אוטומטי את השם של טווח כתובות ה-IPv4 המשני של רשת המשנה החדשה. -
CIDR_OR_NETMASK: טווח כתובות ה-IPv4 של ה-Pod, בפורמט CIDR (לדוגמה,10.12.4.0/20) או כמסיכת תת-רשת (לדוגמה,/20).- אם מספקים רק מסכה של רשת משנה, GKE מנסה ליצור טווח כתובות IPv4 משניות חדש ברשת המשנה, שלא מתנגש עם טווחי כתובות IPv4 קיימים ברשת ה-VPC שמכילה את רשת המשנה של האשכול.
- אם משתמשים בערך
""בשבילnetworkConfig.podIpv4CidrBlock, GKE מנסה ליצור טווח כתובות IPv4 משני חדש של רשת משנה/14שלא מתנגש עם טווחי כתובות IPv4 קיימים של רשת משנה ברשת ה-VPC שמכילה את רשת המשנה של האשכול.
טווח כתובות IPv4 מותאם אישית של Pod במאגר צמתים בניהול המשתמש
כדי ליצור מאגר צמתים עם טווח כתובות IPv4 של Pod בהתאמה אישית בניהול משתמש, משתמשים ב-CLI של gcloud או ב-GKE API באופן הבא:
gcloud
gcloud container node-pools create POOL_NAME \
--cluster=CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--pod-ipv4-range SECONDARY_RANGE_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
POOL_NAME: השם של מאגר הצמתים החדש. -
CLUSTER_NAME: שם האשכול. COMPUTE_LOCATION: המיקום של Compute Engine לאשכול.-
SECONDARY_RANGE_NAME: השם של טווח כתובות IPv4 משני של רשת משנה קיימת ברשת המשנה של האשכול. במידת הצורך, קודם יוצרים טווח כתובות IPv4 משני חדש לרשת המשנה.
API
"nodePool": {
"name": "POOL_NAME",
...
"networkConfig": {
"createPodRange": false,
"podRange": "SECONDARY_RANGE_NAME"
}
}
מחליפים את מה שכתוב בשדות הבאים:
-
POOL_NAME: השם של מאגר הצמתים החדש. -
SECONDARY_RANGE_NAME: השם של טווח כתובות IPv4 משני של רשת משנה קיימת ברשת המשנה של האשכול. במידת הצורך, קודם יוצרים טווח כתובות IPv4 משני חדש לרשת המשנה.
חיפוש טווחי כתובות IPv4 של Pod במאגר צמתים
כדי לחפש את טווח כתובות ה-IPv4 של Pod במאגר צמתים, משתמשים בפקודה הבאה:
gcloud container node-pools describe POOL_NAME \
--cluster=CLUSTER_NAME \
--location=COMPUTE_LOCATION
מחליפים את מה שכתוב בשדות הבאים:
-
POOL_NAME: השם של מאגר הצמתים. -
CLUSTER_NAME: שם האשכול. -
COMPUTE_LOCATION: המיקום של Compute Engine של האשכול.
הפלט דומה לפלט הבא, שכולל את NodeNetworkConfig של מאגר הצמתים:
networkConfig:
podRange: podrange
podIpv4CidrBlock: 192.168.0.0/18
where:
-
podRange: השם של טווח כתובות ה-IPv4 המשני של רשת המשנה לכתובות ה-IPv4 של ה-Pod במאגר הצמתים. -
podIpv4CidrBlock: ה-CIDR של טווח כתובות ה-IPv4 המשני של רשת המשנה לכתובות ה-IPv4 של הפודים במאגר הצמתים.
אם מאגר הצמתים משתמש בטווח כתובות IPv4 מותאם אישית של פודים, הערכים של podRange ושל podIpv4CidrBlock שונים מטווח כתובות IPv4 של פודים שמוגדר כברירת מחדל באשכול.
שלבי המשך
אחרי שמקצים טווחי כתובות IPv4 נוספים של Pods לאשכול, או מגדירים טווחי כתובות IPv4 בהתאמה אישית של Pods למאגר צמתים, GKE מעדכן את כלל חומת האש של VPC gke-[cluster-name]-[cluster-hash]-all שנוצר באופן אוטומטי, כך שטווח המקור שלו כולל את כל כתובות ה-IPv4 של ה-Pods.
יכול להיות שתצטרכו גם:
מעדכנים את ההגדרה של סוכן הסתרת ה-IP באשכול. הקבוצה האפקטיבית של CIDR שאינם מסוג masquerade חייבת לכלול את כל טווחי כתובות ה-IPv4 של Pod שמשמשים את האשכול (ואת מאגרי הצמתים שלו). מידע נוסף זמין במאמרים בדיקת הסטטוס של
ip-masq-agentוהגדרה ופריסה שלip-masq-agent.בודקים את ההגדרות של האשכול
NetworkPolicy. יכול להיות שתצטרכו לעדכן מאפיינים שלipBlockשמפנים לטווחי כתובות IPv4 של Pod.פתרון בעיות בקישוריות באמצעות VPC Flow Logs ויומנים של כללי חומת אש.
המאמרים הבאים
- מידע נוסף על אשכולות המותאמים ל-VPC
- סקירה כללית על רשת GKE
- מידע נוסף על אופטימיזציה של הקצאת כתובות IP
- מידע נוסף על תובנות לגבי ניצול כתובות IP ב-GKE