Service Mesh ASM mendukung integrasi dengan registri layanan Consul untuk membantu migrasi layanan mikro ke ASM. Topik ini menjelaskan cara mengintegrasikan registri layanan Consul dengan ASM.
Prasyarat
-
Instans ASM Anda harus menjalankan versi v1.7.5.31-g28ec7490-aliyun atau yang lebih baru.
-
Consul telah diterapkan sebagai registri layanan. Untuk informasi selengkapnya, lihat Installing Consul on Kubernetes.
-
Pod di kluster Kubernetes yang ditambahkan ke Service Mesh harus dapat mengakses titik akhir server Consul. Misalnya, server Consul diinstal di kluster Kubernetes yang sama dan mengekspos titik akhir publik, atau menyediakan titik akhir internal yang dapat diakses.
-
Layanan contoh, termasuk Web, Web2, dan layanan Consul bawaan, harus terdaftar di Consul. Untuk informasi selengkapnya, lihat Services.
Latar Belakang
ASM menyediakan fitur untuk menghubungkan ke registri layanan Consul, yang memfasilitasi migrasi layanan mikro ke ASM dengan memungkinkan layanan di dalam Service Mesh memanggil layanan di luar Service Mesh. ASM tidak secara otomatis mendaftarkan layanan dari dalam Service Mesh ke registri layanan Consul. Untuk memungkinkan layanan di luar Service Mesh memanggil layanan di dalam service mesh, Anda harus mendaftarkan secara manual layanan dari dalam Service Mesh ke registri layanan Consul.
Langkah 1: Dapatkan konfigurasi ASM-se-syncer
-
Dapatkan ID instans ASM.
-
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
-
Pada halaman Mesh Management, temukan ID instans target Anda di kolom Name/ID.
-
-
Dapatkan ID wilayah kluster.
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Cluster Information.
-
Pada bagian Basic Information, lihat wilayah kluster tersebut. Misalnya, jika wilayahnya adalah Tiongkok (Beijing), ID wilayahnya adalah cn-beijing. Untuk informasi selengkapnya tentang wilayah, lihat Wilayah yang didukung.
-
Dapatkan ID AccessKey dan Rahasia AccessKey. Untuk informasi selengkapnya, lihat Buat pasangan AccessKey.
Langkah 2: Instal ASM-se-syncer
-
Hubungkan ke kluster Anda menggunakan kubectl. Untuk informasi selengkapnya, lihat Dapatkan file kubeconfig kluster dan gunakan kubectl untuk menghubungkan ke kluster.
-
Instal Helm di mesin lokal Anda. Untuk informasi selengkapnya, lihat dokumentasi Helm.
CatatanSetelah Anda terhubung ke kluster dengan kubectl, klien Helm secara otomatis menggunakan file KubeConfig untuk terhubung ke kluster.
-
Unduh dan ekstrak chart Helm asm-se-syncer ke mesin lokal Anda.
-
Masuk ke folder asm-se-syncer dan temukan file values.yaml. Pada file values.yaml, tambahkan ID ASM, ID wilayah kluster, ID AccessKey, dan Rahasia AccessKey, ubah informasi layanan Consul berikut, lalu simpan file values.yaml.
[ { "name": "consul-test", "prefix": "consul-", "type": "consul", "endpoint": "http://consul-server.consul:8500", "toNamespace": "default" } ]Parameter
Deskripsi
nameNama unik untuk registri layanan.
prefixAwalan untuk nama sumber daya service entry yang dihasilkan.
typeJenis registri layanan. Satu-satunya nilai yang didukung adalah
consul.endpointAlamat titik akhir registri layanan.
toNamespaceNamespace tempat sumber daya service entry yang dihasilkan dibuat. Jika namespace belum ada, namespace tersebut akan dibuat secara otomatis.
Untuk menghubungkan ke beberapa registri layanan Consul, tambahkan konfigurasi untuk setiap registri ke file values.yaml. Lalu, simpan file values.yaml.
[ { "name": "consul-test01", "prefix": "consul01-", "type": "consul", "endpoint": "http://consul-server01.consul:8500", "toNamespace": "default" }, { "name": "consul-test02", "prefix": "consul02-", "type": "consul", "endpoint": "http://consul-server02.consul:8500", "toNamespace": "default" } ] -
Jalankan perintah berikut untuk menginstal ASM-se-syncer.
helm install -f values.yaml se-syncer ./Setelah ASM-se-syncer diinstal, ASM secara otomatis terhubung ke registri layanan Consul, menginstal komponen asm-serviceregistry-syncer di kluster ACK, dan menyinkronkan layanan dari Consul ke Service Mesh.
Langkah 3: Verifikasi integrasi Consul
-
Periksa status instalasi komponen ASM.
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
-
Pada halaman Deployments, temukan komponen bernama asm-serviceregistry-syncer.
Jika komponen berada dalam status siap 1/1, berarti komponen tersebut berjalan dengan benar.
-
Periksa status sinkronisasi sumber daya service entry.
-
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
-
Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih .
-
Pada halaman External Service(ServiceEntry), verifikasi bahwa layanan yang terdaftar di Consul telah disinkronkan ke Service Mesh.
Catatan-
Pada halaman External Service(ServiceEntry), nama layanan Consul mengikuti format:
[prefix]-[nama layanan di Consul]. Awalan tersebut adalah nilai yang ditentukan untuk parameterprefix. -
Pada halaman External Service(ServiceEntry), namespace layanan Consul adalah nilai parameter
toNamespaceyang Anda tentukan.
-
-
FAQ
Bagaimana cara memanggil layanan yang telah disinkronkan?
Setelah kluster layanan pemanggil menjadi bagian dari bidang data service mesh, Anda dapat memanggil layanan yang telah disinkronkan dengan salah satu cara berikut:
-
Metode 1: Aktifkan proxy DNS dan panggil layanan menggunakan hostname dan port dari bidang
hostspada service entry.-
Aktifkan proxy DNS. Untuk informasi selengkapnya, lihat Gunakan fitur proxy DNS di instans ASM.
-
Dapatkan hostname dan port untuk memanggil layanan.
-
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
-
Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih .
-
Pada halaman External Service(ServiceEntry), temukan service entry target dan klik View YAML di kolom Operator.
Pada kotak dialog Edit, dapatkan hostname dan port, lalu gunakan http://<hostname>:<port> untuk memanggil layanan. Pada file YAML ServiceEntry, item konfigurasi utama
hostsdiatur kepro-qf-test, dan nomor port (number) diatur ke80.- apiVersion: istio.alibabacloud.com, controller: true kind: ASMServiceRegistry name: default uid: 5d301b4e-39bc-46b5-xxx resourceVersion: '432158678' selfLink: >- /apis/networking.istio.io/v1beta1/naxxx uid: e446b651-be82-4e13-99xxx spec: addresses: - 172.30.xxx endpoints: - address: 172.xxx ports: http: 80 hosts: - pro-qf-test ports: - name: http number: 80 protocol: HTTP resolution: STATIC
-
-
-
Metode 2: Panggil layanan menggunakan alamat dari bidang
endpointspada External Service(ServiceEntry).-
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
-
Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih .
-
Pada halaman External Service(ServiceEntry), temukan service entry target dan klik View YAML di kolom Operator.
Pada kotak dialog Edit, temukan alamat tersebut. Panggil layanan menggunakan format http://<address>. Pada YAML, item konfigurasi utamanya adalah bidang
addressdi bawahspec.endpoints.- apiVersion: istio.alibacloud.com controller: true kind: ASMServiceRegistry name: default uid: 5d301b4e-39bc-46b5-xxx resourceVersion: '432158678' selfLink: >- /apis/networking.istio.io/v1beta1/naxxx uid: e446b651-be82-4e13-99xxx spec: addresses: - 172.30.xxx endpoints: - address: 172.xxx ports: http: 80 hosts: - pro-qf-test ports: - name: http number: 80 protocol: HTTP resolution: STATIC
-
Bagaimana cara kerja sinkronisasi layanan?
Layanan yang terdaftar di Consul secara otomatis disinkronkan ke Istio sebagai sumber daya service entry. Ketika suatu layanan dihapus atau diperbarui di Consul, perubahan tersebut secara otomatis disinkronkan ke service entry yang sesuai di Istio.
Bagaimana cara menonaktifkan integrasi Consul?
Jalankan perintah berikut untuk menghapus sumber daya sinkronisasi Consul.
helm uninstall se-syncer