Anda dapat menggunakan Service Mesh (ASM) untuk mengirim salinan lalu lintas yang ditujukan ke layanan ke layanan yang dipantulkan. Topik ini menjelaskan cara mengonfigurasi pemantulan.
Prasyarat
Persiapan telah selesai, dan layanan helloworld serta sleep telah diterapkan. Untuk informasi lebih lanjut, lihat Persiapan.
Prosedur
Periksa apakah konfigurasi layanan berlaku.
Gunakan kubectl untuk terhubung ke Container Service for Kubernetes (ACK) cluster berdasarkan informasi dalam file kubeconfig, lalu jalankan perintah berikut untuk mengaktifkan bash untuk layanan sleep:
kubectl exec -it deploy/sleep -- shJalankan perintah berikut untuk mengirim permintaan ke layanan helloworld:
curl helloworld:5000/helloOutput yang diharapkan:
Hello version: v2, instance: helloworld-v2-6b96c5684-4**** Hello version: v1, instance: helloworld-v1-6d77f4c4cf-p****Output yang diharapkan adalah bahwa helloworld-v1 atau helloworld-v2 secara acak merespons permintaan.
Konfigurasikan aturan lalu lintas untuk layanan helloworld, konfigurasikan helloworld-v1 untuk menerima dan merespons permintaan, serta memantulkan permintaan ke helloworld-v2.
Gunakan konten berikut untuk mengonfigurasi aturan tujuan. Untuk informasi lebih lanjut, lihat Kelola aturan tujuan.
apiVersion: networking.istio.io/v1beta1 kind: DestinationRule metadata: name: helloworld namespace: default spec: host: helloworld subsets: - labels: version: v1 name: v1 - labels: version: v2 name: v2Gunakan konten berikut untuk membuat layanan virtual. Untuk informasi lebih lanjut, lihat Kelola layanan virtual.
apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: helloworld-vs namespace: default spec: hosts: - helloworld http: - mirror: host: helloworld subset: v2 route: - destination: host: helloworld subset: v1
Periksa apakah konfigurasi berlaku.
Gunakan kubectl untuk terhubung ke cluster ACK berdasarkan informasi dalam file kubeconfig, lalu jalankan perintah berikut untuk mengaktifkan bash untuk layanan sleep:
kubectl exec -it deploy/sleep -- shJalankan perintah berikut untuk mengirim permintaan ke layanan helloworld:
curl helloworld:5000/helloOutput yang diharapkan selalu bahwa helloworld-v1 merespons permintaan.
Hello version: v1, instance: helloworld-v1-6d77f4c4cf-p****Lihat topologi layanan. Untuk informasi lebih lanjut, lihat Gunakan Mesh Topology untuk melihat topologi aplikasi.
Output yang diharapkan: Permintaan disalin ke helloworld-v2.
