Meng-uninstal Cloud Service Mesh
Halaman ini menjelaskan cara meng-uninstal Cloud Service Mesh.
Meng-uninstal Cloud Service Mesh
Gunakan perintah berikut untuk meng-uninstal semua komponen Cloud Service Mesh. Ini
perintah ini juga akan menghapus namespace istio-system
dan semua resource kustom
(CRD), termasuk setiap CRD yang Anda terapkan.
Untuk mencegah gangguan traffic aplikasi:
- Downgrade kebijakan STRICT mTLS apa pun menjadi PERMISSIVE.
- Hapus AuthorizationPolicy yang mungkin memblokir traffic.
Nonaktifkan Pengelolaan Otomatis pada cluster ini (baik Anda menerapkannya secara langsung atau menggunakan konfigurasi default fleet):
gcloud container fleet mesh update --management manual
Nonaktifkan injeksi otomatis file bantuan di namespace Anda, jika diaktifkan. Lari perintah berikut untuk menampilkan label namespace:
kubectl get namespace YOUR_NAMESPACE --show-labels
Outputnya mirip dengan hal berikut ini:
NAME STATUS AGE LABELS demo Active 4d17h istio.io/rev=asm-181-5
Jika Anda melihat
istio.io/rev=
dalam output di bawah kolomLABELS
, menghapusnya:kubectl label namespace YOUR_NAMESPACE istio.io/rev-
Jika Anda melihat
istio-injection
dalam output di bawah kolomLABELS
, menghapusnya:kubectl label namespace YOUR_NAMESPACE istio-injection-
Jika Anda tidak melihat label
istio.io/rev
atauistio-injection
, maka injeksi otomatis tidak diaktifkan pada namespace.Mulai ulang beban kerja Anda yang memiliki file bantuan yang diinjeksikan untuk menghapus proxy.
Jika Anda menggunakan Cloud Service Mesh terkelola, hapus
controlplanerevision
resource dalam cluster:kubectl delete controlplanerevision RELEASE_CHANNEL -n istio-system
Dengan RELEASE_CHANNEL adalah saluran rilis yang Anda sediakan, seperti
asm-managed
,asm-managed-rapid
, atauasm-managed-stable
.Hapus webhook dari cluster Anda, jika ada.
Mesh Layanan Cloud dalam Cluster
Hapus
validatingwebhooksconfiguration
danmutatingwebhookconfiguration
.kubectl delete validatingwebhookconfiguration,mutatingwebhookconfiguration -l operator.istio.io/component=Pilot
Mesh Layanan Cloud Terkelola
A. Hapus
validatingwebhooksconfiguration
.kubectl delete validatingwebhookconfiguration istiod-istio-system-mcp
B. Hapus
mutatingwebhookconfiguration
.kubectl delete mutatingwebhookconfiguration istiod-RELEASE_CHANNEL
Setelah semua beban kerja muncul dan tidak ada proxy yang diamati, Anda dapat menghapus bidang kontrol dalam cluster untuk menghentikan penagihan. Jika Anda men-deploy bidang kontrol yang terkelola, lalu akan otomatis dihapus dengan langkah waktu ini.
Untuk menghapus bidang kontrol dalam cluster, jalankan perintah di bawah:
istioctl x uninstall --purge
Jika tidak ada bidang kontrol lain, Anda dapat menghapus
istio-system
untuk menghapus semua resource Cloud Service Mesh. Jika tidak, hapus yang terkait dengan revisi Cloud Service Mesh. Hal ini menghindari penghapusan berbagi sumber daya, seperti CRD.Hapus namespace
istio-system
danasm-system
:kubectl delete namespace istio-system asm-system --ignore-not-found=true
Periksa apakah penghapusan berhasil:
kubectl get ns
Output harus menunjukkan status
Terminating
dan menampilkan seperti yang ditunjukkan. jika tidak, Anda mungkin harus secara manual menghapus sumber daya yang tersisa di namespace dan coba lagi.NAME STATUS AGE istio-system Terminating 71m asm-system Terminating 71m
- Jika Anda akan menghapus cluster, atau telah menghapusnya, pastikan bahwa setiap cluster unregistered dari fleet Anda.
Jika Anda telah mengaktifkan konfigurasi default fleet Cloud Service Mesh terkelola dan ingin menonaktifkannya untuk cluster mendatang, nonaktifkan. Anda dapat melewati langkah ini jika Anda hanya meng-uninstal dari satu cluster.
gcloud container hub mesh disable --fleet-default-member-config --project FLEET_PROJECT_ID
Dengan FLEET_PROJECT_ID adalah ID project Host Fleet Anda.
Jika Anda menggunakan Cloud Service Mesh terkelola, hapus deployment
mdp-controller
:kubectl delete deployment mdp-controller -n kube-system
Periksa untuk melihat apakah konfigurasi peta
istio-cni-plugin-config
ada:kubectl get configmap istio-cni-plugin-config -n kube-system
Jika ada, hapus configmap
istio-cni-plugin-config
:kubectl delete configmap istio-cni-plugin-config -n kube-system
Hapus daemonset
istio-cni-node
:kubectl delete daemonset istio-cni-node -n kube-system
Setelah menyelesaikan langkah-langkah ini, semua komponen Cloud Service Mesh, termasuk proxy, certificate authority dalam cluster, serta peran dan binding RBAC, dihapus dari cluster secara sistematis. Selama proses instalasi, sebuah Akun layanan milik Google diberi izin yang diperlukan untuk menetapkan untuk resource mesh layanan dalam cluster. Petunjuk uninstal ini jangan cabut izin akses ini, memungkinkan aktivasi ulang tanpa hambatan Cloud Service Mesh di masa mendatang.