Meng-uninstal Cloud Service Mesh terkelola
Halaman ini menjelaskan cara menghapus instalasi Cloud Service Mesh terkelola. Jika Anda meng-uninstal Cloud Service Mesh dalam cluster, ikuti panduan uninstal dalam cluster.
Jika Anda menggunakan penyiapan lama dengan beberapa bidang kontrol yang disediakan, maka mengikuti petunjuk ini akan menghapus semua bidang kontrol yang disediakan.
Bidang kontrol yang dikelola oleh asmcli tidak didukung untuk deinstalasi, tetapi
cluster yang memiliki bidang kontrol yang dikelola API mesh atau asmcli --managed
didukung. Jika Anda tidak yakin dengan bidang kontrol, jalankan perintah berikut:
kubectl get controlplanerevisions -n istio-system -l 'app.kubernetes.io/created-by!=asmcli'
Uninstal didukung jika ada item yang tercantum dalam output.
Dampak penghapusan Cloud Service Mesh
Sebelum Anda meng-uninstal Cloud Service Mesh, pertimbangkan kemampuan yang dihapus dari cluster dan beban kerja Anda. Saat Anda menghapus proxy Cloud Service Mesh dari workload dan memulainya ulang, aplikasi Anda akan kembali ke perilaku jaringan Kubernetes standar.
Keamanan
Jika Anda menghapus Cloud Service Mesh, Anda akan kehilangan fitur keamanan berikut:
- Enkripsi Mutual TLS (mTLS): Traffic antar-layanan tidak lagi dienkripsi dalam transit dengan sertifikat mTLS yang dikelola oleh mesh.
- Kebijakan otorisasi: Resource kustom
AuthorizationPolicyMesh tidak lagi diterapkan. Anda harus mengonfigurasi resourceNetworkPolicyKubernetes atau autentikasi dan otorisasi tingkat aplikasi untuk membatasi traffic.
Kemampuan observasi
Saat menghapus Cloud Service Mesh, Anda akan kehilangan fitur keandalan berikut:
- Telemetri dan metrik: Pengumpulan otomatis metrik Layer 7 (seperti kecepatan permintaan, tingkat error, dan latensi) berhenti. Telemetri mesh tidak lagi otomatis di-ingest ke Cloud Monitoring. Metrik GKE standar tidak terpengaruh.
- Dasbor dan SLO: Dasbor Cloud Service Mesh yang telah dikonfigurasi sebelumnya dan pemantauan Tujuan Tingkat Layanan (SLO) di konsolGoogle Cloud tidak lagi diisi.
- Pencatatan dan pelacakan akses: Log akses proxy sidecar dengan identitas mTLS klien dan pelacakan terdistribusi otomatis tidak lagi dibuat.
Penemuan layanan dan ketahanan jaringan
Saat Anda menghapus Cloud Service Mesh, Anda akan kehilangan fitur jaringan dan ketahanan berikut:
- Ketahanan jaringan: Workload kehilangan fitur ketahanan tingkat sidecar, termasuk percobaan ulang otomatis, waktu tunggu permintaan yang dapat dikonfigurasi, pemutus sirkuit, deteksi pencilan, dan pengelolaan kumpulan koneksi. Aplikasi harus mengelola kegagalan koneksi dan percobaan ulang secara langsung.
- Penemuan layanan multi-cluster: Penemuan dan perutean endpoint lintas cluster di beberapa cluster dalam fleet tidak lagi berfungsi melalui mesh. Layanan hanya dapat menemukan endpoint dalam cluster lokalnya menggunakan DNS standar.
Meng-uninstal Cloud Service Mesh
Gunakan perintah berikut untuk meng-uninstal semua komponen Cloud Service Mesh.
Untuk mencegah gangguan pada traffic aplikasi:
- Turunkan versi kebijakan mTLS STRICT ke PERMISSIVE.
- Hapus AuthorizationPolicy yang dapat memblokir traffic.
Nonaktifkan multi-cluster jika ada cluster lain yang menjalankan penemuan endpoint di cluster yang Anda hapus instalasinya.
kubectl patch configmap/asm-options -n istio-system --type merge -p '{"data":{"multicluster_mode":"manual"}}'Temukan secret yang perlu dibersihkan, lalu hapus secret tersebut:
kubectl get secrets -n istio-system -l istio/multiCluster=truekubectl delete secret SECRET_NAMEDengan SECRET_NAME adalah nama secret. Ulangi langkah ini untuk setiap rahasia yang tercantum.
Nonaktifkan injeksi otomatis sidecar di namespace Anda, jika diaktifkan. Jalankan perintah berikut untuk menampilkan label namespace:
kubectl get namespace YOUR_NAMESPACE --show-labelsOutputnya 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-injectiondi output pada kolomLABELS, hapus:kubectl label namespace YOUR_NAMESPACE istio-injection-Jika Anda tidak melihat label
istio.io/revatauistio-injection, berarti injeksi otomatis tidak diaktifkan di namespace.
Mulai ulang workload yang telah disisipkan sidecar untuk menghapus proxy.
Pastikan tidak ada proxy yang terhubung ke bidang kontrol terkelola:
kubectl get pods --all-namespaces -o json | jq -r ' .items[] | select( .spec.containers[].env[]? | select(.name == "PROXY_CONFIG" and (.value | contains("\"discoveryAddress\":\"meshconfig.googleapis.com:443\""))) ) | "\(.metadata.namespace)\t\(.metadata.name)" 'Perbarui pengelolaan spesifikasi keanggotaan fitur mesh menjadi
not-installed:gcloud alpha container fleet mesh update \ --project FLEET_PROJECT_ID \ --memberships MEMBERSHIP_NAME \ --location MEMBERSHIP_LOCATION \ --management not-installedGanti 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
region, atau
global).
Verifikasi status keanggotaan fitur mesh untuk status bidang kontrol adalah
DISABLED.gcloud container fleet mesh describe --project FLEET_PROJECT_IDOutputnya mirip dengan:
servicemesh: controlPlaneManagement: details: - code: DISABLED details: Control Plane Management is not enabled. state: DISABLED dataPlaneManagement: details: - code: DISABLED details: Data Plane Management is not enabled. state: DISABLED state: description: 'Please see https://cloud.google.com/service-mesh/docs/install for instructions to onboard to Anthos Service Mesh.' ...Jika status bidang kontrol adalah
DEPROVISIONING, periksa lagi setelah beberapa menit.- Jika status bidang kontrol adalah
STALLED, penghapusan instalasi diblokir agar tidak beroperasi karena kondisi error internal. Jika masalah berlanjut, hubungi Dukungan.
- Jika status bidang kontrol adalah
Secara opsional, Hapus CR Istio, CRD Istio, configmap istio-(revisi), configmap asm-options, dan namespace
istio-systemuntuk menghapus mesh layanan dari cluster atau menggunakannya di mesh layanan yang kompatibel dengan Istio API lainnya.Hapus CR Istio:
kubectl delete gateways,virtualservices,destinationrules,serviceentries,envoyfilters,sidecars,peerauthentications,requestauthentications,authorizationpolicies,telemetries,wasmplugins,proxyconfigs --all --all-namespacesHapus CRD Istio:
kubectl get crds -o name | grep --color=never 'istio.io' | xargs kubectl deleteHapus istio-(revision) configmap. Anda dapat melewati langkah ini jika Anda menghapus namespace
istio-system.kubectl delete configmap istio-RELEASE_CHANNEL -n istio-systemGanti RELEASE_CHANNEL dengan saluran rilis Anda (
asm-managed,asm-managed-stable, atauasm-managed-rapid).Hapus configmap asm-options:
kubectl delete configmap asm-options -n istio-systemHapus namespace
istio-system:kubectl delete namespace istio-system --ignore-not-found=truePeriksa apakah penghapusan berhasil:
kubectl get nsOutput harus menunjukkan status
Terminatingdan 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
Jika Anda menggunakan Certificate Authority Service, hapus izin dan kumpulan CA yang dibuat saat mengonfigurasi Certificate Authority Service untuk Managed Cloud Service Mesh.
Jika Anda mengaktifkan konfigurasi default fleet Cloud Service Mesh terkelola 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_IDDengan FLEET_PROJECT_ID sebagai ID project Host Fleet Anda.
Jika Anda berencana berhenti menggunakan Cloud Service Mesh di tingkat fleet, nonaktifkan fitur mesh layanan untuk project host fleet Anda.
gcloud container hub mesh disable --project FLEET_PROJECT_IDDengan FLEET_PROJECT_ID sebagai ID project Host Fleet Anda.
Setelah langkah-langkah ini selesai, semua komponen Cloud Service Mesh, termasuk proxy, otoritas sertifikat, 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.