Service Mesh (ASM) mendukung koneksi ke satu atau lebih registrasi layanan Consul untuk membantu Anda memigrasikan layanan mikro ke ASM. Topik ini menjelaskan cara menghubungkan instance ASM ke satu atau lebih registrasi layanan Consul.
Prasyarat
Versi instance ASM Anda adalah v1.7.5.31-g28ec7490-aliyun atau yang lebih baru.
Satu atau lebih registrasi layanan Consul telah diterapkan. Untuk informasi lebih lanjut, lihat Menginstal Consul pada Kubernetes.
Sebuah kluster Container Service for Kubernetes (ACK) telah ditambahkan ke instance ASM Anda, dan pod dari kluster ACK dapat mengakses server Consul. Sebagai contoh, server Consul diinstal di kluster ACK yang sama dengan pod, atau server Consul menyediakan titik akhir publik atau internal yang dapat diakses. Dalam kasus-kasus ini, pod dapat mengakses server Consul.
Layanan sampel termasuk Web dan Web2 serta layanan bawaan Consul telah didaftarkan dalam registrasi layanan Consul. Untuk informasi lebih lanjut tentang cara mendaftarkan layanan di Consul, lihat Layanan.
Informasi latar belakang
Setelah menghubungkan instance ASM ke registrasi layanan Consul, layanan di dalam instance ASM dapat memanggil layanan di luar instance ASM saat Anda memigrasikan layanan mikro ke instance ASM. Namun, layanan di dalam instance ASM tidak secara otomatis didaftarkan dalam registrasi layanan Consul setelah instance ASM terhubung ke registrasi layanan Consul. Untuk memastikan bahwa layanan di luar instance ASM dapat memanggil layanan di dalam instance ASM, Anda harus secara manual mendaftarkan layanan di dalam instance ASM dalam registrasi layanan Consul.
Langkah 1: Memperoleh informasi yang diperlukan untuk mengonfigurasi ASM-se-syncer
Lihat ID instance ASM yang ingin Anda hubungkan ke registrasi layanan Consul.
Masuk ke Konsol ASM. Di panel navigasi di sebelah kiri, pilih .
Di halaman Mesh Management, lihat ID instance ASM yang ingin Anda kelola di kolom Name/ID.
Lihat ID wilayah kluster yang ditambahkan ke instance ASM.
Masuk ke Konsol ACK. Di panel navigasi di sebelah kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang Anda inginkan dan klik namanya. Di panel di sebelah kiri, klik Cluster Information.
Di halaman Kluster, lihat wilayah kluster yang ditambahkan ke instance ASM di kolom Region. Sebagai contoh, jika wilayah kluster adalah China (Beijing), ID wilayah kluster adalah cn-beijing. Untuk informasi lebih lanjut tentang wilayah, lihat Wilayah yang Didukung.
Lihat ID AccessKey dan Rahasia AccessKey akun Anda. Untuk informasi lebih lanjut, lihat Buat Pasangan AccessKey.
Langkah 2: Instal ASM-se-syncer
Gunakan kubectl untuk terhubung ke kluster ACK. Untuk informasi lebih lanjut, lihat Dapatkan File kubeconfig Kluster dan Gunakan kubectl untuk Terhubung ke Kluster.
Instal Helm di komputer Anda. Untuk informasi lebih lanjut, lihat Helm.
CatatanSetelah menggunakan kubectl untuk terhubung ke kluster ACK, klien Helm secara otomatis menggunakan file kubeconfig untuk terhubung ke kluster.
Unduh dan ekstrak file asm-se-syncer ke komputer Anda.
Buka file values.yaml di folder asm-se-syncer, tambahkan ID instance ASM yang diperoleh, ID wilayah kluster, ID AccessKey, dan Rahasia AccessKey ke file values.yaml, tentukan parameter yang dijelaskan dalam tabel berikut, dan simpan file values.yaml.
[ { "name": "consul-test", "prefix": "consul-", "type": "consul", "endpoint": "http://consul-server.consul:8500", "toNamespace": "default" } ]Parameter
Deskripsi
nameNama registrasi layanan. Nama tersebut harus unik.
prefixAwalan untuk nama entri layanan yang dihasilkan setelah pendaftaran layanan.
typeTipe registrasi layanan. Atur parameter ini ke consul.
endpointTitik akhir registrasi layanan.
toNamespaceNamespace tempat entri layanan yang dihasilkan berada. Jika namespace yang ditentukan tidak ada, namespace akan dibuat secara otomatis.
Jika Anda ingin menghubungkan instance ASM ke beberapa registrasi layanan Consul, tambahkan ID instance ASM yang relevan, ID wilayah kluster, ID AccessKey, dan Rahasia AccessKey ke file values.yaml, tentukan parameter setiap registrasi layanan, dan 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, instance ASM Anda secara otomatis terhubung ke registrasi layanan Consul, dan Deployment asm-serviceregistry-syncer secara otomatis diinstal di kluster ACK yang ditambahkan ke instance ASM. Selain itu, semua layanan yang didaftarkan dalam registrasi layanan Consul disinkronkan ke instance ASM Anda.
Langkah 3: Periksa koneksi antara instance ASM Anda dan registrasi layanan Consul
Periksa apakah Deployment asm-serviceregistry-syncer telah diinstal.
Masuk ke Konsol ACK. Di panel navigasi di sebelah kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik namanya. Di panel di sebelah kiri, pilih .
Di halaman Deployments, periksa apakah Deployment asm-serviceregistry-syncer ada.

