שדרוג Cloud Service Mesh
בדף הזה נסביר איך:
מריצים את הפקודה
asmcliכדי לשדרג מ-Cloud Service Mesh ל-Cloud Service Mesh 1.28.2.אפשר גם לפרוס שער כניסה.
מבצעים שדרוג גרסה ראשונית (canary) כדי להעביר את עומסי העבודה למישור הבקרה החדש.
הגרסה של Cloud Service Mesh שאפשר לשדרג ממנה משתנה בהתאם לפלטפורמה.
GKE
אפשר לשדרג ישירות ל-Cloud Service Mesh 1.28.2-asm.4 ב-Google Kubernetes Engine מהגרסאות הבאות:
1.26+
מקומי
אתם יכולים לשדרג ישירות ל-Cloud Service Mesh 1.28.2-asm.4 ב-Google Distributed Cloud (תוכנה בלבד) ל-VMware וב-Google Distributed Cloud (תוכנה בלבד) לשרת פיזי מהגרסאות הבאות:
1.26+
GKE ב-AWS
אפשר לשדרג ישירות ל-Cloud Service Mesh 1.28.2-asm.4 ב-GKE ב-AWS מהגרסאות הבאות:
1.26+
GKE ב-Azure
GKE ב-Azure תומך רק ב-Cloud Service Mesh 1.16. אין תמיכה בשדרוגים מגרסאות קודמות של Cloud Service Mesh.
Amazon EKS
אם התקנתם את Cloud Service Mesh 1.7 ב-EKS, תצטרכו להתקין את Cloud Service Mesh 1.28 באשכול חדש. שדרוגים מ-Cloud Service Mesh 1.7 ל-Cloud Service Mesh1.28 לא נתמכים.
Microsoft AKS
אם התקנתם את Cloud Service Mesh 1.7 ב-AKS, תצטרכו להתקין את Cloud Service Mesh 1.28 באשכול חדש. שדרוגים מ-Cloud Service Mesh 1.7 ל-Cloud Service Mesh1.28 לא נתמכים.
לפני שמתחילים
לפני שמתחילים, חשוב לבצע את הפעולות הבאות:
- בודקים את הדרישות המוקדמות.
- קוראים את המידע במאמר בנושא תכנון השדרוג.
- מתקינים את הכלים הנדרשים.
- הורדה
asmcli - הענקת הרשאות אדמין של אשכול
- אימות הפרויקט והאשכול.
התאמות אישיות של מישור הבקרה
אם התאמתם אישית את ההתקנה הקודמת, תצטרכו לבצע את אותן התאמות אישיות כשמשדרגים לגרסה חדשה של Cloud Service Mesh או כשמבצעים מיגרציה מ-Istio. אם התאמתם אישית את ההתקנה על ידי הוספת הדגל --set values ל-istioctl install, אתם צריכים להוסיף את ההגדרות האלה לקובץ YAML IstioOperator, שנקרא קובץ שכבת-על. מציינים את קובץ השכבה באמצעות האפשרות --custom_overlay עם שם הקובץ כשמריצים את הסקריפט. הסקריפט מעביר את קובץ השכבות לשירות istioctl install.
רשות אישורים
שינוי רשות האישורים (CA) במהלך שדרוג גורם להשבתה. במהלך השדרוג, התנועה ב-mTLS מופסקת עד שכל עומסי העבודה עוברים לשימוש במישור הבקרה החדש עם רשות האישורים החדשה.
שדרוג Cloud Service Mesh
בקטעים הבאים מוסבר איך לשדרג את Cloud Service Mesh:
אם משדרגים רשת משולבת של כמה אשכולות ב-GKE שמשתמשת ברשות אישורים של Cloud Service Mesh, מריצים את הפקודה
asmcli create-meshכדי להגדיר את הרשת המשולבת של כמה אשכולות כך שתיתן אמון בWorkload Identity של Fleet כדי לאפשר איזון עומסים בין אשכולות ללא השבתה במהלך השדרוג.מריצים את הפקודה
asmcli installכדי להתקין את Cloud Service Mesh באשכול יחיד. בקטעים הבאים מפורטות דוגמאות לשורת פקודה. הדוגמאות מכילות ארגומנטים נדרשים וגם ארגומנטים אופציונליים שיכולים להיות שימושיים. מומלץ לציין תמיד את הארגומנטoutput_dirכדי שתוכלו לאתר בקלות שערים וכלים לדוגמה, כמוistioctl. רשימת הדוגמאות מופיעה בסרגל הניווט משמאל.אופציונלי: התקנה או שדרוג של שער כניסה. כברירת מחדל,
asmcliלא מתקין אתistio-ingressgateway. מומלץ לפרוס ולנהל את רמת הבקרה ואת השערים בנפרד. אם אתם צריכים להתקין אתistio-ingressgatewayכברירת מחדל עם מישור הבקרה באשכול, צריך לכלול את הארגומנט--option legacy-default-ingressgateway.כדי להשלים את ההגדרה של Cloud Service Mesh, צריך להפעיל הוספה אוטומטית של sidecar ולפרוס או לפרוס מחדש עומסי עבודה.
הגדרת רשת מרובת אשכולות כדי לתת אמון בזהות של עומס עבודה ב-Fleet
אם אתם משדרגים רשת משולבת מרובת אשכולות ב-GKE שמשתמשת ברשות האישורים של Cloud Service Mesh כרשות האישורים, אתם צריכים להריץ את הפקודה asmcli create-mesh לפני שאתם משדרגים כל אשכול. הפקודה הזו מגדירה את רשות האישורים של Cloud Service Mesh כך שתשתמש במאגר הזהויות של עומס העבודה של ה-Fleet, FLEET_PROJECT_ID.svc.id.goog, כדומיין האמון אחרי השדרוג. הפקודה asmcli create-mesh:
- רישום כל האשכולות לאותו צי.
- הגדרת הרשת כך שתהיה מהימנה לזהות של עומס העבודה בצי.
- יוצרת סודות מרחוק.
אפשר לציין את ה-URI של כל אשכול או את הנתיב אל קובץ ה-kubeconfig.
URI של האשכול
בפקודה הבאה, מחליפים את FLEET_PROJECT_ID במזהה הפרויקט של פרויקט המארח של ה-Fleet, ואת ה-URI של האשכול בשם האשכול, באזור או באזור ובמזהה הפרויקט של כל אשכול.
./asmcli create-mesh \
FLEET_PROJECT_ID \
PROJECT_ID_1/CLUSTER_LOCATION_1/CLUSTER_NAME_1 \
PROJECT_ID_2/CLUSTER_LOCATION_2/CLUSTER_NAME_2 # \
# Add a line for each cluster in the mesh
קובץ kubeconfig
בפקודה הבאה, מחליפים את FLEET_PROJECT_ID במזהה הפרויקט של פרויקט המארח של ה-Fleet ואת PATH_TO_KUBECONFIG בנתיב לכל קובץ kubeconfig.
./asmcli create-mesh \
FLEET_PROJECT_ID \
PATH_TO_KUBECONFIG_1 \
PATH_TO_KUBECONFIG_2 # \
# Add a line for each cluster in the mesh
שדרוג עם תכונות ברירת מחדל ורשות אישורים של רשת Mesh
בקטע הזה נסביר איך להריץ את הפקודה asmcli כדי לשדרג את Cloud Service Mesh עם התכונות הנתמכות שמוגדרות כברירת מחדל בפלטפורמה שלכם, ואיך להגדיר את רשות האישורים של Cloud Service Mesh כרשות האישורים.
GKE
מריצים את הפקודה הבאה כדי לשדרג את מישור הבקרה עם תכונות ברירת מחדל ורשות אישורים של Cloud Service Mesh. מזינים את הערכים במחזיקי המקום שמופיעים.
./asmcli install \
--project_id PROJECT_ID \
--cluster_name CLUSTER_NAME \
--cluster_location CLUSTER_LOCATION \
--fleet_id FLEET_PROJECT_ID \
--output_dir DIR_PATH \
--enable_all \
--ca mesh_ca
-
--project_id,--cluster_nameו---cluster_locationמציינים את מזהה הפרויקט שבו נמצא האשכול, את שם האשכול ואת האזור או האזור של האשכול. -
--fleet_idמזהה הפרויקט של פרויקט המארח של הצי. אם לא כוללים את האפשרות הזו,asmcliמשתמש בפרויקט שבו נוצר האשכול כשרושמים את האשכול. --output_dirכוללים את האפשרות הזו כדי לציין ספרייה שבהasmcliמוריד את חבילתanthos-service-meshומחלץ את קובץ ההתקנה, שמכיל אתistioctl, דוגמאות ומניפסטים. אחרת asmcliהקבצים יורדים לספרייהtmp. אפשר לציין נתיב יחסי או נתיב מלא. משתנה הסביבה$PWDלא פועל כאן.-
--enable_allמאפשר לסקריפט:- מעניקים את הרשאות ה-IAM הנדרשות.
- מפעילים את ממשקי Google API הנדרשים.
- מגדירים תווית באשכול שמזהה את הרשת.
- רושמים את האשכול ב-Fleet אם הוא עדיין לא רשום.
--ca mesh_caשימוש ברשות האישורים של Cloud Service Mesh כרשות האישורים. שינוי רשויות אישורים במהלך שדרוג גורם להשבתה.asmcliמגדיר את רשות האישורים של Cloud Service Mesh כך שתשתמש בזהות עומס העבודה של fleet
אשכולות אחרים של GKE Enterprise
מריצים את הפקודות הבאות באשכולות אחרים של GKE Enterprise כדי לשדרג את מישור הבקרה עם תכונות ברירת מחדל ורשות אישורים של Cloud Service Mesh. מזינים את הערכים ב-placeholders שמופיעים.
מגדירים את ההקשר הנוכחי לאשכול המשתמשים:
kubectl config use-context CLUSTER_NAMEמריצים את
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca mesh_ca-
--fleet_idמזהה הפרויקט של פרויקט המארח של הצי. -
--kubeconfigהנתיב המלא לקובץkubeconfig. משתנה הסביבה$PWDלא פועל כאן. בנוסף, לא ניתן להשתמש במיקומי קבצים יחסייםkubeconfigשכוללים את התו '~'. --output_dirכוללים את האפשרות הזו כדי לציין ספרייה שבהasmcliמוריד את חבילתanthos-service-meshומחלץ את קובץ ההתקנה, שמכיל אתistioctl, דוגמאות ומניפסטים. אחרת asmcliהקבצים יורדים לספרייהtmp. אפשר לציין נתיב יחסי או נתיב מלא. משתנה הסביבה$PWDלא פועל כאן.--platform multicloudמציין שהפלטפורמה היא משהו שונה מ Google Cloud, כמו פלטפורמה מקומית או פלטפורמה מרובת עננים.-
--enable_allמאפשר לסקריפט:- מעניקים את הרשאות ה-IAM הנדרשות.
- מפעילים את ממשקי Google API הנדרשים.
- מגדירים תווית באשכול שמזהה את הרשת.
- רושמים את האשכול ב-Fleet אם הוא עדיין לא רשום.
--ca mesh_caשימוש ברשות האישורים של Cloud Service Mesh כרשות האישורים. שינוי רשויות אישורים במהלך שדרוג גורם להשבתה.asmcliמגדיר את רשות האישורים של Cloud Service Mesh כך שתשתמש בזהות עומס העבודה של fleet
-
שדרוג תכונות ברירת המחדל באמצעות שירות CA
בקטע הזה מוסבר איך להריץ את הפקודה asmcli כדי לשדרג את Cloud Service Mesh עם התכונות הנתמכות שמוגדרות כברירת מחדל לפלטפורמה שלכם, ולהפעיל את Certificate Authority Service.
GKE
מריצים את הפקודה הבאה כדי לשדרג את מישור הבקרה עם תכונות ברירת מחדל ו-Certificate Authority Service. מזינים את הערכים במחזיקי המקום שמופיעים.
./asmcli install \
--project_id PROJECT_ID \
--cluster_name CLUSTER_NAME \
--cluster_location CLUSTER_LOCATION \
--fleet_id FLEET_PROJECT_ID \
--output_dir DIR_PATH \
--enable_all \
--ca gcp_cas \
--ca_pool projects/PROJECT_NAME/locations/ca_region/caPools/CA_POOL
-
--project_id,--cluster_nameו---cluster_locationמציינים את מזהה הפרויקט שבו נמצא האשכול, את שם האשכול ואת האזור או האזור של האשכול. -
--fleet_idמזהה הפרויקט של פרויקט המארח של הצי. אם לא כוללים את האפשרות הזו,asmcliמשתמש בפרויקט שבו נוצר האשכול כשרושמים את האשכול. --output_dirכוללים את האפשרות הזו כדי לציין ספרייה שבהasmcliמוריד את חבילתanthos-service-meshומחלץ את קובץ ההתקנה, שמכיל אתistioctl, דוגמאות ומניפסטים. אחרת asmcliהקבצים יורדים לספרייהtmp. אפשר לציין נתיב יחסי או נתיב מלא. משתנה הסביבה$PWDלא פועל כאן.-
--enable_allמאפשר לסקריפט:- מעניקים את הרשאות ה-IAM הנדרשות.
- מפעילים את ממשקי Google API הנדרשים.
- מגדירים תווית באשכול שמזהה את הרשת.
- רושמים את האשכול ב-Fleet אם הוא עדיין לא רשום.
--ca gcp_casשימוש ב-Certificate Authority Service כרשות האישורים. שינוי רשויות אישורים במהלך שדרוג גורם להשבתה.asmcliמגדיר את Certificate Authority Service לשימוש בזהות עומס עבודה של צי-
--ca_poolהמזהה המלא של שירות Certificate Authority CA Pool.
מקומי
כדי לשדרג את מישור הבקרה עם תכונות ברירת מחדל ואת Certificate Authority Service, מריצים את הפקודות הבאות ב-Google Distributed Cloud (תוכנה בלבד) ל-VMware או ב-Google Distributed Cloud (תוכנה בלבד) ל-bare metal. מזינים את הערכים במחזיקי המקום שמופיעים.
מגדירים את ההקשר הנוכחי לאשכול המשתמשים:
kubectl config use-context CLUSTER_NAMEמריצים את
asmcli install:./asmcli install \ --kubeconfig KUBECONFIG_FILE \ --fleet_id FLEET_PROJECT_ID \ --output_dir DIR_PATH \ --enable_all \ --ca gcp_cas \ --platform multicloud \ --ca_pool projects/PROJECT_NAME/locations/ca_region/caPools/CA_POOL-
--fleet_idמזהה הפרויקט של פרויקט המארח של הצי. -
--kubeconfigהנתיב המלא לקובץkubeconfig. משתנה הסביבה$PWDלא פועל כאן. בנוסף, לא ניתן להשתמש במיקומי קבצים יחסייםkubeconfigשכוללים את התו '~'. --output_dirכוללים את האפשרות הזו כדי לציין ספרייה שבהasmcliמוריד את חבילתanthos-service-meshומחלץ את קובץ ההתקנה, שמכיל אתistioctl, דוגמאות ומניפסטים. אחרת asmcliהקבצים יורדים לספרייהtmp. אפשר לציין נתיב יחסי או נתיב מלא. משתנה הסביבה$PWDלא פועל כאן.--platform multicloudמציין שהפלטפורמה היא משהו שונה מ Google Cloud, כמו פלטפורמה מקומית או פלטפורמה מרובת עננים.-
--enable_allמאפשר לסקריפט:- מעניקים את הרשאות ה-IAM הנדרשות.
- מפעילים את ממשקי Google API הנדרשים.
- מגדירים תווית באשכול שמזהה את הרשת.
- רושמים את האשכול ב-Fleet אם הוא עדיין לא רשום.
--ca gcp_casשימוש ב-Certificate Authority Service כרשות האישורים. שינוי רשויות אישורים במהלך שדרוג גורם להשבתה.asmcliמגדיר את Certificate Authority Service לשימוש בזהות עומס עבודה של צי--ca_poolהמזהה המלא של מאגר רשויות האישורים ב-Certificate Authority Service.
-
שדרוג תכונות ברירת המחדל באמצעות רשות אישורים של Istio
בקטע הזה מוסבר איך להריץ את הפקודה asmcli כדי לשדרג את Cloud Service Mesh עם התכונות הנתמכות שמוגדרות כברירת מחדל לפלטפורמה שלכם, ולהפעיל את Istio CA.
GKE
מריצים את הפקודה הבאה כדי לשדרג את מישור הבקרה עם תכונות ברירת מחדל ו-Istio CA. מזינים את הערכים במשתני המיקום שמופיעים.
./asmcli install \
--project_id PROJECT_ID \
--cluster_name CLUSTER_NAME \
--cluster_location CLUSTER_LOCATION \
--fleet_id FLEET_PROJECT_ID \
--output_dir DIR_PATH \
--enable_all \
--ca citadel
-
--project_id,--cluster_nameו---cluster_locationמציינים את מזהה הפרויקט שבו נמצא האשכול, את שם האשכול ואת האזור או האזור של האשכול. -
--fleet_idמזהה הפרויקט של פרויקט המארח של הצי. אם לא כוללים את האפשרות הזו,asmcliמשתמש בפרויקט שבו נוצר האשכול כשרושמים את האשכול. --output_dirכוללים את האפשרות הזו כדי לציין ספרייה שבהasmcliמוריד את חבילתanthos-service-meshומחלץ את קובץ ההתקנה, שמכיל אתistioctl, דוגמאות ומניפסטים. אחרת asmcliהקבצים יורדים לספרייהtmp. אפשר לציין נתיב יחסי או נתיב מלא. משתנה הסביבה$PWDלא פועל כאן.-
--enable_allמאפשר לסקריפט:- מעניקים את הרשאות ה-IAM הנדרשות.
- מפעילים את ממשקי Google API הנדרשים.
- מגדירים תווית באשכול שמזהה את הרשת.
- רושמים את האשכול ב-Fleet אם הוא עדיין לא רשום.
--ca citadelשימוש ב-Istio CA. שינוי רשויות אישורים במהלך שדרוג גורם להשבתה.
מקומי
מריצים את הפקודות הבאות ב-Google Distributed Cloud (תוכנה בלבד) ל-VMware או ב-Google Distributed Cloud (תוכנה בלבד) לשרת פיזי כדי לשדרג את מישור הבקרה עם תכונות ברירת מחדל ו-Istio CA. מזינים את הערכים במחזיקי המקום שמופיעים.
מגדירים את ההקשר הנוכחי לאשכול המשתמשים:
kubectl config use-context CLUSTER_NAMEמריצים את
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --cert_chain FILE_PATH-
--fleet_idמזהה הפרויקט של פרויקט המארח של הצי. -
--kubeconfigהנתיב המלא לקובץkubeconfig. משתנה הסביבה$PWDלא פועל כאן. בנוסף, לא ניתן להשתמש במיקומי קבצים יחסייםkubeconfigשכוללים את התו '~'. --output_dirכוללים את האפשרות הזו כדי לציין ספרייה שבהasmcliמוריד את חבילתanthos-service-meshומחלץ את קובץ ההתקנה, שמכיל אתistioctl, דוגמאות ומניפסטים. אחרת asmcliהקבצים יורדים לספרייהtmp. אפשר לציין נתיב יחסי או נתיב מלא. משתנה הסביבה$PWDלא פועל כאן.--platform multicloudמציין שהפלטפורמה היא משהו שונה מ Google Cloud, כמו פלטפורמה מקומית או פלטפורמה מרובת עננים.-
--enable_allמאפשר לסקריפט:- מעניקים את הרשאות ה-IAM הנדרשות.
- מפעילים את ממשקי Google API הנדרשים.
- מגדירים תווית באשכול שמזהה את הרשת.
- רושמים את האשכול ב-Fleet אם הוא עדיין לא רשום.
--ca citadelשימוש ב-Istio CA כרשות האישורים.--ca_certאישור הביניים--ca_keyהמפתח של אישור הביניים--root_certאישור הבסיס--cert_chainשרשרת האישורים
-
AWS
מריצים את הפקודות הבאות ב-GKE ב-AWS כדי לשדרג את מישור הבקרה עם תכונות ברירת המחדל ו-Istio CA. מזינים את הערכים במחזיקי המקום שמופיעים. אתם יכולים לבחור להפעיל את Ingress עבור רשת המשנה הציבורית או רשת המשנה הפרטית.
גלוי לכולם
מגדירים את ההקשר הנוכחי לאשכול המשתמשים:
kubectl config use-context CLUSTER_NAMEמריצים את
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --cert_chain FILE_PATH-
--fleet_idמזהה הפרויקט של פרויקט המארח של הצי. -
--kubeconfigהנתיב המלא לקובץkubeconfig. משתנה הסביבה$PWDלא פועל כאן. בנוסף, לא ניתן להשתמש במיקומי קבצים יחסייםkubeconfigשכוללים את התו '~'. --output_dirכוללים את האפשרות הזו כדי לציין ספרייה שבהasmcliמוריד את חבילתanthos-service-meshומחלץ את קובץ ההתקנה, שמכיל אתistioctl, דוגמאות ומניפסטים. אחרת asmcliהקבצים יורדים לספרייהtmp. אפשר לציין נתיב יחסי או נתיב מלא. משתנה הסביבה$PWDלא פועל כאן.--platform multicloudמציין שהפלטפורמה היא משהו שונה מ Google Cloud, כמו פלטפורמה מקומית או פלטפורמה מרובת עננים.-
--enable_allמאפשר לסקריפט:- מעניקים את הרשאות ה-IAM הנדרשות.
- מפעילים את ממשקי Google API הנדרשים.
- מגדירים תווית באשכול שמזהה את הרשת.
- רושמים את האשכול ב-Fleet אם הוא עדיין לא רשום.
--ca citadelשימוש ב-Istio CA כרשות האישורים.--ca_certאישור הביניים--ca_keyהמפתח של אישור הביניים--root_certאישור הבסיס--cert_chainשרשרת האישורים
-
פרטי
מגדירים את ההקשר הנוכחי לאשכול המשתמשים:
kubectl config use-context CLUSTER_NAMEשומרים את קובץ ה-YAML הבא בקובץ בשם
istio-operator-internal-lb.yaml:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: ingressGateways: - enabled: true k8s: serviceAnnotations: service.beta.kubernetes.io/aws-load-balancer-internal: "true" name: istio-ingressgatewayמריצים את
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --cert_chain FILE_PATH --custom_overlay istio-operator-internal-lb.yaml-
--fleet_idמזהה הפרויקט של פרויקט המארח של הצי. -
--kubeconfigהנתיב המלא לקובץkubeconfig. משתנה הסביבה$PWDלא פועל כאן. בנוסף, לא ניתן להשתמש במיקומי קבצים יחסייםkubeconfigשכוללים את התו '~'. --output_dirכוללים את האפשרות הזו כדי לציין ספרייה שבהasmcliמוריד את חבילתanthos-service-meshומחלץ את קובץ ההתקנה, שמכיל אתistioctl, דוגמאות ומניפסטים. אחרת asmcliהקבצים יורדים לספרייהtmp. אפשר לציין נתיב יחסי או נתיב מלא. משתנה הסביבה$PWDלא פועל כאן.--platform multicloudמציין שהפלטפורמה היא משהו שונה מ Google Cloud, כמו פלטפורמה מקומית או פלטפורמה מרובת עננים.-
--enable_allמאפשר לסקריפט:- מעניקים את הרשאות ה-IAM הנדרשות.
- מפעילים את ממשקי Google API הנדרשים.
- מגדירים תווית באשכול שמזהה את הרשת.
- רושמים את האשכול ב-Fleet אם הוא עדיין לא רשום.
--ca citadelשימוש ב-Istio CA כרשות האישורים.--ca_certאישור הביניים--ca_keyהמפתח של אישור הביניים--root_certאישור הבסיס--cert_chainשרשרת האישורים
-
Amazon EKS
מריצים את הפקודות הבאות ב-Amazon EKS כדי לשדרג את מישור הבקרה עם תכונות ברירת המחדל ו-Istio CA. מזינים את הערכים במחזיקי המקום שמופיעים.
מגדירים את ההקשר הנוכחי לאשכול המשתמשים:
kubectl config use-context CLUSTER_NAMEמריצים את
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --cert_chain FILE_PATH-
--fleet_idמזהה הפרויקט של פרויקט המארח של הצי. -
--kubeconfigהנתיב המלא לקובץkubeconfig. משתנה הסביבה$PWDלא פועל כאן. בנוסף, לא ניתן להשתמש במיקומי קבצים יחסייםkubeconfigשכוללים את התו '~'. --output_dirכוללים את האפשרות הזו כדי לציין ספרייה שבהasmcliמוריד את חבילתanthos-service-meshומחלץ את קובץ ההתקנה, שמכיל אתistioctl, דוגמאות ומניפסטים. אחרת asmcliהקבצים יורדים לספרייהtmp. אפשר לציין נתיב יחסי או נתיב מלא. משתנה הסביבה$PWDלא פועל כאן.--platform multicloudמציין שהפלטפורמה היא משהו שונה מ Google Cloud, כמו פלטפורמה מקומית או פלטפורמה מרובת עננים.-
--enable_allמאפשר לסקריפט:- מעניקים את הרשאות ה-IAM הנדרשות.
- מפעילים את ממשקי Google API הנדרשים.
- מגדירים תווית באשכול שמזהה את הרשת.
- רושמים את האשכול ב-Fleet אם הוא עדיין לא רשום.
--ca citadelשימוש ב-Istio CA כרשות האישורים.--ca_certאישור הביניים--ca_keyהמפתח של אישור הביניים--root_certאישור הבסיס--cert_chainשרשרת האישורים
-
Microsoft AKS
מריצים את הפקודות הבאות ב-Microsoft AKS כדי לשדרג את מישור הבקרה עם תכונות ברירת מחדל ו-Istio CA. מזינים את הערכים במחזיקי המקום שמופיעים.
מגדירים את ההקשר הנוכחי לאשכול המשתמשים:
kubectl config use-context CLUSTER_NAMEמריצים את
asmcli install:HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer ./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --cert_chain FILE_PATH-
--fleet_idמזהה הפרויקט של פרויקט המארח של הצי. -
--kubeconfigהנתיב המלא לקובץkubeconfig. משתנה הסביבה$PWDלא פועל כאן. בנוסף, לא ניתן להשתמש במיקומי קבצים יחסייםkubeconfigשכוללים את התו '~'. --output_dirכוללים את האפשרות הזו כדי לציין ספרייה שבהasmcliמוריד את חבילתanthos-service-meshומחלץ את קובץ ההתקנה, שמכיל אתistioctl, דוגמאות ומניפסטים. אחרת asmcliהקבצים יורדים לספרייהtmp. אפשר לציין נתיב יחסי או נתיב מלא. משתנה הסביבה$PWDלא פועל כאן.--platform multicloudמציין שהפלטפורמה היא משהו שונה מ Google Cloud, כמו פלטפורמה מקומית או פלטפורמה מרובת עננים.-
--enable_allמאפשר לסקריפט:- מעניקים את הרשאות ה-IAM הנדרשות.
- מפעילים את ממשקי Google API הנדרשים.
- מגדירים תווית באשכול שמזהה את הרשת.
- רושמים את האשכול ב-Fleet אם הוא עדיין לא רשום.
--ca citadelשימוש ב-Istio CA כרשות האישורים.--ca_certאישור הביניים--ca_keyהמפתח של אישור הביניים--root_certאישור הבסיס--cert_chainשרשרת האישורים
-
שדרוג עם תכונות אופציונליות
קובץ שכבת-על הוא קובץ YAML שמכיל IstioOperator משאב בהתאמה אישית (CR) שמעבירים אל asmcli כדי להגדיר את מישור הבקרה. אפשר לבטל את הגדרות ברירת המחדל של מישור הבקרה ולהפעיל תכונה אופציונלית על ידי העברת קובץ ה-YAML אל asmcli. אפשר להוסיף עוד שכבות-על, וכל קובץ שכבת-על מבטל את ההגדרה בשכבות הקודמות.
GKE
מריצים את הפקודה הבאה כדי להתקין את מישור הבקרה עם תכונה אופציונלית. כדי להוסיף כמה קבצים, מציינים --custom_overlay ואת שם הקובץ, לדוגמה: --custom_overlayoverlay_file1.yaml
--custom_overlay overlay_file2.yaml --custom_overlay overlay_file3.yaml
מזינים את הערכים ב placeholders שמופיעים.
./asmcli install \
--project_id PROJECT_ID \
--cluster_name CLUSTER_NAME \
--cluster_location CLUSTER_LOCATION \
--fleet_id FLEET_PROJECT_ID \
--output_dir DIR_PATH \
--enable_all \
--ca mesh_ca \
--custom_overlay OVERLAY_FILE
-
--project_id,--cluster_nameו---cluster_locationמציינים את מזהה הפרויקט שבו נמצא האשכול, את שם האשכול ואת האזור או האזור של האשכול. -
--fleet_idמזהה הפרויקט של פרויקט המארח של הצי. אם לא כוללים את האפשרות הזו,asmcliמשתמש בפרויקט שבו נוצר האשכול כשרושמים את האשכול. --output_dirכוללים את האפשרות הזו כדי לציין ספרייה שבהasmcliמוריד את חבילתanthos-service-meshומחלץ את קובץ ההתקנה, שמכיל אתistioctl, דוגמאות ומניפסטים. אחרת asmcliהקבצים יורדים לספרייהtmp. אפשר לציין נתיב יחסי או נתיב מלא. משתנה הסביבה$PWDלא פועל כאן.-
--enable_allמאפשר לסקריפט:- מעניקים את הרשאות ה-IAM הנדרשות.
- מפעילים את ממשקי Google API הנדרשים.
- מגדירים תווית באשכול שמזהה את הרשת.
- רושמים את האשכול ב-Fleet אם הוא עדיין לא רשום.
--ca mesh_caשימוש ברשות האישורים של Cloud Service Mesh כרשות האישורים. שינוי רשויות אישורים במהלך שדרוג גורם להשבתה.asmcliמגדיר את רשות האישורים של Cloud Service Mesh כך שתשתמש בזהות עומס העבודה של fleet--custom_overlayמציינים את השם של קובץ השכבה.
מחוץ ל-Google Cloud
מריצים את הפקודות הבאות ב-Google Distributed Cloud (תוכנה בלבד) ל-VMware, ב-Google Distributed Cloud (תוכנה בלבד) לשרת פיזי, ב-GKE ב-AWS, ב-Amazon EKS או ב-Microsoft AKS. מזינים את הערכים במשתני המיקום שמופיעים.
מגדירים את ההקשר הנוכחי לאשכול המשתמשים:
kubectl config use-context CLUSTER_NAMEמריצים את
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca mesh_ca \ --custom_overlay OVERLAY_FILE-
--fleet_idמזהה הפרויקט של פרויקט המארח של הצי. -
--kubeconfigהנתיב המלא לקובץkubeconfig. משתנה הסביבה$PWDלא פועל כאן. בנוסף, לא ניתן להשתמש במיקומי קבצים יחסייםkubeconfigשכוללים את התו '~'. --output_dirכוללים את האפשרות הזו כדי לציין ספרייה שבהasmcliמוריד את חבילתanthos-service-meshומחלץ את קובץ ההתקנה, שמכיל אתistioctl, דוגמאות ומניפסטים. אחרת asmcliהקבצים יורדים לספרייהtmp. אפשר לציין נתיב יחסי או נתיב מלא. משתנה הסביבה$PWDלא פועל כאן.--platform multicloudמציין שהפלטפורמה היא משהו שונה מ Google Cloud, כמו פלטפורמה מקומית או פלטפורמה מרובת עננים.-
--enable_allמאפשר לסקריפט:- מעניקים את הרשאות ה-IAM הנדרשות.
- מפעילים את ממשקי Google API הנדרשים.
- מגדירים תווית באשכול שמזהה את הרשת.
- רושמים את האשכול ב-Fleet אם הוא עדיין לא רשום.
--ca mesh_caשימוש ברשות האישורים של Cloud Service Mesh כרשות האישורים. שינוי רשויות אישורים במהלך שדרוג גורם להשבתה.asmcliמגדיר את רשות האישורים של Cloud Service Mesh כך שתשתמש בזהות עומס העבודה של fleet--custom_overlayמציינים את השם של קובץ השכבה.
-
שדרוג שערים
אם פרסתם שערים, תצטרכו לשדרג גם אותם. כדי לבצע שדרוג פשוט, פועלים לפי ההוראות שבקטע 'שדרוגים במקום' במדריך התקנה ושדרוג של שערים.
מעבר למישור הבקרה החדש
קבלת תווית הגרסה שנמצאת ב-
istiod.kubectl get pod -n istio-system -L istio.io/revהפלט של הפקודה אמור להיראות כך:
NAME READY STATUS RESTARTS AGE REV istiod-asm-1282-4-67998f4b55-lrzpz 1/1 Running 0 68m asm-1275-0 istiod-asm-1282-4-67998f4b55-r76kr 1/1 Running 0 68m asm-1275-0 istiod-1275-0-1-5cd96f88f6-n7tj9 1/1 Running 0 27s asm-1282-4 istiod-1275-0-1-5cd96f88f6-wm68b 1/1 Running 0 27s asm-1282-4
בפלט, בעמודה
REV, מציינים את הערך של תווית הגרסה עבור הגרסה החדשה. בדוגמה הזו, הערך הואasm-1282-4.שימו לב גם לערך בתווית הגרסה של הגרסה הישנה של
istiod. תצטרכו את זה כדי למחוק את הגרסה הקודמת שלistiodאחרי שתסיימו להעביר את עומסי העבודה לגרסה החדשה. בדוגמת הפלט, הערך של תווית הגרסה של הגרסה הקודמת הואasm-1275-0.
מוסיפים את תווית הגרסה למרחב השמות של האפליקציה ומסירים את התווית
istio-injection(אם היא קיימת). בפקודה הבאה, משנים אתREVISIONלערך שתואם לגרסה החדשה שלistiod.kubectl label namespace NAMESPACE istio.io/rev=REVISION istio-injection- --overwrite
אם רואים את התו
"istio-injection not found"בפלט, אפשר להתעלם ממנו. כלומר, במרחב השמות לא הייתה קודם התוויתistio-injection. ההתנהגות של הזרקה אוטומטית לא מוגדרת כשמרחב שמות כולל גם את התוויתistio-injectionוגם את תווית הגרסה. לכן, כל הפקודותkubectl labelבמסמכי Cloud Service Mesh מוודאות במפורש שרק אחת מהן מוגדרת.מפעילים מחדש את ה-Pods כדי להפעיל מחדש את ההזרקה.
kubectl rollout restart deployment -n NAMESPACE
בודקים את האפליקציה כדי לוודא שעומסי העבודה פועלים בצורה תקינה.
אם יש לכם עומסי עבודה במרחבי שמות אחרים, חוזרים על השלבים כדי להוסיף תווית למרחב השמות ולהפעיל מחדש את ה-Pods.
אם אתם מרוצים מהאופן שבו האפליקציה פועלת, אתם יכולים להמשיך לשלבים של המעבר לגרסה החדשה של
istiod. אם יש בעיה בבקשה שלכם, פועלים לפי השלבים לביטול השינויים.השלמת המעבר
אם אתם מרוצים מהאופן שבו האפליקציה פועלת, אתם יכולים להסיר את מישור הבקרה הישן כדי להשלים את המעבר לגרסה החדשה.
עוברים לספרייה שבה נמצאים הקבצים ממאגר
anthos-service-meshב-GitHub.להעביר את תג ברירת המחדל:
<OUTPUT_DIR>/istioctl tag set default --revision <NEW REVISION NAME> --overwriteמוחקים את הגרסה הקודמת של
istiod. הפקודה שבה משתמשים תלויה בשאלה אם אתם מעבירים נתונים מ-Istio או משדרגים מגרסה קודמת של Cloud Service Mesh.העברה
אם ביצעתם העברה מ-Istio, ל-
istio-ingressgatewayהישן אין תווית של גרסה:kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget,sa,rolebinding,role istiod -n istio-system --ignore-not-found=trueשדרוג
אם שדרגתם מגרסה קודמת של Cloud Service Mesh, חשוב לוודא שהערך
OLD_REVISIONבפקודה הבאה זהה לתווית התיקון של הגרסה הקודמת שלistiod:kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget,sa,rolebinding,role istiod-OLD_REVISION -n istio-system --ignore-not-found=trueמחיקת המשאבים
validatingwebhookconfiguration, mutatingWebhookConfiguration, configMap, clusterRoleו-clusterRoleBindingשל הגרסה הקודמת:kubectl delete validatingwebhookconfiguration istio-validator-OLD_REVISION-istio-system --ignore-not-found kubectl delete mutatingWebhookConfiguration istio-sidecar-injector-OLD_REVISION --ignore-not-found kubectl delete configMap istio-OLD_REVISION istio-sidecar-injector-OLD_REVISION -n istio-system --ignore-not-found kubectl delete clusterRole,clusterRoleBinding istio-reader-clusterrole-OLD_REVISION-istio-system istiod-clusterrole-OLD_REVISION-istio-system istiod-gateway-controller-OLD_REVISION-istio-system --ignore-not-found
מסירים את הגרסה הקודמת של ההגדרה
IstioOperator:kubectl delete IstioOperator installed-state-OLD_REVISION -n istio-systemהפלט הצפוי אמור להיראות כך:
istiooperator.install.istio.io "installed-state-OLD_REVISION" deleted
חזרה לגרסה קודמת
אם נתקלתם בבעיה כשבדקתם את האפליקציה עם הגרסה החדשה של
istiod, תוכלו לבצע את השלבים הבאים כדי לחזור לגרסה הקודמת:כדי להפעיל הוספה אוטומטית באמצעות הגרסה הקודמת של
istiod, צריך לשנות את התווית של מרחב השמות. הפקודה שבה משתמשים תלויה בשאלה אם השתמשתם בתווית של עדכון או ב-istio-injection=enabledעם הגרסה הקודמת.אם השתמשתם בתווית של עדכון לביצוע הוספה אוטומטית:
kubectl label namespace NAMESPACE istio.io/rev=OLD_REVISION --overwriteאם השתמשתם ב-
istio-injection=enabled:kubectl label namespace NAMESPACE istio.io/rev- istio-injection=enabled --overwrite
הפלט אמור להיראות כך:
namespace/NAMESPACE labeled
מוודאים שתווית השינוי במרחב השמות זהה לתווית השינוי בגרסה הקודמת של
istiod:kubectl get ns NAMESPACE --show-labelsמפעילים מחדש את ה-Pods כדי להפעיל מחדש את ההזרקה, כך שלפרוקסי תהיה הגרסה הקודמת:
kubectl rollout restart deployment -n NAMESPACEמסירים את הגרסה החדשה של
istiod. מוודאים שהערך שלREVISIONבפקודה הבאה נכון.kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-REVISION -n istio-system --ignore-not-found=trueמסירים את הגרסה החדשה של ההגדרה
IstioOperator.kubectl delete IstioOperator installed-state-REVISION -n istio-systemהפלט הצפוי אמור להיראות כך:
istiooperator.install.istio.io "installed-state-REVISION" deleted
אם לא כללתם את הדגל
--disable_canonical_service,asmcliהפעלתם את בקר השירות הקנוני. מומלץ להשאיר את ההגדרה הזו מופעלת, אבל אם אתם צריכים להשבית אותה, תוכלו לעיין במאמר הפעלה והשבתה של בקר שירות קנוני.אם יש לכם שערים פרוסים, הקפידו לשנות את תווית הגרסה במרחב השמות או בפריסה כך שתתאים לגרסה הקודמת של
istiod. פועלים לפי אותו תהליך שמתואר בקטע 'שדרוגים במקום' במדריך התקנה ושדרוג של שערים.
פריסה ופריסה מחדש של עומסי עבודה
ההתקנה (או השדרוג) לא תושלם עד שתפעילו הוספה אוטומטית של פרוקסי מסוג sidecar. העברות מ-OSS Istio ושדרוגים מתבצעים לפי תהליך שדרוג מבוסס-גרסה (שנקרא 'שדרוגי גרסה ראשונית (canary)' בתיעוד של Istio). במהלך שדרוג מבוסס-עדכון, הגרסה החדשה של מישור הבקרה מותקנת לצד מישור הבקרה הקיים. לאחר מכן מעבירים חלק מעומסי העבודה לגרסה החדשה, וכך אפשר לעקוב אחרי ההשפעה של השדרוג על אחוז קטן מעומסי העבודה לפני העברת כל התנועה לגרסה החדשה.
התסריט מגדיר תווית של תיקון בפורמט istio.io/rev=asm-1282-4 בתאריך istiod. כדי להפעיל הוספה אוטומטית, צריך להוסיף תווית תואמת של עדכון למרחבי השמות. תווית התיקון משמשת את ה-webhook של ה-sidecar injector כדי לשייך sidecars מוזרקים לתיקון מסוים של istiod. אחרי שמוסיפים את התווית, מפעילים מחדש את ה-Pods במרחב השמות כדי להחדיר את ה-sidecars.
מעתיקים את תווית הגרסה שמופיעה ב-
istiodוב-istio-ingressgateway. בפקודה הבאה, משנים את הערךINGRESS_NAMESPACEלמרחב השמות שבו פועל שער הכניסה:kubectl get pod -n INGRESS_NAMESPACE -L istio.io/revאם שם שער הכניסה הוא
istio-ingressgateway, הפלט של הפקודה אמור להיראות כך:NAME READY STATUS RESTARTS AGE REV istio-ingressgateway-65d884685d-6hrdk 1/1 Running 0 67m istio-ingressgateway-65d884685d-94wgz 1/1 Running 0 67m istio-ingressgateway-asm-182-2-8b5fc8767-gk6hb 1/1 Running 0 5s asm-1282-4 istio-ingressgateway-asm-182-2-8b5fc8767-hn4w2 1/1 Running 0 20s asm-1282-4 istiod-asm-1282-4-67998f4b55-lrzpz 1/1 Running 0 68m asm-1275-0 istiod-asm-1282-4-67998f4b55-r76kr 1/1 Running 0 68m asm-1275-0 istiod-asm-1275-0-5cd96f88f6-n7tj9 1/1 Running 0 27s asm-1282-4 istiod-asm-1275-0-5cd96f88f6-wm68b 1/1 Running 0 27s asm-1282-4
בפלט, בעמודה
REV, מציינים את הערך של תווית הגרסה עבור הגרסה החדשה. בדוגמה הזו, הערך הואasm-1282-4.שימו לב גם לערך בתווית הגרסה של הגרסה הישנה של
istiod. תצטרכו את זה כדי למחוק את הגרסה הישנה שלistiodאחרי שתסיימו להעביר את עומסי העבודה לגרסה החדשה. בדוגמת הפלט, הערך של תווית הגרסה של הגרסה הישנה הואasm-1275-0.
מעבירים את שער הכניסה לגרסה החדשה. בפקודה הבאה, משנים את
REVISIONלערך שמתאים לתווית הגרסה של הגרסה החדשה. מחליפים אתINGRESS_NAMESPACEבמרחב השמות שבו פועל שער הכניסה, ואתINGRESS_NAMEבשם של שער הכניסה.kubectl patch service -n INGRESS_NAMESPACE INGRESS_NAME --type='json' -p='[{"op": "replace", "path": "/spec/selector/service.istio.io~1canonical-revision", "value": "REVISION"}]'הפלט הצפוי:
service/istio-ingressgateway patchedמוסיפים את תווית הגרסה למרחב שמות ומסירים את התווית
istio-injection(אם היא קיימת). בפקודה הבאה, משנים אתREVISIONלערך שתואם לגרסה החדשה שלistiod.kubectl label namespace NAMESPACE istio.io/rev=REVISION istio-injection- --overwrite
אם רואים את התו
"istio-injection not found"בפלט, אפשר להתעלם ממנו. כלומר, במרחב השמות לא הייתה קודם התוויתistio-injection. ההתנהגות של הזרקה אוטומטית לא מוגדרת כשמרחב שמות כולל גם את התוויתistio-injectionוגם את תווית הגרסה. לכן, כל הפקודותkubectl labelבמסמכי Cloud Service Mesh מוודאות במפורש שרק אחת מהן מוגדרת.מפעילים מחדש את ה-Pods כדי להפעיל מחדש את ההזרקה.
kubectl rollout restart deployment -n NAMESPACE
בודקים את האפליקציה כדי לוודא שעומסי העבודה פועלים בצורה תקינה.
אם יש לכם עומסי עבודה במרחבי שמות אחרים, חוזרים על השלבים כדי להוסיף תווית למרחב השמות ולהפעיל מחדש את ה-Pods.
אם אתם מרוצים מהאופן שבו האפליקציה פועלת, אתם יכולים להמשיך לשלבים של המעבר לגרסה החדשה של
istiod. אם יש בעיה בבקשה שלכם, פועלים לפי השלבים לביטול השינויים.השלמת המעבר
אם אתם מרוצים מהאופן שבו האפליקציה פועלת, אתם יכולים להסיר את מישור הבקרה הישן כדי להשלים את המעבר לגרסה החדשה.
עוברים לספרייה שבה נמצאים הקבצים ממאגר
anthos-service-meshב-GitHub.מעבירים את תג ברירת המחדל.
<OUTPUT_DIR>/istioctl tag set default --revision <NEW REVISION NAME> --overwriteמוחקים את פריסת שער הכניסה הישנה. הפקודה שמריצים תלויה בשאלה אם מבצעים מיגרציה מ-Istio או משדרגים מגרסה קודמת של Cloud Service Mesh:
העברה
אם ביצעתם העברה מ-Istio, ל-
INGRESS_NAMEהישן אין תווית של גרסה.kubectl delete deploy/INGRESS_NAME -n INGRESS_NAMESPACEשדרוג
אם שדרגתם מגרסה קודמת של Cloud Service Mesh, בפקודה הבאה, מחליפים את
OLD_REVISIONבתווית של הגרסה הקודמת שלINGRESS_NAME.kubectl delete deploy -l app=INGRESS_NAME,istio.io/rev=OLD_REVISION -n INGRESS_NAMESPACE --ignore-not-found=trueמוחקים את הגרסה הישנה של
istiod. הפקודה שבה משתמשים תלויה בשאלה אם אתם מעבירים נתונים מ-Istio או משדרגים מגרסה קודמת של Cloud Service Mesh.העברה
אם ביצעתם העברה מ-Istio, ל-
istiodהישן אין תווית של גרסה.kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget,sa,rolebinding,role istiod -n istio-system --ignore-not-found=trueאם יש לכם את מישור הבקרה הישן יותר, עם תווית התיקון
OLD_REVISION, לוחצים על הכרטיסייהupgradeומשלימים את המחיקה של מישור הבקרה istiod באמצעותOLD_REVISION.שדרוג
אם שדרגתם מגרסה קודמת של Cloud Service Mesh, ודאו שבפקודה הבאה
OLD_REVISIONתואם לתווית התיקון של הגרסה הקודמת שלistiod.kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget,sa,rolebinding,role istiod-OLD_REVISION -n istio-system --ignore-not-found=trueמחיקת המשאבים
validatingwebhookconfiguration, mutatingWebhookConfiguration, configMap, clusterRoleו-clusterRoleBindingשל הגרסה הקודמת:kubectl delete validatingwebhookconfiguration istio-validator-OLD_REVISION-istio-system --ignore-not-found kubectl delete mutatingWebhookConfiguration istio-sidecar-injector-OLD_REVISION --ignore-not-found kubectl delete configMap istio-OLD_REVISION istio-sidecar-injector-OLD_REVISION -n istio-system --ignore-not-found kubectl delete clusterRole,clusterRoleBinding istio-reader-clusterrole-OLD_REVISION-istio-system istiod-clusterrole-OLD_REVISION-istio-system istiod-gateway-controller-OLD_REVISION-istio-system --ignore-not-foundמסירים את הגרסה הישנה של ההגדרה
IstioOperator.kubectl delete IstioOperator installed-state-OLD_REVISION -n istio-system --ignore-not-found=trueהפלט הצפוי אמור להיראות כך:
istiooperator.install.istio.io "installed-state-OLD_REVISION" deleted
חזרה לגרסה קודמת
אם נתקלתם בבעיה כשבדקתם את האפליקציה עם הגרסה החדשה של
istiod, תוכלו לבצע את השלבים הבאים כדי לחזור לגרסה הקודמת:כדי להפעיל הוספה אוטומטית באמצעות הגרסה הקודמת של
istiod, צריך לשנות את התווית של מרחב השמות. הפקודה שבה משתמשים תלויה בשאלה אם השתמשתם בתווית של עדכון או ב-istio-injection=enabledעם הגרסה הקודמת.אם השתמשתם בתווית של עדכון לביצוע הוספה אוטומטית:
kubectl label namespace NAMESPACE istio.io/rev=OLD_REVISION --overwriteאם השתמשתם ב-
istio-injection=enabled:kubectl label namespace NAMESPACE istio.io/rev- istio-injection=enabled --overwrite
הפלט אמור להיראות כך:
namespace/NAMESPACE labeled
מוודאים שתווית השינוי במרחב השמות זהה לתווית השינוי בגרסה הקודמת של
istiod:kubectl get ns NAMESPACE --show-labelsמפעילים מחדש את ה-Pods כדי להפעיל מחדש את ההזרקה, כך שלפרוקסי תהיה הגרסה הקודמת:
kubectl rollout restart deployment -n NAMESPACEמסירים את הפריסה החדשה של
istio-ingressgateway. מוודאים שהערך שלREVISIONבפקודה הבאה נכון.kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=REVISION -n istio-system --ignore-not-found=trueמסירים את הגרסה החדשה של
istiod. מוודאים שהערך שלREVISIONבפקודה הבאה נכון.kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-REVISION -n istio-system --ignore-not-found=trueמסירים את הגרסה החדשה של ההגדרה
IstioOperator.
kubectl delete IstioOperator installed-state-REVISION -n istio-system --ignore-not-found=trueהפלט הצפוי אמור להיראות כך:
istiooperator.install.istio.io "installed-state-REVISION" deleted
- אם לא כללתם את הדגל
--disable_canonical_service, הסקריפט הפעיל את בקר השירות הקנוני. מומלץ להשאיר את ההגדרה הזו מופעלת, אבל אם אתם צריכים להשבית אותה, תוכלו לעיין במאמר הפעלה והשבתה של בקר שירות קנוני.