SAE mendukung pendaftaran dan penemuan layanan untuk aplikasi multibahasa menggunakan K8s Services guna memungkinkan komunikasi antarlayanan. Anda dapat mengonfigurasi nama domain tetap untuk aplikasi yang dapat diakses dalam kluster SAE, sehingga mengatasi perubahan alamat IP instans setelah setiap penerapan. Topik ini menjelaskan cara menggunakan konsol SAE untuk mengonfigurasi akses layanan berbasis K8s Service pada aplikasi.
Latar Belakang
Dalam kerangka kerja layanan mikro terdistribusi, pendaftaran dan penemuan layanan memastikan komunikasi yang andal antara komponen server dan klien saat layanan dimulai maupun dihentikan.
-
Pendaftaran layanan: Instans layanan mendaftarkan informasinya ke registri, yang kemudian dibaca dan di-subscribe oleh klien.
-
Penemuan layanan: Registri menyediakan alamat dan metadata instans layanan kepada klien melalui antarmuka yang telah ditentukan. Klien kemudian menanyakan registri untuk memperoleh alamat layanan yang menjadi dependensinya sebelum melakukan permintaan.
Batasan
-
Nama domain ini hanya dapat digunakan untuk mengakses instans dalam aplikasi SAE yang sama. Untuk mengizinkan akses dari layanan lain seperti FC, ACK, atau ECS, bind Classic Load Balancer (CLB) privat atau publik. Untuk informasi lebih lanjut, lihat Konfigurasikan akses layanan aplikasi dengan menggunakan CLB.
-
Anda tidak dapat menggunakan perintah ping untuk mengakses K8s Service. Sebagai gantinya, akses K8s Service dari kode Anda menggunakan TCP atau UDP. Untuk memeriksa konektivitas jaringan, gunakan perintah ping untuk menguji alamat IP pod aplikasi.
-
Pod aplikasi tidak dapat mengakses dirinya sendiri melalui K8s Service-nya.
-
Jika aplikasi server dan aplikasi klien perlu saling memanggil, keduanya harus memiliki K8s Service.
Prosedur
-
Akses halaman konfigurasi.
Saat pembuatan
-
Masuk ke SAE console. Di panel navigasi sebelah kiri, pilih . Pilih wilayah dan namespace, lalu klik Create Application.
-
Pilih versi aplikasi, lalu klik Create Application.
-
Di halaman wizard Basic Information, konfigurasikan pengaturan lalu klik Next: Advanced Settings.
-
Di halaman wizard Advanced Settings, temukan dan buka bagian Service Registration and Discovery.
Saat penerapan
PeringatanSetelah Anda menerapkan ulang aplikasi, aplikasi akan dimulai ulang. Untuk mencegah error tak terduga seperti gangguan bisnis, kami menyarankan agar Anda menerapkan aplikasi selama jam sepi.
-
Masuk ke SAE console. Di panel navigasi sebelah kiri, pilih . Pilih wilayah dan namespace, lalu klik nama aplikasi Anda.
-
Di halaman Basic Information aplikasi, klik Deploy Application.
-
Di halaman wizard Deploy Application, temukan dan buka bagian Service Registration and Discovery.
-
-
Konfigurasikan pendaftaran dan penemuan layanan berbasis Kubernetes Service.
-
Aktifkan sakelar Kubernetes Service-based service registration and discovery.
-
Konfigurasikan Service name, Port, dan Protocol.
Parameter
Deskripsi
Service name
Masukkan nama layanan kustom. Nama tersebut harus unik per akun dalam satu wilayah dan tidak dapat diubah setelah dibuat.
CatatanSecara default, nama aplikasi digunakan sebagai nama layanan.
Port
Masukkan nomor Port. Nilai valid: 1 hingga 65535.
CatatanAnda dapat menambahkan hingga lima konfigurasi port dan protokol.
Container port
Masukkan port kontainer.
Protocol
Pilih protokol dari daftar drop-down. Protokol berikut didukung:
-
TCP
-
UDP
-
-
Nama domain akses
Di halaman Basic Information aplikasi target, buka bagian Application Access Settings dan lihat informasi pada tab Kubernetes Service-based Access.
Empat jenis nama domain berikut didukung:
-
Untuk mengakses aplikasi dalam namespace yang sama, gunakan nama layanan. Contoh:
demo. -
Untuk mengakses aplikasi lintas namespace, gunakan salah satu format nama domain berikut.
-
demo.nsfooDalam contoh ini,
nsfooadalah namespace kustom. Jika aplikasi target berada di namespace default, gunakandefaultsebagai nama namespace. Contoh:demo.default. -
demo.nsfoo.svc.cluster.local -
demo.nsfoo.svc.cluster.local.cn-hangzhou
-
Contoh pemetaan port: Port adalah 2000, port kontainer adalah 5000, dan protokolnya adalah TCP.