הסרת Cloud Service Mesh
בדף הזה מוסבר איך להסיר את Cloud Service Mesh.
הסרת Cloud Service Mesh
כדי להסיר את כל הרכיבים של Cloud Service Mesh, משתמשים בפקודות הבאות. הפקודות האלה מוחקות גם את מרחב השמות istio-system ואת כל ההגדרות של משאבים מותאמים אישית (CRD), כולל כל ה-CRD שהחלתם.
כדי למנוע שיבוש בתנועת הנתונים של האפליקציה:
- מבצעים שדרוג לאחור של כל כללי מדיניות mTLS מסוג STRICT ל-PERMISSIVE.
- מסירים את כל כללי המדיניות AuthorizationPolicy שעלולים לחסום תנועה.
משביתים את הניהול האוטומטי באשכול הזה (בין אם הפעלתם אותו ישירות או באמצעות הגדרת ברירת המחדל של הצי):
gcloud container fleet mesh update --management manualאם האפשרות הזו מופעלת, משביתים את ההזרקה האוטומטית של 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.
אם אתם משתמשים ב-Cloud Service Mesh מנוהל, צריך להסיר את כל המשאבים של
controlplanerevisionבאשכול:kubectl delete controlplanerevision RELEASE_CHANNEL -n istio-systemRELEASE_CHANNEL הוא ערוץ ההפצה שהקציתם, למשל
asm-managed, asm-managed-rapidאוasm-managed-stable.מוחקים את ה-webhook מהאשכול, אם הוא קיים.
Cloud Service Mesh בתוך האשכול
מוחקים את
validatingwebhooksconfigurationואתmutatingwebhookconfiguration.kubectl delete validatingwebhookconfiguration,mutatingwebhookconfiguration -l operator.istio.io/component=PilotManaged Cloud Service Mesh
א. מוחקים את
validatingwebhooksconfiguration.kubectl delete validatingwebhookconfiguration istiod-istio-system-mcpב. מוחקים את
mutatingwebhookconfiguration.kubectl delete mutatingwebhookconfiguration istiod-RELEASE_CHANNELאחרי שכל עומסי העבודה יפעלו ולא יזוהו שרתי proxy, תוכלו למחוק בבטחה את מישור הבקרה בתוך האשכול כדי להפסיק את החיוב. אם פרסתם מישור בקרה מנוהל, הוא יימחק אוטומטית עם השלב הקודם.
כדי להסיר את מישור הבקרה בתוך האשכול, מריצים את הפקודה הבאה:
istioctl x uninstall --purgeאם אין מישורי בקרה אחרים, אפשר למחוק את מרחב השמות
istio-systemכדי להיפטר מכל המשאבים של Cloud Service Mesh. אחרת, צריך למחוק את השירותים שמתאימים לגרסאות של Cloud Service Mesh. כך נמנעת מחיקה של משאבים משותפים, כמו CRD.מחיקת מרחבי השמות
istio-systemו-asm-system:kubectl delete namespace istio-system asm-system --ignore-not-found=trueכדי לבדוק אם המחיקות הצליחו:
kubectl get nsהפלט צריך לציין מצב
Terminatingולהופיע כמו שמוצג כאן, אחרת יכול להיות שתצטרכו למחוק ידנית את כל המשאבים שנותרו במרחבי השמות ולנסות שוב.NAME STATUS AGE istio-system Terminating 71m asm-system Terminating 71m- אם אתם מתכוונים למחוק את האשכולות, או שכבר מחקתם אותם, ודאו שכל אשכול לא רשום ב-Fleet.
אם הפעלתם את ההגדרה שקובעת את ברירת המחדל של צי לניהול Cloud Service Mesh ואתם רוצים להשבית אותה באשכולות עתידיים, אתם יכולים לעשות זאת. אפשר לדלג על השלב הזה אם מסירים את התוסף רק מאשכול אחד.
gcloud container hub mesh disable --fleet-default-member-config --project FLEET_PROJECT_IDכאשר FLEET_PROJECT_ID הוא מזהה פרויקט המארח של ה-Fleet.
אם אתם משתמשים ב-Cloud Service Mesh מנוהל, צריך למחוק את הפריסה
mdp-controller:kubectl delete deployment mdp-controller -n kube-systemבודקים אם קובץ ה-configmap
istio-cni-plugin-configקיים:kubectl get configmap istio-cni-plugin-config -n kube-systemאם הוא קיים, מוחקים את ה-configmap
istio-cni-plugin-config:kubectl delete configmap istio-cni-plugin-config -n kube-systemמוחקים את ה-daemonset
istio-cni-node:kubectl delete daemonset istio-cni-node -n kube-system
אחרי שמבצעים את השלבים האלה, כל הרכיבים של Cloud Service Mesh, כולל שרתי proxy, רשויות אישורים באשכולות, תפקידים וקישורים של RBAC, מוסרים מהאשכול באופן שיטתי. במהלך תהליך ההתקנה, חשבון שירות בבעלות Google מקבל את ההרשאות הנדרשות כדי ליצור את משאבי Service mesh באשכול. ההוראות האלה להסרת ההתקנה לא מבטלות את ההרשאות האלה, ולכן אפשר יהיה להפעיל מחדש את Cloud Service Mesh בעתיד בצורה חלקה.