בדף הזה מוסבר איך להגדיר טווחי כתובות IPv4 נוספים של Pod באשכול שמותאם ל-VPC, ואיך להגדיר טווחי כתובות IPv4 מותאמים אישית של Pod למאגרי צמתים באשכול שמותאם ל-VPC.
טווח כתובות ה-IPv4 של ה-Pod באשכולות מקוריים של VPC תמיד מגיע מטווחים משניים של כתובות IPv4 של רשתות משנה. כשיוצרים אשכול חדש, מקצים לאשכול טווח כתובות IPv4 של Pod כברירת מחדל.
- במערכות Autopilot ובאשכולות רגילים, אפשר להגדיר אשכול שישתמש בטווחים נוספים של כתובות IPv4 של Pod. GKE משתמש בטווחי כתובות IPv4 נוספים של פודים לכתובות IPv4 של פודים בצמתים שנוצרו במאגרי צמתים עתידיים.
- במערכות Standard, אפשר ליצור מאגרי צמתים שכל אחד מהם משתמש בטווח כתובות IPv4 משני של רשת משנה בהתאמה אישית עבור כתובות ה-IPv4 של ה-Pod.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את הפעולות הבאות:
- מפעילים את ממשק Google Kubernetes Engine API. הפעלת Google Kubernetes Engine API
- אם רוצים להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז להפעיל את ה-CLI של gcloud. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה
gcloud components updateכדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.
- מוודאים שיש לכם את התפקיד אדמין רשת Compute בממשק של ניהול הזהויות והרשאות הגישה (IAM) בפרויקט שמכיל את רשת המשנה של האשכול. הפעולה הזו נדרשת כדי ליצור טווחים חדשים של כתובות IPv4 משניות ברשת המשנה. כשמשתמשים ב-VPC משותף, צריך לתאם עם אדמין הרשת בפרויקט המארח של ה-VPC המשותף.
- כברירת מחדל, כל האשכולות החדשים הם אשכולות שמותאמים ל-VPC. אם אתם צריכים חדש, צרו אשכול Autopilot. קלאסטרים מבוססי-ניתוב לא תומכים בטווחים נוספים של כתובות IPv4 של פודים או בטווחים מותאמים אישית של כתובות IPv4 של פודים במאגר צמתים.
- בודקים את הקטע שלבים להמשך.
יצירת טווח כתובות IPv4 משני חדש של רשת משנה
כדי ליצור טווח כתובות IPv4 משניות חדש ברשת משנה, משתמשים במסוףGoogle Cloud או ב-Google Cloud CLI. כל רשת משנה תומכת בעד 170 טווחי כתובות IPv4 משניות. מידע נוסף זמין במאמר בנושא עריכת טווחי IPv4 משניים במסמכי התיעוד של VPC.
המסוף
נכנסים לדף VPC networks במסוף Google Cloud .
ברשימה VPC networks, בוחרים את הרשת שרוצים להרחיב.
ברשימה Subnets, בוחרים את רשת המשנה הרצויה.
לוחצים על Edit.
לוחצים על הוספת טווח IP.
בקטע שם טווח רשת המשנה, מזינים את השם של טווח כתובות ה-IPv4 המשני החדש של רשת המשנה. לדוגמה,
pod-range-2.בקטע טווח כתובות IP משני, מזינים את טווח כתובות ה-IPv4 בפורמט CIDR. לדוגמה,
10.2.204.0/22.לוחצים על Save.
gcloud
gcloud compute networks subnets update SUBNET_NAME \
--region=REGION \
--secondary-range=POD_RANGE_NAME=SECONDARY_RANGE
מחליפים את מה שכתוב בשדות הבאים:
-
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 של Pod לאשכול נתמכת על ידי:
- אשכולות Autopilot שמופעלת בהם גרסה 1.26 ואילך של GKE
אשכולות רגילים
המסוף
נכנסים לדף Google Kubernetes Engine במסוף Google Cloud .
לצד האוסף שרוצים לערוך, לוחצים על more_vert פעולות ואז על edit עריכה.
בקטע Networking, לצד Cluster Pod IPv4 ranges (additional), לוחצים על edit Edit.
בתיבת הדו-שיח Edit additional Cluster Pod IPv4 ranges (עריכת טווחי כתובות IPv4 נוספים של Cluster Pod), לוחצים על Pod secondary CIDR ranges (טווחי CIDR משניים של Pod) ובוחרים את השמות של טווחי כתובות 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 של הפוד שמוגדר כברירת מחדל באשכול, וכל טווח נוסף של כתובות IPv4 של פוד שהוקצה לאשכול, משתמשים בפקודה הבאה:
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 של הפודים בהתאמה אישית במאגר הצמתים מבטל את כל טווחי כתובות ה-IPv4 של הפודים שהוגדרו ברמת האשכול, כולל טווחי כתובות ה-IPv4 הנוספים של הפודים שהוקצו לאשכול. טווחים מותאמים אישית של כתובות IPv4 של Pod שהוקצו למאגרי צמתים נקראים גם CIDR של כמה Pod לא רציפים.
דוגמה לטווח כתובות IPv4 של Pod בהתאמה אישית במאגר צמתים
בתרשים הבא מוצג אשכול המותאם ל-VPC עם טווחים של כתובות IPv4 של Pod בניהול המשתמש:
בתרשים שלמעלה:
- המספר המקסימלי של Pods לכל צומת בכל מאגר צמתים באשכול הוגדר ל-
64. כדי לאפשר עד 64 פודים לכל צומת, GKE יוצר כל צומת עם/25טווח כתובות IP של כינוי, ומספק128כתובות IPv4 של פוד לכל צומת. - טווח כתובות ה-IPv4 של הפודים באשכול שמוגדר כברירת מחדל הוא
/24. מכיוון שכל צומת דורש/25לכתובות IPv4 של Pod, טווח כתובות ה-IPv4 של Pod שמוגדר כברירת מחדל באשכול תומך רק בשני צמתים. - כדי לתמוך בצמתים נוספים, אדמין של אשכול יצר מאגר צמתים נוסף, תוך שמירה על
64מספר הפודים המקסימלי לכל צומת. מאגר הצמתים הנוסף משתמש ב/20טווח כתובות IPv4 מותאם אישית של פודים, שתומך ב-32 צמתים נוספים.
טווח כתובות IPv4 מותאם אישית של Pod במאגר צמתים שמנוהל על ידי GKE
כדי ליצור מאגר צמתים עם טווח כתובות IPv4 של Pod בהתאמה אישית שמנוהל על ידי 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 של הפודים במאגר הצמתים. -
podIpv4CidrBlock: ה-CIDR של טווח כתובות ה-IPv4 המשני של רשת המשנה עבור כתובות ה-IPv4 של ה-Pod-ים במאגר הצמתים.
אם מאגר הצמתים משתמש בטווח כתובות IPv4 מותאם אישית של פודים, הערכים של podRange ושל podIpv4CidrBlock שונים מטווח כתובות IPv4 של פודים שמוגדר כברירת מחדל באשכול.
השלבים הבאים
אחרי שמקצים ל-Pod טווחים נוספים של כתובות IPv4 באשכול או מגדירים טווחים מותאמים אישית של כתובות IPv4 של Pod במאגר צמתים, GKE מעדכן את כלל חומת האש של ה-VPC שנוצר באופן אוטומטי gke-[cluster-name]-[cluster-hash]-all כך שטווח המקור שלו יכלול את כל כתובות ה-IPv4 של ה-Pod.
יכול להיות שתצטרכו גם:
מעדכנים את ההגדרה של הסוכן להסתרת כתובת ה-IP באשכול. הקבוצה האפקטיבית של CIDR שאינם מסוג masquerade חייבת לכלול את כל טווחי כתובות ה-IPv4 של ה-Pod שמשמשים את האשכול (ואת מאגרי הצמתים שלו). מידע נוסף זמין במאמרים בדיקת הסטטוס של
ip-masq-agentוהגדרה ופריסה שלip-masq-agent.בודקים את ההגדרה של האשכול
NetworkPolicy. יכול להיות שתצטרכו לעדכן מאפייניipBlockשמפנים לטווחי כתובות IPv4 של Pod.פתרון בעיות בקישוריות באמצעות VPC Flow Logs וFirewall Rules Logging.
המאמרים הבאים
- מידע נוסף על אשכולות המותאמים ל-VPC
- קראו את סקירה כללית על רשת GKE.
- מידע נוסף על אופטימיזציה של הקצאת כתובות IP
- מידע נוסף על תובנות לגבי ניצול כתובות IP ב-GKE