הוספת טווחים של כתובות IPv4 של Pod

בדף הזה מוסבר איך להגדיר טווחי כתובות 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.

המסוף

  1. נכנסים לדף VPC networks במסוף Google Cloud .

    מעבר לרשתות VPC

  2. ברשימה VPC networks, בוחרים את הרשת שרוצים להרחיב.

  3. ברשימה Subnets, בוחרים את רשת המשנה הרצויה.

  4. לוחצים על Edit.

  5. לוחצים על הוספת טווח IP.

  6. בקטע שם טווח רשת המשנה, מזינים את השם של טווח כתובות ה-IPv4 המשני החדש של רשת המשנה. לדוגמה, pod-range-2.

  7. בקטע טווח כתובות IP משני, מזינים את טווח כתובות ה-IPv4 בפורמט CIDR. לדוגמה, 10.2.204.0/22.

  8. לוחצים על 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
  • אשכולות רגילים

המסוף

  1. נכנסים לדף Google Kubernetes Engine במסוף Google Cloud .

    מעבר אל Google Kubernetes Engine

  2. לצד האוסף שרוצים לערוך, לוחצים על פעולות ואז על עריכה.

  3. בקטע Networking, לצד Cluster Pod IPv4 ranges (additional), לוחצים על Edit.

  4. בתיבת הדו-שיח Edit additional Cluster Pod IPv4 ranges (עריכת טווחי כתובות IPv4 נוספים של Cluster Pod), לוחצים על Pod secondary CIDR ranges (טווחי CIDR משניים של Pod) ובוחרים את השמות של טווחי כתובות IPv4 משניים קיימים ברשת המשנה של האשכול. אם אין טווחי כתובות IPv4 משניות נוספים של רשתות משנה, קודם יוצרים טווח כתובות IPv4 משני חדש של רשת משנה ואז חוזרים על השלבים האלה.

  5. לוחצים על שמירת השינויים.

gcloud

  1. מעדכנים את האשכול באמצעות הדגל --additional-pod-ipv4-ranges:

    gcloud container clusters update CLUSTER_NAME \
        --additional-pod-ipv4-ranges=SECONDARY_RANGE_NAME \
        --location=COMPUTE_LOCATION
    

    מחליפים את מה שכתוב בשדות הבאים:

חיפוש טווחי IPv4 של Pod באשכול

כדי לחפש את טווח כתובות ה-IPv4 של הפוד שמוגדר כברירת מחדל באשכול, וכל טווח נוסף של כתובות IPv4 של פוד שהוקצה לאשכול, משתמשים בפקודה הבאה:

gcloud container clusters describe CLUSTER_NAME \
    --location=COMPUTE_LOCATION

מחליפים את מה שכתוב בשדות הבאים:

הפלט אמור להיראות כך, כולל 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 בניהול המשתמש:

הוספת מאגר צמתים לאשכול עם טווח כתובות IP משני של Pod שמוצה, באמצעות CIDR רב-Pod לא רציף
תרשים: דוגמה לטווח כתובות 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

מחליפים את מה שכתוב בשדות הבאים:

API

"nodePool": {
  "name": "POOL_NAME",
  ...
  "networkConfig": {
    "createPodRange": false,
    "podRange": "SECONDARY_RANGE_NAME"
    }
}

מחליפים את מה שכתוב בשדות הבאים:

חיפוש טווחי 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.

יכול להיות שתצטרכו גם:

המאמרים הבאים