הסרת כתובות IP סטטיות ממקבץ

במאמר הזה מוסבר איך להסיר כתובות IP סטטיות מאשכול ב-Google Distributed Cloud.

כשיוצרים אשכול שמשתמש בכתובות IP סטטיות לצמתים, מציינים קבוצה של כתובות IP בקובץ של טווח כתובות IP. אם תבינו בהמשך שציינתם יותר כתובות IP ממה שצריך, תוכלו להסיר חלק מכתובות ה-IP מהאשכול.

הסרת כתובות IP מאשכול משתמשים

מוודאים שיישארו מספיק כתובות IP אחרי ההסרה. צריך כתובת IP אחת לכל צומת באשכול, ועוד כתובת IP אחת שתשמש לצומת זמני במהלך שדרוגים. לדוגמה, אם יש לכם שלושה צמתי אשכול, תצטרכו ארבע כתובות IP שיישארו אחרי ההסרה.

איך לעשות את זה?

  1. לכל אשכול משתמשים משויך יש משאב מותאם אישית מסוג OnPremUserCluster באשכול הניהול. באשכול האדמין, עורכים את המשאב המותאם אישית OnPremUserCluster באשכול המשתמשים:

    kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG edit onpremusercluster USER_CLUSTER_NAME \
        --namespace USER_CLUSTER_NAME-gke-onprem-mgmt
    

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

    • ADMIN_CLUSTER_KUBECONFIG: הנתיב לקובץ kubeconfig של אשכול האדמין
    • USER_CLUSTER_NAME: השם של אשכול המשתמשים
  2. הסרת כתובות ה-IP שנבחרו מהקטע ipBlocks:

    network:
      ...
      ipMode:
        ipBlocks:
        - gateway: 198.51.100.254
          ips:
          - hostname: user-host1
            ip: 198.51.100.1
          - hostname: user-host2
            ip: 198.51.100.2
          - hostname: user-host3
            ip: 198.51.100.3
          - hostname: user-host4
            ip: 198.51.100.4
          - hostname: user-host5
            ip: 198.51.100.5
          netmask: 255.255.255.0
        type: static
    
  3. סוגרים את סשן העריכה.

  4. בקטגוריית המשתמשים, מציגים את כל אובייקטי המכונה במרחב השמות שמוגדר כברירת מחדל:

    kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get machines --output yaml
    
  5. מוחקים את כל אובייקטי המכונות שמשתמשים באחת מכתובות ה-IP שהוסרו. לדוגמה, נניח שהסרתם את הכתובת 198.51.100.1, וגיליתם שאובייקט המכונה my-node-pool-1234 משתמש בכתובת הזו:

    Name:         my-node-pool-1234
    Namespace:    default
    Labels:       kubernetes.googleapis.com/cluster-name=my-cluster
                  kubernetes.googleapis.com/cluster-namespace=default
                  ...
    Annotations:  ...
                  vm-ip-address: 198.51.100.1
    

    לאחר מכן צריך להסיר את אובייקט המכונה my-node-pool-1234.

    kubectl --kubeconfig USER_CLUSTER_KUBECONFIG delete machine my-node-pool-1234
    
  6. אחרי כמה דקות, צופים בכתובות של צומתי האשכול:

    kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get nodes --output wide
    
  7. מוודאים שכתובות ה-IP שהוסרו לא מופיעות בפלט. לדוגמה:

    myhost2   Ready ... 198.51.100.2
    myhost3   Ready ... 198.51.100.3
    myhost4   Ready ... 198.51.100.4
    

הסרת כתובות IP מאשכול אדמין

מוודאים שיישארו מספיק כתובות IP אחרי ההסרה. צריך כתובת IP אחת לצומת של מישור הבקרה של אשכול האדמין, שתי כתובות לצמתים של תוספים וכתובת IP נוספת לשימוש בצומת זמני במהלך שדרוגים. בנוסף, לכל אשכול משתמשים משויך, צריך כתובת אחת או שלוש למישור הבקרה של אשכול המשתמשים. כל אשכול משתמשים עם זמינות גבוהה (HA) דורש שלושה צמתים באשכול האדמין עבור מישור הבקרה של אשכול המשתמשים. כל אשכול משתמשים שאינו HA דורש צומת אחד באשכול האדמין עבור מישור הבקרה של אשכול המשתמשים.

