Meng-uninstal Cloud Service Mesh dalam cluster

Halaman ini menjelaskan cara meng-uninstal Cloud Service Mesh dalam cluster 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 dalam cluster akan menghapus semua konfigurasi.

Jika Anda menghapus instalasi Cloud Service Mesh terkelola, ikuti panduan penghapusan instalasi terkelola.

Jika Anda bermigrasi dari dalam cluster ke terkelola, ikuti Panduan migrasi sebagai gantinya.

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 AuthorizationPolicy Mesh tidak lagi diterapkan. Anda harus mengonfigurasi resource NetworkPolicy Kubernetes 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.

  1. Untuk mencegah gangguan traffic aplikasi:

    • Turunkan versi kebijakan mTLS STRICT ke PERMISSIVE.
    • Hapus AuthorizationPolicy yang dapat memblokir traffic.
  2. 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= dalam output di kolom LABELS, hapus:

     kubectl label namespace YOUR_NAMESPACE istio.io/rev-
    

    Jika Anda melihat istio-injection dalam output di kolom LABELS, hapus:

     kubectl label namespace YOUR_NAMESPACE istio-injection-
    

    Jika Anda tidak melihat label istio.io/rev atau istio-injection, berarti injeksi otomatis tidak diaktifkan di namespace.

  3. Mulai ulang workload yang telah disisipkan sidecar untuk menghapus proxy.

  4. Hapus validatingwebhooksconfiguration dan mutatingwebhookconfiguration dari cluster Anda, jika ada:

      kubectl delete validatingwebhookconfiguration,mutatingwebhookconfiguration -l operator.istio.io/component=Pilot,istio.io/owned-by!=mesh.googleapis.com
    
  5. 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. Tindakan ini menghindari penghapusan resource bersama, seperti CRD.

  6. Secara opsional, Hapus CR Istio, CRD Istio, configmap istio-(revisi), configmap asm-options, namespace istio-system dan asm-system untuk menghapus mesh layanan dari cluster atau menggunakannya di mesh layanan yang kompatibel dengan Istio API lainnya.

    1. Hapus CR Istio:

      kubectl delete gateways,virtualservices,destinationrules,serviceentries,envoyfilters,sidecars,peerauthentications,requestauthentications,authorizationpolicies,telemetries,wasmplugins,proxyconfigs --all --all-namespaces
      
    2. Hapus CRD Istio:

      kubectl get crds -o name | grep --color=never 'istio.io' | xargs kubectl delete
      
    3. Hapus istio-(revision) configmap. Anda dapat melewati langkah ini jika Anda menghapus namespace istio-system.

      kubectl delete configmap istio-RELEASE_CHANNEL -n istio-system
      

      Ganti RELEASE_CHANNEL dengan saluran rilis Anda

    4. Hapus namespace istio-system:

      kubectl delete namespace istio-system --ignore-not-found=true
      
    5. Hapus namespace asm-system:

      kubectl delete namespace asm-system --ignore-not-found=true
      
      1. Periksa apakah penghapusan berhasil:

         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
         ```
        
  7. Jika Anda akan menghapus cluster, atau telah menghapusnya, pastikan setiap cluster dibatalkan pendaftarannya dari fleet Anda.

  8. 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_ID
    

    Dengan FLEET_PROJECT_ID sebagai ID project Host Fleet Anda.

Setelah Anda menyelesaikan langkah-langkah ini, 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 service mesh dalam cluster. Petunjuk penghapusan instalasi ini tidak mencabut izin tersebut, sehingga memungkinkan aktivasi ulang Cloud Service Mesh yang lancar di masa mendatang.