Periksa sinkronisasi entri layanan.
Masuk ke Konsol ASM. Di panel navigasi di sebelah kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi di sebelah kiri, pilih .
Di halaman External Service(ServiceEntry), periksa apakah tiga layanan yang didaftarkan dalam registrasi layanan Consul disinkronkan ke instance ASM Anda.
CatatanDi halaman External Service(ServiceEntry), layanan Consul diberi nama dalam format berikut: [Awalan yang ditentukan di Langkah 2]-[Nama layanan yang didaftarkan di Consul].
Di halaman External Service(ServiceEntry), nama namespace tempat layanan Consul berada adalah nilai parameter
toNamespaceyang ditentukan di Langkah 2.
FAQ
Bagaimana cara memanggil layanan Consul?
Setelah menambahkan kluster tempat layanan Consul berada ke bidang data, Anda dapat memanggil layanan Consul dengan menggunakan dua metode berikut:
Metode 1: Aktifkan fitur Proxy DNS dan gunakan nama host dan nomor port di entri layanan yang sesuai dengan layanan Consul untuk memanggil layanan Consul.
Aktifkan fitur Proxy DNS. Untuk informasi lebih lanjut, lihat Gunakan Fitur Proxy DNS dalam Instance ASM.
Dapatkan nama host dan nomor port yang digunakan untuk memanggil layanan Consul.
Masuk ke Konsol ASM. Di panel navigasi di sebelah kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi di sebelah kiri, pilih .
Di halaman External Service(ServiceEntry), temukan entri layanan yang ingin Anda lihat dan klik YAML di kolom Actions.
Di kotak dialog Edit, peroleh nama host dan nomor port. Kemudian, gunakan URL dalam format http://<Nama Host>:<Nomor Port> untuk memanggil layanan Consul.

Metode 2: Gunakan titik akhir di entri layanan yang sesuai dengan layanan Consul untuk memanggil layanan Consul.
Masuk ke Konsol ASM. Di panel navigasi di sebelah kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi di sebelah kiri, pilih .
Di halaman External Service(ServiceEntry), temukan entri layanan yang ingin Anda lihat dan klik YAML di kolom Actions.
Di kotak dialog Edit, peroleh titik akhir layanan. Kemudian, gunakan URL dalam format http://<Titik Akhir> untuk memanggil layanan Consul.

Bagaimana cara menyinkronkan layanan antara Consul dan Istio?
Setelah mendaftarkan layanan di Consul, layanan tersebut secara otomatis disinkronkan ke Istio sebagai entri layanan. Jika Anda memperbarui atau menghapus layanan, entri layanan di Istio juga diperbarui atau dihapus.
Bagaimana cara menutup koneksi antara instance ASM dan registrasi layanan Consul?
Jalankan perintah berikut untuk menghapus instalasi ASM-se-syncer:
helm uninstall se-syncer