Meng-uninstal Anthos Service Mesh

Halaman ini menjelaskan cara meng-uninstal Anthos Service Mesh.

Meng-uninstal Anthos Service Mesh

Gunakan perintah berikut untuk meng-uninstal semua komponen Anthos Service Mesh. Perintah ini juga menghapus namespace istio-system dan semua definisi resource kustom (CRD), termasuk CRD apa pun yang Anda terapkan.

  1. Untuk mencegah gangguan traffic aplikasi:

    • Downgrade kebijakan STRICT mTLS ke PERMISSIVE.
    • Hapus AuthorizationPolicy yang dapat memblokir traffic.
  2. Nonaktifkan Anthos Service Mesh Terkelola Otomatis melalui Fleet API, jika diaktifkan.

  3. Nonaktifkan injeksi otomatis file bantuan 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 pada kolom LABELS, hapus kode tersebut:

     kubectl label namespace YOUR_NAMESPACE istio.io/rev-
    

    Jika Anda melihat istio-injection dalam output pada kolom LABELS, hapus kode tersebut:

     kubectl label namespace YOUR_NAMESPACE istio-injection-
    

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

  4. Mulai ulang beban kerja Anda yang memiliki file bantuan yang dimasukkan untuk menghapus proxy.

  5. Jika Anda menggunakan Anthos Service Mesh terkelola, hapus semua resource controlplanerevision di cluster:

    kubectl delete controlplanerevision RELEASE_CHANNEL -n istio-system
    

    Dengan RELEASE_CHANNEL adalah saluran rilis yang Anda sediakan, seperti asm-managed, asm-managed-rapid, atau asm-managed-stable.

  6. Hapus webhook dari cluster Anda, jika ada.

    Anthos Service Mesh dalam cluster

    Hapus validatingwebhooksconfiguration dan mutatingwebhookconfiguration.

    kubectl delete validatingwebhookconfiguration,mutatingwebhookconfiguration -l operator.istio.io/component=Pilot
    

    Anthos Service Mesh Terkelola

    A. Hapus validatingwebhooksconfiguration.

    kubectl delete validatingwebhookconfiguration istiod-istio-system-mcp
    

    B. Hapus mutatingwebhookconfiguration.

    kubectl delete mutatingwebhookconfiguration RELEASE_CHANNEL
    
  7. Setelah semua beban kerja muncul dan tidak ada proxy yang diamati, Anda dapat menghapus bidang kontrol dalam cluster dengan aman untuk menghentikan penagihan. Jika Anda men-deploy bidang kontrol terkelola, bidang kontrol tersebut akan otomatis dihapus dari langkah sebelumnya.

    Untuk menghapus bidang kontrol dalam cluster, jalankan perintah di bawah ini:

    istioctl x uninstall --purge
    

    Jika tidak ada bidang kontrol lain, Anda dapat menghapus namespace istio-system untuk menghapus semua resource Anthos Service Mesh. Jika tidak, hapus layanan yang sesuai dengan revisi Anthos Service Mesh. Tindakan ini akan mencegah penghapusan resource bersama, seperti CRD.

  8. Hapus namespace istio-system dan asm-system:

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

     kubectl get ns
    

    Output-nya akan menunjukkan status Terminating dan menampilkan seperti yang ditunjukkan. Jika tidak, Anda mungkin harus menghapus resource yang tersisa di namespace secara manual dan mencoba lagi.

     NAME                 STATUS       AGE
     istio-system         Terminating  71m
     asm-system           Terminating  71m
    
  10. Jika Anda menggunakan Anthos Service Mesh terkelola, hapus deployment mdp-controller:

     kubectl delete deployment mdp-controller -n kube-system
    
  11. Hapus daemonset istio-cni-node:

     kubectl delete daemonset istio-cni-node -n kube-system
    
  12. Ikuti langkah-langkah untuk membatalkan pendaftaran setiap cluster dari fleet Anda. Langkah ini diperlukan meskipun Anda menghapus cluster, karena cluster yang dihapus mungkin masih terdaftar ke fleet Anda.