ASM mendukung penyebaran remote control plane. Anda dapat menyebarkan komponen control plane ke kluster non-Alibaba Cloud, memungkinkan proxy sidecar di dalam kluster untuk terhubung langsung ke remote control plane. Hal ini meningkatkan efisiensi push konfigurasi dan mengurangi latensi push. Topik ini menjelaskan cara menyebarkan remote control plane.
Latar Belakang
Ketika kluster data plane berada di dalam VPC Alibaba Cloud, beban kerja data plane dapat terhubung langsung ke ASM managed control plane melalui jaringan VPC Alibaba Cloud. Ini menghasilkan latensi jaringan yang rendah, push konfigurasi yang lancar, dan tidak memerlukan penggunaan kemampuan remote control plane.
Ketika kluster data plane berada di layanan cloud lain atau pusat data lokal, ia harus terhubung ke ASM control plane melalui Internet atau metode lainnya. Jika lingkungan jaringan tidak stabil atau bandwidth terbatas, kami menyarankan menggunakan ASM remote control plane untuk mengurangi latensi push.
Arsitektur keseluruhan dari remote control plane adalah sebagai berikut:
Jika semua pod di dalam kluster non-ACK terhubung langsung ke managed ASM control plane, jumlah koneksi jaringan dan penggunaan bandwidth antara managed control plane dan kluster non-ACK berkorelasi positif dengan jumlah pod. Jika terjadi perubahan konfigurasi atau layanan secara sering, masalah latensi push kemungkinan besar akan muncul.
Dengan menggunakan kemampuan ASM remote control plane, remote control plane mendorong konfigurasi ke proxy sidecar kluster. Hanya ada sejumlah kecil koneksi jaringan antara ASM control plane dan kluster non-ACK untuk push komponen control plane dan penemuan layanan. Hal ini mengurangi kebutuhan untuk lingkungan jaringan dengan latensi rendah dan bandwidth tinggi serta meningkatkan efisiensi push konfigurasi.
Catatan penggunaan ASM remote control plane
Setelah menggunakan ASM remote control plane, sumber daya Kubernetes terkait dengan ASM harus dibuat menggunakan kubeconfig dari ASM. Jika kubeconfig dari kluster remote digunakan, sumber daya tersebut mungkin tertimpa.
ASM menyediakan penemuan layanan global. Beban kerja yang dikelola oleh ASM managed control plane dapat mengakses layanan yang dikelola oleh remote control plane, dan secara default menggunakan komunikasi mTLS, mendukung gateway ASM timur-barat.
ASM remote control plane bertentangan dengan fitur Use the Kubernetes API of clusters on the data plane to access Istio resources. Sebelum mengaktifkan remote control plane, pastikan fitur ini dinonaktifkan.
Prasyarat
Sebuah instance ASM telah dibuat, dan versi instansinya adalah 1.22 atau lebih tinggi. Untuk informasi lebih lanjut, lihat Buat Instance ASM.
Dua kluster data plane telah ditambahkan ke instance ASM. Untuk informasi lebih lanjut, lihat Tambahkan Kluster ke Instance ASM.
cluster-1 merujuk pada kluster ACK Alibaba Cloud, di mana proxy sidecar dapat terhubung langsung ke ASM control plane.
cluster-2 merujuk pada kluster terdaftar eksternal atau kluster remote, di mana proxy sidecar tidak dapat terhubung langsung ke ASM control plane, atau lingkungan jaringan untuk koneksi terbatas. Untuk informasi lebih lanjut tentang cara menambahkan kluster non-Alibaba Cloud ke instance ASM, lihat Kelola Aplikasi Kluster Terdaftar melalui ASM atau Kelola Kluster Kubernetes yang Diimpor melalui kubeconfig.
Langkah 1: Aktifkan kemampuan remote control plane
Gunakan kubeconfig dari instance ASM dan jalankan perintah berikut untuk mengubah sumber daya ASMMeshconfig di dalam kluster.
kubectl edit ASMMeshconfigKonfigurasikan
.spec.externalIstiodConfigurationsdalam konten berikut ke dalam ASMMeshconfig.apiVersion: istio.alibabacloud.com/v1beta1 kind: ASMMeshConfig metadata: name: default spec: ...... externalIstiodConfigurations: ${cluster-2's ClusterID}: replicas: 2 # Konfigurasi sumber daya juga didukung di sini, dan struktur bidang konfigurasi sumber daya sama dengan pod. Jika kosong, konfigurasi default yang disediakan oleh ASM digunakan.CatatanSetelah beralih ke remote control plane, ASM gateway di dalam kluster akan restart. Kami sarankan Anda mengevaluasi dampak sebelum melakukan operasi ini.
Langkah 2: Sebarkan aplikasi dan lakukan pengujian
Sebarkan aplikasi sleep dan aplikasi httpbin ke cluster-2. Untuk informasi lebih lanjut, lihat Sebarkan Aplikasi httpbin.
Gunakan kubeconfig dari cluster-2 dan jalankan perintah berikut:
kubectl get podOutput yang Diharapkan:
NAME READY STATUS RESTARTS AGE httpbin-7df7fxxxxx-xxxxx 2/2 Running 0 3h15m sleep-6b7f9xxxxx-xxxxx 2/2 Running 0 3h15mAnda dapat melihat bahwa kedua pod telah diinjeksi dengan sidecar dan berada dalam status running.
Jalankan perintah berikut untuk mengakses httpbin dari aplikasi sleep:
kubectl exec deploy/sleep -it -- curl httpbin:8000/status/418Output yang Diharapkan:
-=[ teapot ]=- _...._ .' _ _ `. | ."` ^ `". _, \_;`"---"`|// | ;/ \_ _/ `"""`
Langkah 3: Instruksi akses timbal balik kluster
Secara default, beban kerja yang dikelola oleh managed control plane dapat mengakses layanan dari remote control plane, sedangkan layanan dari remote control plane tidak dapat mengakses layanan dari managed control plane.
Jika Anda tidak memerlukan akses timbal balik antar kluster, Anda dapat menggunakan fitur retensi lalu lintas intra-kluster. Untuk informasi lebih lanjut, lihat Aktifkan Fitur Retensi Lalu Lintas Intra-Kluster Lokal ASM dalam Skenario Multi-Kluster.
Jika Anda memerlukan akses timbal balik antar kluster, lihat Capai Akses Timbal Balik antara Beban Kerja Remote Control Plane dan Managed Control Plane.