עדכוני הגדרות למודרניזציה

במסמך הזה מתוארים עדכוני ההגדרות שאולי תצטרכו לבצע ב-Cloud Service Mesh המנוהל לפני שתעדכנו את הרשת למישור הבקרה TRAFFIC_DIRECTOR ממישור הבקרה ISTIOD.

מידע נוסף על תהליך העבודה של המודרניזציה זמין בדף מודרניזציה של מישור הבקרה המנוהל.

העברה של סודות מ-Istio ל-multicluster_mode

אין תמיכה בסודות מרובי-אשכולות כשמשתמשים במישור הבקרה TRAFFIC_DIRECTOR באשכול. במאמר הזה נסביר איך לעבור משימוש בסודות של Istio multi-cluster לשימוש ב-multicluster_mode.

סקירה כללית על ערכי Istio Secret לעומת API הצהרתי

גילוי נקודות קצה בקוד פתוח של Istio multi-cluster מתבצע באמצעות istioctl או כלים אחרים ליצירת Kubernetes Secret באשכול. הסוד הזה מאפשר לאשכול לאזן את עומס התעבורה לאשכול אחר ברשת. מישור הבקרה ISTIOD קורא את הסוד הזה ומתחיל לנתב את התעבורה לאותו אשכול אחר.

ל-Cloud Service Mesh יש API מבוסס-הצהרות לשליטה בתעבורה בין כמה אשכולות, במקום ליצור ישירות סודות של Istio. ממשק ה-API הזה מתייחס לסודות של Istio כפרט הטמעה, והוא אמין יותר מיצירה ידנית של סודות של Istio. תכונות עתידיות של Cloud Service Mesh יסתמכו על ה-API הדקלרטיבי, ולא תוכלו להשתמש בתכונות החדשות האלה עם סודות Istio ישירות. ממשק ה-API הדקלרטיבי הוא הדרך היחידה שנתמכת.

אם אתם משתמשים ב-Istio Secrets, מומלץ לעבור לשימוש ב-API הדקלרטיבי בהקדם האפשרי. שימו לב: ההגדרה multicluster_mode מכוונת כל אשכול להפנות תנועה ישירה לכל אשכול אחר ברשת. שימוש בסודות מאפשר הגדרה גמישה יותר, שבה אפשר להגדיר לכל אשכול לאיזה אשכול אחר ברשת הוא צריך להפנות תנועה. רשימה מלאה של ההבדלים בין התכונות הנתמכות של ממשק ה-API הדקלרטיבי לבין סודות של Istio מופיעה במאמר תכונות נתמכות באמצעות ממשקי Istio API.

מעבר מ-Istio secrets ל-declarative API

אם הקציתם את Cloud Service Mesh באמצעות ניהול אוטומטי עם fleet feature API, אתם לא צריכים לפעול לפי ההוראות האלה. השלבים האלה רלוונטיים רק אם הצטרפתם ל-asmcli --managed.

שימו לב: התהליך הזה משנה סודות שמפנים לאשכול. במהלך התהליך הזה, נקודות הקצה יוסרו ואז יתווספו מחדש. בין הסרת נקודות הקצה לבין הוספת נקודות הקצה, התנועה תחזור באופן זמני לניתוב מקומי במקום לאיזון עומסים לאשכולות אחרים. מידע נוסף זמין בבעיה ב-GitHub.

כדי לעבור משימוש בסודות של Istio ל-API הצהרתי, צריך לבצע את השלבים הבאים. מבצעים את השלבים הבאים בו-זמנית או ברצף מהיר:

  1. מפעילים את ה-API הדקלרטיבי לכל אשכול בצי שרוצים להפעיל בו גילוי של נקודות קצה מרובות אשכולות. לשם כך, מגדירים את multicluster_mode=connected. שימו לב: אם לא רוצים שהאשכול יהיה ניתן לגילוי, צריך להגדיר במפורש את הערך multicluster_mode=disconnected.

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

     kubectl patch configmap/asm-options -n istio-system --type merge -p '{"data":{"multicluster_mode":"connected"}}'
    

    כדי להשבית את גילוי נקודות הקצה באשכול, מריצים את הפקודה הבאה:

     kubectl patch configmap/asm-options -n istio-system --type merge -p '{"data":{"multicluster_mode":"disconnected"}}'
    
  2. מוחקים את הסודות הישנים.

    אחרי שמגדירים את multicluster_mode=connected באשכולות, לכל אשכול ייווצר סוד חדש לכל אשכול אחר שגם בו מוגדר multicluster_mode=connected. הסוד ממוקם במרחב השמות istio-system והפורמט שלו הוא:

    istio-remote-secret-projects-PROJECT_NAME-locations-LOCATION-memberships-MEMBERSHIPS
    

    בנוסף, תתווסף לכל סוד התווית istio.io/owned-by: mesh.googleapis.com.

    אחרי שיוצרים את הסודות החדשים, אפשר למחוק באופן ידני את הסודות שנוצרו באמצעות istioctl create-remote-secret:

    kubectl delete secret SECRET_NAME -n istio-system
    

אחרי ההעברה, בודקים את מדדי הבקשות כדי לוודא שהן מנותבות כמו שציפיתם.