Meng-uninstal Cloud Service Mesh
Halaman ini menjelaskan cara meng-uninstal Cloud Service Mesh jika Anda menggunakan Istio API. Jika Anda menggunakan Compute Engine API, tidak ada langkah-langkah yang diperlukan. Lihat ringkasan Cloud Service Mesh untuk memahami perbedaannya.
Mengikuti petunjuk ini untuk meng-uninstal Cloud Service Mesh akan menghapus semua konfigurasi, terlepas dari jenis bidang kontrol (dalam cluster atau terkelola). Jika Anda melakukan migrasi dari dalam cluster ke terkelola, ikuti Panduan migrasi sebagai gantinya.
Meng-uninstal Cloud Service Mesh
Gunakan perintah berikut untuk meng-uninstal semua komponen Cloud Service Mesh. Perintah ini juga menghapus namespace istio-system
dan semua definisi resource kustom (CRD), termasuk CRD yang Anda terapkan.
Untuk mencegah gangguan pada traffic aplikasi:
- Menurunkan versi kebijakan mTLS STRICT menjadi PERMISSIVE.
- Hapus AuthorizationPolicy yang dapat memblokir traffic.
Nonaktifkan Pengelolaan Otomatis di cluster ini (baik Anda menerapkannya secara langsung atau menggunakan konfigurasi default fleet):
gcloud container fleet mesh update \ --management manual \ --memberships MEMBERSHIP_NAME \ --project FLEET_PROJECT_ID \ --location MEMBERSHIP_LOCATION
Ganti kode berikut:
- MEMBERSHIP_NAME adalah nama keanggotaan yang tercantum saat Anda memverifikasi bahwa cluster Anda terdaftar ke fleet.
- MEMBERSHIP_LOCATION adalah lokasi keanggotaan Anda (baik
wilayah, atau
global
).
Nonaktifkan injeksi otomatis sidecar di namespace Anda, jika diaktifkan. Jalankan 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=
di output pada kolomLABELS
, hapus:kubectl label namespace YOUR_NAMESPACE istio.io/rev-
Jika Anda melihat
istio-injection
di output pada kolomLABELS
, hapus:kubectl label namespace YOUR_NAMESPACE istio-injection-
Jika Anda tidak melihat label
istio.io/rev
atauistio-injection
, berarti penyisipan otomatis tidak diaktifkan di namespace.Mulai ulang workload yang telah disisipkan sidecar untuk menghapus proxy.
Jika Anda menggunakan Cloud Service Mesh terkelola, periksa implementasi bidang kontrol yang ada di cluster Anda. Hal ini akan membantu menghapus resource yang relevan pada langkah-langkah selanjutnya.
Jika Anda menggunakan Cloud Service Mesh terkelola, hapus semua resource
controlplanerevision
di cluster:kubectl delete controlplanerevision asm-managed asm-managed-rapid asm-managed-stable -n istio-system --ignore-not-found=true
Hapus webhook dari cluster Anda, jika ada.
Cloud Service Mesh dalam cluster
Hapus
validatingwebhooksconfiguration
danmutatingwebhookconfiguration
.kubectl delete validatingwebhookconfiguration,mutatingwebhookconfiguration -l operator.istio.io/component=Pilot,istio.io/owned-by!=mesh.googleapis.com
Managed Cloud Service Mesh
A. Hapus
validatingwebhooksconfiguration
.kubectl delete validatingwebhookconfiguration istiod-istio-system-mcp
B. Hapus semua
mutatingwebhookconfiguration
.kubectl delete mutatingwebhookconfiguration istiod-RELEASE_CHANNEL
Setelah semua workload muncul dan tidak ada proxy yang diamati, Anda dapat menghapus bidang kontrol dalam cluster dengan aman untuk menghentikan penagihan.
Untuk menghapus bidang kontrol dalam cluster, jalankan perintah berikut:
istioctl uninstall --purge
Jika tidak ada bidang kontrol lain, Anda dapat menghapus namespace
istio-system
untuk menghapus semua resource Cloud Service Mesh. Jika tidak, hapus layanan yang sesuai dengan revisi Cloud Service Mesh. Hal ini menghindari penghapusan resource bersama, 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 ditampilkan seperti yang ditunjukkan, jika tidak, Anda mungkin harus menghapus secara manual semua resource yang tersisa di namespace dan mencoba lagi.NAME STATUS AGE istio-system Terminating 71m asm-system Terminating 71m
Jika Anda akan menghapus cluster, atau telah menghapusnya, pastikan bahwa setiap cluster dibatalkan pendaftarannya dari fleet Anda.
Jika Anda mengaktifkan konfigurasi default fleet Managed Cloud Service Mesh dan ingin menonaktifkannya untuk cluster mendatang, nonaktifkan konfigurasi tersebut. Anda dapat melewati langkah ini jika hanya menghapus instalasi dari satu cluster.
gcloud container hub mesh disable --fleet-default-member-config --project FLEET_PROJECT_ID
Dengan FLEET_PROJECT_ID sebagai ID project Host Fleet Anda.
Jika Anda berencana berhenti menggunakan Cloud Service Mesh di tingkat fleet, nonaktifkan fitur service mesh untuk project host fleet Anda.
gcloud container hub mesh disable --project FLEET_PROJECT_ID
Dengan FLEET_PROJECT_ID sebagai ID project Host Fleet Anda.
Jika Anda mengaktifkan Cloud Service Mesh terkelola, periksa dan hapus resource terkelola jika ada:
Hapus deployment
mdp-controller
:kubectl delete deployment mdp-controller -n kube-system
Dapatkan lalu hapus resource kustom kontrol bidang data:
Dapatkan CR kontrol bidang data:
kubectl get dataplanecontrol
Hapus CR kontrol bidang data:
kubectl delete dataplanecontrol DATA_PLANE_CONTROL_CR_NAME
Ganti DATA_PLANE_CONTROL_CR_NAME dengan output dari perintah sebelumnya.
Hapus CRD
controlplanerevision
dan dataplanecontrol:kubectl delete crd controlplanerevisions.mesh.cloud.google.com dataplanecontrols.mesh.cloud.google.com
Jika Anda memiliki penerapan bidang kontrol
TRAFFIC_DIRECTOR
, hapus resource Transparent Health Check. Biasanya, file ini dihapus secara otomatis, tetapi Anda dapat memastikan file tersebut dibersihkan dengan melakukan hal berikut:Hapus daemonset
snk
.kubectl delete daemonset snk -n kube-system
Hapus aturan firewall.
gcloud compute firewall-rules delete gke-csm-thc-FIRST_8_CHARS_OF_CLUSTER_ID
Ganti kode berikut:
- FIRST_8_CHARS_OF_CLUSTER_ID adalah 8 karakter pertama ID Cluster untuk cluster tertentu Anda.
Periksa apakah configmap
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
Jika Anda menghapus Managed Cloud Service Mesh, hubungi Dukungan untuk memastikan semua resourceGoogle Cloud dibersihkan. Namespace dan peta konfigurasi
istio-system
juga dapat terus dibuat ulang jika Anda tidak mengikuti langkah ini.
Setelah langkah-langkah ini selesai, semua komponen Cloud Service Mesh, termasuk proxy, otoritas sertifikat dalam cluster, serta peran dan binding RBAC, akan dihapus secara sistematis dari cluster. Selama proses penginstalan, akun layanan milik Google diberi izin yang diperlukan untuk membuat resource mesh layanan dalam cluster. Petunjuk penghapusan instalasi ini tidak mencabut izin ini, sehingga memungkinkan aktivasi ulang Cloud Service Mesh yang lancar di masa mendatang.