לדוגמה, נניח שקלאסטר האדמין משויך לקלאסטר משתמש אחד עם זמינות גבוהה ולקלאסטר משתמש אחד ללא זמינות גבוהה. אחרי ההסרה, צריכים להישאר לכם שמונה כתובות IP כדי להכיל את הצמתים הבאים:

  • צומת מישור הבקרה של אדמין קלאסטר
  • שני צמתים להוספה
  • שלושה צמתים למישור הבקרה של אשכול המשתמשים עם זמינות גבוהה
  • צומת אחד למישור הבקרה של אשכול משתמשים ללא זמינות גבוהה
  • צומת זמני לשימוש במהלך שדרוגים

איך לעשות את זה?

  1. קובעים את כתובת ה-IP שמשמשת לצומת של מישור הבקרה באשכול הניהול:

    kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get nodes --output wide
    

    בפלט, מחפשים את הצומת שמופיע כמישור הבקרה. חשוב לשים לב לכתובת ה-IP.

    gke-admin-master-hdn4z   Ready   control-plane,master … 198.51.100.101
    ...
    
  2. ב-admin cluster, עורכים את המשאב המותאם אישית OnPremAdminCluster:

    kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG edit onpremadmincluster --namespace kube-system
    

    מחליפים את ADMIN_CLUSTER_KUBECONFIG בנתיב של קובץ ה-kubeconfig של אשכול האדמין.

  3. הסרת כתובות ה-IP שנבחרו מהקטע ipBlocks. חשוב לוודא שלא מסירים את כתובת ה-IP שמשמשת לצומת של מישור הבקרה באשכול האדמין.

    network:
      ...
      ipMode:
        ipBlocks:
        - gateway: 198.51.100.254
          ips:
          - hostname: admin-host1
            ip: 198.51.100.101
          - hostname: admin-host2
            ip: 198.51.100.102
          - hostname: admin-host3
            ip: 198.51.100.103
          - hostname: admin-host4
            ip: 198.51.100.104
          - hostname: admin-host5
            ip: 198.51.100.105
          - hostname: admin-host6
            ip: 198.51.100.106
          - hostname: admin-host7
            ip: 198.51.100.107
          - hostname: admin-host8
            ip: 198.51.100.108
          - hostname: admin-host9
            ip: 198.51.100.109
          netmask: 255.255.255.0
        type: static
    
  4. סוגרים את סשן העריכה.

  5. בקטע 'אשכול אדמין', אפשר לראות את כל אובייקטי המכונות במרחב השמות שמוגדר כברירת מחדל:

    kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get machines --output yaml
    
  6. מוחקים את כל אובייקטי המכונות שמשתמשים באחת מכתובות ה-IP שהוסרו. לדוגמה, נניח שהסרתם את הכתובת 198.51.100.102, ואז גיליתם שאובייקט המכונה gke-admin-node- משתמש בכתובת הזו:

    Name:         gke-admin-node-5678
    Namespace:    default
    ...
    Status:
    Addresses:
    Address:       198.51.100.102
    Type:          ExternalIP
    ...
    

    לאחר מכן צריך להסיר את אובייקט המכונה gke-admin-node-5678.

    kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG delete machine gke-admin-node-5678
    
  7. מציגים את הכתובות של צומתי האשכול:

    kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get nodes --output wide
    
  8. מוודאים שכתובות ה-IP שהוסרו לא מופיעות בפלט. לדוגמה:

    gke-admin-master-hdn4z  Ready  control-plane,master  198.51.100.101
    gke-admin-node-abcd   Ready ... 198.51.100.103
    gke-admin-node-efgh   Ready ... 198.51.100.104
    my-user-cluster-ijkl  Ready ... 198.51.100.105
    my-user-cluster-mnop  Ready ... 198.51.100.106
    my-user-cluster-qrst  Ready ... 198.51.100.107
    my-user-cluster-uvwx  Ready ... 198.51.100.108