הסרת Cloud Service Mesh בתוך האשכול
בדף הזה מוסבר איך להסיר את Cloud Service Mesh בתוך האשכול אם אתם משתמשים בממשקי Istio API. אם אתם משתמשים בממשקי API של Compute Engine, אתם לא צריכים לבצע שום פעולה. כדי להבין את ההבדלים, אפשר לעיין במאמר סקירה כללית על Cloud Service Mesh.
אם פועלים לפי ההוראות האלה להסרת Cloud Service Mesh בתוך האשכול, כל ההגדרות יוסרו.
אם אתם מסירים את Cloud Service Mesh המנוהל, אתם צריכים לפעול לפי מדריך ההסרה המנוהלת.
אם אתם עוברים מ-in-cluster ל-managed, עדיף שתפעלו לפי מדריך ההעברה.
הסרת Cloud Service Mesh
כדי להסיר את כל הרכיבים של Cloud Service Mesh, משתמשים בפקודות הבאות.
כדי למנוע שיבוש בתנועת הנתונים של האפליקציה:
- מבצעים שדרוג לאחור של כל כללי מדיניות mTLS מסוג STRICT ל-PERMISSIVE.
- מסירים את כל כללי AuthorizationPolicy שעלולים לחסום תנועה.
אם האפשרות הזו מופעלת, משביתים את ההזרקה האוטומטית של sidecar במרחבי השמות. מריצים את הפקודה הבאה כדי להציג את תוויות מרחב השמות:
kubectl get namespace YOUR_NAMESPACE --show-labelsהפלט אמור להיראות כך:
NAME STATUS AGE LABELS demo Active 4d17h istio.io/rev=asm-181-5
אם מופיע
istio.io/rev=בפלט בעמודהLABELS, צריך להסיר אותו:kubectl label namespace YOUR_NAMESPACE istio.io/rev-אם מופיע
istio-injectionבפלט בעמודהLABELS, צריך להסיר אותו:kubectl label namespace YOUR_NAMESPACE istio-injection-אם לא מופיעות התוויות
istio.io/revאוistio-injection, סימן שההוספה האוטומטית לא הופעלה במרחב השמות.מפעילים מחדש את עומסי העבודה שהוחדרו להם קבצים מצורפים כדי להסיר את ה-proxies.
אם קיימים
validatingwebhooksconfigurationו-mutatingwebhookconfigurationבמקבץ, מוחקים אותם:kubectl delete validatingwebhookconfiguration,mutatingwebhookconfiguration -l operator.istio.io/component=Pilot,istio.io/owned-by!=mesh.googleapis.comאחרי שכל עומסי העבודה יפעלו ולא יזוהו שרתי proxy, תוכלו למחוק בבטחה את מישור הבקרה בתוך האשכול כדי להפסיק את החיוב.
כדי להסיר את מישור הבקרה בתוך האשכול, מריצים את הפקודה הבאה:
istioctl uninstall --purgeאם אין מישורי בקרה אחרים, אפשר למחוק את מרחב השמות
istio-systemכדי להיפטר מכל המשאבים של Cloud Service Mesh. אחרת, מוחקים את השירותים שתואמים לגרסאות של Cloud Service Mesh. כך נמנעת מחיקה של משאבים משותפים, כמו CRD.אופציונלית, מסירים את Istio CRs, Istio CRDs, istio-(revision) configmap, asm-options configmap,
istio-systemומרחבי שמות שלasm-systemכדי להסיר את רשת השירות מהאשכול או להשתמש בהם ברשת שירות אחרת שתואמת ל-Istio API.הסרת Istio CRs:
kubectl delete gateways,virtualservices,destinationrules,serviceentries,envoyfilters,sidecars,peerauthentications,requestauthentications,authorizationpolicies,telemetries,wasmplugins,proxyconfigs --all --all-namespacesהסרת CRD של Istio:
kubectl get crds -o name | grep --color=never 'istio.io' | xargs kubectl deleteמסירים את ה-configmap istio-(revision). אפשר לדלג על השלב הזה אם מוחקים את
istio-systemמרחב השמות.kubectl delete configmap istio-RELEASE_CHANNEL -n istio-systemמחליפים את RELEASE_CHANNEL בערוץ ההפצה שלכם
הסרת מרחב השמות
istio-system:kubectl delete namespace istio-system --ignore-not-found=trueהסרת מרחב השמות
asm-system:kubectl delete namespace asm-system --ignore-not-found=trueכדי לבדוק אם המחיקות בוצעו בהצלחה:
kubectl get ns ``` The output should indicate a `Terminating` state and return as shown, otherwise you might have to manually delete any remaining resources in the namespaces and try again. ```sh NAME STATUS AGE istio-system Terminating 71m asm-system Terminating 71m ```
אם אתם מתכוונים למחוק את האשכולות, או שכבר מחקתם אותם, ודאו שכל אשכול לא רשום ב-Fleet.
אם אתם מתכננים להפסיק להשתמש ב-Cloud Service Mesh ברמת הצי, אתם צריכים להשבית את התכונה של רשת השירות בפרויקט המארח של הצי.
gcloud container hub mesh disable --project FLEET_PROJECT_IDכאשר FLEET_PROJECT_ID הוא מזהה פרויקט המארח של ה-Fleet.
אחרי שמבצעים את השלבים האלה, כל הרכיבים של Cloud Service Mesh, כולל שרתי proxy, רשויות אישורים באשכול ותפקידים וקשרים של RBAC, מוסרים מהאשכול באופן שיטתי. במהלך תהליך ההתקנה, לחשבון שירות בבעלות Google ניתנות ההרשאות הנדרשות ליצירת משאבי Service mesh באשכול. ההוראות האלה להסרת ההתקנה לא מבטלות את ההרשאות האלה, כך שבעתיד אפשר יהיה להפעיל מחדש את Cloud Service Mesh בצורה חלקה.