Saat kluster bidang data berjalan di luar Alibaba Cloud—baik di penyedia cloud lain maupun di pusat data lokal—proxy sidecar harus mengakses lapisan kontrol Alibaba Cloud Service Mesh (ASM) melalui Internet. Seiring bertambahnya jumlah Pod, koneksi jaringan dan konsumsi bandwidth meningkat secara linear. Selain itu, perubahan konfigurasi atau layanan yang sering terjadi akan meningkatkan latensi push. Lapisan kontrol remote ASM mengatasi masalah ini dengan men-deploy instans lapisan kontrol lokal di dalam kluster eksternal, sehingga proxy sidecar menerima konfigurasi xDS secara lokal, bukan melalui tautan jaringan yang terbatas.
Cara kerja
Saat kluster bidang data berjalan di dalam Virtual Private Cloud (VPC) Alibaba Cloud, proxy sidecar terhubung ke lapisan kontrol ASM terkelola melalui jaringan VPC. Dalam kondisi ini, latensi rendah, push konfigurasi berjalan lancar, dan lapisan kontrol remote tidak diperlukan.
Namun, saat kluster bidang data berjalan di luar Alibaba Cloud, situasinya berubah. Semua Pod terhubung ke lapisan kontrol terkelola melalui Internet, sehingga jumlah koneksi dan penggunaan bandwidth meningkat seiring dengan jumlah Pod. Jika konfigurasi atau layanan sering berubah, latensi push pun meningkat.
Lapisan kontrol remote mengatasi hal ini dengan menjalankan instans lapisan kontrol di dalam kluster eksternal:
Dengan lapisan kontrol remote diaktifkan:
Konfigurasi xDS didorong ke proxy sidecar secara lokal, di dalam kluster.
Hanya sejumlah kecil koneksi yang tersisa antara lapisan kontrol ASM terkelola dan kluster eksternal, yang membawa pembaruan komponen lapisan kontrol serta data penemuan layanan.
Ketergantungan pada tautan jaringan berlatensi rendah dan bandwidth tinggi berkurang secara signifikan.
Batasan
Sebelum mengaktifkan lapisan kontrol remote, tinjau batasan berikut:
Buat resource ASM dengan kubeconfig ASM. Setelah Anda mengaktifkan lapisan kontrol remote, buat semua resource Kubernetes terkait ASM menggunakan kubeconfig dari instans ASM. Jika Anda menggunakan kubeconfig kluster remote, resource tersebut dapat ditimpa.
Penemuan layanan global berlaku. Beban kerja yang dikelola oleh lapisan kontrol ASM terkelola dapat mengakses layanan yang dikelola oleh lapisan kontrol remote. Komunikasi menggunakan mTLS secara default, dan gerbang ASM timur-barat didukung.
Nonaktifkan fitur akses API Kubernetes bidang data terlebih dahulu. Lapisan kontrol remote bertentangan dengan fitur Use the Kubernetes API of clusters on the data plane to access Istio resources. Nonaktifkan fitur tersebut sebelum mengaktifkan lapisan kontrol remote.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Instans ASM yang menjalankan versi 1.22 atau lebih baru. Lihat Create an ASM instance.
Dua kluster bidang data yang telah ditambahkan ke instans ASM. Lihat Add clusters to an ASM instance.
cluster-1: Kluster ACK Alibaba Cloud tempat proxy sidecar terhubung langsung ke lapisan kontrol ASM melalui jaringan VPC.
cluster-2: kluster terdaftar eksternal atau kluster remote tempat proxy sidecar tidak dapat terhubung langsung ke lapisan kontrol ASM, atau jalur jaringannya memiliki bandwidth terbatas. Untuk detail tentang penambahan kluster non-Alibaba Cloud, lihat Manage registered cluster applications through ASM atau Manage Kubernetes clusters imported through kubeconfig.
Siapkan variabel konteks kluster
Untuk menghindari kesalahan saat beralih antar kluster, atur Variabel lingkungan untuk setiap konteks kubeconfig sebelum memulai:
export CTX_ASM=<kubeconfig-context-for-asm-instance>
export CTX_CLUSTER2=<kubeconfig-context-for-cluster-2>Ganti placeholder dengan nilai aktual:
| Placeholder | Description | Example |
|---|---|---|
<kubeconfig-context-for-asm-instance> | Nama konteks kubeconfig untuk instans ASM Anda | asm-mesh-xxx |
<kubeconfig-context-for-cluster-2> | Nama konteks kubeconfig untuk kluster eksternal | cluster-2-context |
Semua perintah selanjutnya dalam panduan ini menggunakan variabel ini.
Aktifkan lapisan kontrol remote
Buka resource ASMMeshConfig untuk diedit:
kubectl --context="${CTX_ASM}" edit ASMMeshConfigTambahkan bagian
externalIstiodConfigurationsdi bawah.spec: Ganti<cluster-2-id>dengan ClusterID cluster-2.apiVersion: istio.alibabacloud.com/v1beta1 kind: ASMMeshConfig metadata: name: default spec: # ... existing configuration ... externalIstiodConfigurations: <cluster-2-id>: replicas: 2 # Optional: specify resource requests and limits. # The structure matches standard Kubernetes pod resource fields. # If omitted, ASM uses default resource settings.CatatanMengaktifkan lapisan kontrol remote akan me-restart gerbang ASM di kluster target. Evaluasi dampaknya terhadap trafik Anda sebelum melanjutkan.
Deploy aplikasi uji dan verifikasi
Deploy aplikasi
sleepdanhttpbinke cluster-2. Lihat Deploy the httpbin application.Konfirmasi bahwa kedua Pod berjalan dengan injeksi sidecar: Output yang diharapkan: Angka
2/2pada kolom READY menunjukkan bahwa proxy sidecar telah diinjeksikan bersama setiap kontainer aplikasi.kubectl --context="${CTX_CLUSTER2}" get podNAME READY STATUS RESTARTS AGE httpbin-7df7fxxxxx-xxxxx 2/2 Running 0 3h15m sleep-6b7f9xxxxx-xxxxx 2/2 Running 0 3h15mKirim permintaan uji dari
sleepkehttpbin: Output yang diharapkan: Teapot ASCII (HTTP 418) mengonfirmasi bahwa trafik mengalir melalui proxy sidecar dan lapisan kontrol remote menyajikan konfigurasi dengan benar.kubectl --context="${CTX_CLUSTER2}" exec deploy/sleep -it -- curl httpbin:8000/status/418-=[ teapot ]=- _...._ .' _ _ `. | ."` ^ `". _, \_;`"---"`|// | ;/ \_ _/ `"""`
Konfigurasi akses lintas kluster
Secara default, beban kerja yang dikelola oleh lapisan kontrol ASM terkelola dapat mengakses layanan dari lapisan kontrol remote. Namun, sebaliknya tidak berlaku—layanan di balik lapisan kontrol remote tidak dapat mengakses layanan di balik lapisan kontrol terkelola.
Pilih opsi yang sesuai dengan kebutuhan Anda:
Tidak diperlukan akses lintas kluster. Pertahankan trafik lokal di setiap kluster menggunakan fitur retensi trafik intra-kluster. Lihat Enable ASM local intra-cluster traffic retention feature in multi-cluster scenarios.
Diperlukan akses lintas kluster dua arah. Aktifkan akses timbal balik antara beban kerja lapisan kontrol remote dan lapisan kontrol terkelola. Lihat Achieve mutual access between remote control plane and managed control plane workloads.