Topik ini menjelaskan cara mencapai akses timbal balik antar kluster setelah menggunakan fitur bidang kontrol jarak jauh ASM.
Prasyarat
Anda telah menyelesaikan semua langkah dalam Mengurangi latensi dorong menggunakan lapisan kontrol jarak jauh ASM. Dalam topik ini, cluster-1 merepresentasikan kluster Alibaba Cloud Container Service for Kubernetes (ACK) yang dikelola oleh lapisan kontrol terkelola ASM, sedangkan cluster-2 merepresentasikan kluster non-ACK yang dikelola oleh lapisan kontrol jarak jauh ASM.
Langkah-langkah dalam topik ini mengharuskan Anda beralih antar file kubeconfig. Gabungkan file kubeconfig untuk cluster-1 dan cluster-2 ke dalam satu file konfigurasi yang sama, lalu gunakan perintah
kubectl config use-contextuntuk beralih antar kluster. Anda juga dapat menggunakan kubecm atau kubectx untuk mengelola file kubeconfig dari beberapa kluster.Anda telah mengonfigurasi jaringan kluster dan gerbang timur-barat, serta menerapkan aplikasi httpbin dan sleep di kedua kluster, yaitu cluster-1 dan cluster-2. Untuk informasi selengkapnya, lihat Mencapai interkoneksi lintas jaringan multi-kluster menggunakan gerbang timur-barat ASM.
Langkah 1: Uji akses dari cluster-1 ke cluster-2
Gunakan file kubeconfig untuk cluster-1 untuk menjalankan perintah berikut. Perintah ini mengubah skala aplikasi httpbin di cluster-1 menjadi 0 replika untuk tujuan pengujian.
kubectl scale deployment httpbin --replicas 0Gunakan file kubeconfig untuk cluster-1 untuk menjalankan perintah berikut guna mengakses aplikasi httpbin dari aplikasi sleep di cluster-1.
kubectl exec deployment/sleep -it -- curl httpbin:8000/status/418Output yang Diharapkan:
-=[ teapot ]=- _...._ .' _ _ `. | ."` ^ `". _, \_;`"---"`|// | ;/ \_ _/ `"""`Keluaran tersebut menunjukkan bahwa akses berhasil. Permintaan diproses oleh aplikasi httpbin di cluster-2, dan komunikasi dienkripsi menggunakan mutual Transport Layer Security (mTLS).
Langkah 2: Uji akses cluster-1 dari cluster-2
Gunakan file YAML berikut untuk membuat sumber daya ClusterRole dan ClusterRoleBinding di cluster-1. Lapisan kontrol jarak jauh cluster-2 menggunakan ClusterRole ini untuk memperoleh informasi layanan dari cluster-1.
Pastikan Anda telah mengonfigurasi konteks kubectl. Konteks untuk cluster-1 harus diberi nama cluster-1, dan konteks untuk cluster-2 harus diberi nama cluster-2.
Instal alat istioctl. Pastikan versi istioctl kompatibel dengan versi ASM Anda. Alihkan direktori kerja Anda ke folder istio yang telah diekstrak dan jalankan perintah berikut.
# Ganti <YOUR_CLUSTER1_ID> dengan ID cluster-1. bin/istioctl create-remote-secret \ --context=cluster-1 \ --name=<YOUR_CLUSTER1_ID> | \ kubectl apply -f - --context=cluster-2Setelah menyelesaikan langkah ini, sebuah rahasia (secret) dibuat di namespace istio-system cluster-2. Rahasia tersebut berisi kredensial akses yang digunakan untuk terhubung ke cluster-1. Kelola izin pada rahasia ini untuk mencegah kebocoran.
Gunakan file kubeconfig untuk cluster-1 untuk menjalankan perintah berikut guna mengubah jumlah replika aplikasi httpbin menjadi 1.
kubectl scale deployment httpbin --replicas 1Gunakan file kubeconfig untuk cluster-2 untuk menjalankan perintah berikut guna mengubah jumlah replika aplikasi httpbin menjadi 0.
kubectl scale deployment httpbin --replicas 0Gunakan file kubeconfig untuk cluster-2 untuk menjalankan perintah berikut guna menguji akses dari cluster-2 ke aplikasi httpbin di cluster-1.
kubectl exec deployment/sleep -it -- curl httpbin:8000/status/418Keluaran yang diharapkan:
-=[ teapot ]=- _...._ .' _ _ `. | ."` ^ `". _, \_;`"---"`|// | ;/ \_ _/ `"""`