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:
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 menetapkanmulticluster_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"}}'
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 menetapkanmulticluster_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.