Update konfigurasi untuk modernisasi

Dokumen ini menjelaskan update konfigurasi yang mungkin perlu Anda lakukan pada Cloud Service Mesh terkelola sebelum memodernisasi mesh ke bidang kontrol TRAFFIC_DIRECTOR dari bidang kontrol ISTIOD.

Untuk informasi selengkapnya tentang alur kerja modernisasi, lihat halaman Modernisasi 'managed control plane'.

Bermigrasi dari secret Istio ke multicluster_mode

Secret multi-cluster tidak didukung saat cluster menggunakan bidang kontrol TRAFFIC_DIRECTOR. Dokumen ini menjelaskan cara Anda dapat melakukan modernisasi dari menggunakan secret multi-cluster Istio menjadi menggunakan multicluster_mode.

Ringkasan rahasia Istio versus API deklaratif

Penemuan endpoint multi-cluster istio open source berfungsi dengan menggunakan istioctl atau alat lain untuk membuat Secret Kubernetes di cluster. Secret ini memungkinkan cluster melakukan load balancing traffic ke cluster lain dalam mesh. Control plane ISTIOD kemudian membaca secret ini dan mulai merutekan traffic ke cluster lain tersebut.

Cloud Service Mesh memiliki API deklaratif untuk mengontrol traffic multi-cluster, bukan membuat secret Istio secara langsung. API ini memperlakukan secret Istio sebagai detail implementasi dan lebih andal daripada membuat secret Istio secara manual. Fitur Cloud Service Mesh mendatang akan bergantung pada API deklaratif, dan Anda tidak akan dapat menggunakan fitur baru tersebut dengan secret Istio secara langsung. API deklaratif adalah satu-satunya jalur yang didukung ke depan.

Jika Anda menggunakan Istio Secrets, bermigrasilah untuk menggunakan API deklaratif sesegera mungkin. Perhatikan bahwa setelan multicluster_mode mengarahkan setiap cluster untuk mengarahkan traffic ke setiap cluster lain dalam mesh. Penggunaan secret memungkinkan konfigurasi yang lebih fleksibel, sehingga Anda dapat mengonfigurasi untuk setiap cluster ke cluster lain yang akan diarahkan traffic-nya di mesh. Untuk mengetahui daftar lengkap perbedaan antara fitur yang didukung dari API deklaratif dan secret Istio, lihat Fitur yang didukung menggunakan API Istio.

Bermigrasi dari secret Istio ke API deklaratif

Jika Anda menyediakan Cloud Service Mesh menggunakan pengelolaan otomatis dengan API fitur fleet, Anda tidak perlu mengikuti petunjuk ini. Langkah-langkah ini hanya berlaku jika Anda melakukan aktivasi menggunakan asmcli --managed.

Perhatikan bahwa proses ini mengubah secret yang mengarah ke cluster. Selama proses ini, endpoint dihapus, lalu ditambahkan kembali. Di antara endpoint yang dihapus dan ditambahkan, traffic akan kembali ke perutean secara lokal untuk sementara, bukan load balancing ke cluster lain. Untuk mengetahui informasi selengkapnya, lihat masalah GitHub.

Untuk beralih dari menggunakan secret Istio ke API deklaratif, ikuti langkah-langkah berikut. Jalankan langkah-langkah ini secara bersamaan atau secara berurutan:

  1. Aktifkan API deklaratif untuk setiap cluster dalam fleet tempat Anda ingin mengaktifkan penemuan endpoint multi-cluster dengan menetapkan multicluster_mode=connected. Perhatikan bahwa Anda harus menetapkan multicluster_mode=disconnected secara eksplisit jika tidak ingin cluster dapat ditemukan.

    Gunakan perintah berikut untuk memilih ikut serta dalam cluster untuk penemuan endpoint multi-cluster:

     kubectl patch configmap/asm-options -n istio-system --type merge -p '{"data":{"multicluster_mode":"connected"}}'
    

    Gunakan perintah berikut untuk memilih tidak ikut penemuan endpoint di cluster:

     kubectl patch configmap/asm-options -n istio-system --type merge -p '{"data":{"multicluster_mode":"disconnected"}}'
    
  2. Menghapus secret lama.

    Setelah menetapkan multicluster_mode=connected di cluster, setiap cluster akan memiliki secret baru yang dibuat untuk setiap cluster lain yang juga telah menetapkan multicluster_mode=connected. Secret ditempatkan di namespace istio-system dan memiliki format berikut:

    istio-remote-secret-projects-PROJECT_NAME-locations-LOCATION-memberships-MEMBERSHIPS
    

    Setiap secret juga akan menerapkan label istio.io/owned-by: mesh.googleapis.com.

    Setelah secret baru dibuat, Anda dapat menghapus secret apa pun yang dibuat secara manual dengan istioctl create-remote-secret:

    kubectl delete secret SECRET_NAME -n istio-system
    

Setelah dimigrasikan, periksa metrik permintaan Anda untuk memastikan metrik tersebut dirutekan seperti yang diharapkan.