Topik ini menjelaskan cara menambahkan Layanan ke aplikasi untuk memungkinkan komunikasi antar layanan aplikasi dalam kluster.
Informasi latar belakang
Aplikasi yang diterapkan di kluster Container Service for Kubernetes (ACK) pada Enterprise Distributed Application Service (EDAS) biasanya terdiri dari sekelompok pod yang menjalankan docker image yang sama. Pod-pod tersebut memiliki alamat IP independen, tetapi mereka dibuat dan dihapus dengan cepat. Oleh karena itu, Anda tidak dapat mengakses aplikasi dengan mengakses pod-pod yang mungkin dihapus satu per satu.
Layanan memisahkan frontend dari backend, memberikan arsitektur layanan mikro yang longgar.
Jika Anda menerapkan aplikasi di kluster Kubernetes pada EDAS, Anda dapat menggunakan instance Server Load Balancer (SLB) berbasis Internet atau instance SLB berbasis internal untuk mengekspos aplikasi. Anda juga dapat menambahkan Layanan tipe NodePort ke aplikasi untuk memungkinkan akses eksternal menggunakan alamat IP dan port node. Setelah beberapa layanan aplikasi dibuat di kluster Kubernetes yang sama pada EDAS, layanan aplikasi di dalam kluster mungkin perlu saling mengakses. Namun, layanan aplikasi tidak dapat saling mengakses menggunakan instance SLB berbasis Internet atau internal. Dalam hal ini, Anda dapat menambahkan Layanan tipe ClusterIP untuk memungkinkan komunikasi internal di dalam kluster.
Prosedur
Masuk ke .
Di bilah navigasi sisi kiri, pilih Application Management > Applications. Di bilah navigasi atas, pilih wilayah, pilih namespace layanan mikro dari daftar drop-down Microservices Namespace, pilih Kubernetes Cluster dari daftar drop-down Cluster Type, lalu klik name aplikasi yang diinginkan.
Di halaman Application Overview, klik ikon
di sebelah service di bagian Access configuration.CatatanJika Anda telah mengonfigurasi Layanan, nama Layanan dan alamat IP akan ditampilkan. Anda dapat mengklik ikon
untuk mengubah port dan jenis protokol Layanan, atau klik ikon
untuk menghapus Layanan.Di kotak dialog Service, atur parameter sesuai kebutuhan dan klik OK.
Parameter
Deskripsi
Service Name
Nama Layanan. Nama Layanan harus unik.
Nama harus terdiri dari 2 hingga 32 karakter dan dapat berisi huruf kecil, angka, dan tanda hubung (-). Nama harus dimulai dengan huruf dan diakhiri dengan huruf atau angka.
Service Type
Jenis Layanan. Nilai valid: Cluster IP: Layanan ClusterIP. Jenis Layanan ini mengekspos layanan aplikasi menggunakan alamat IP internal kluster. Ini adalah nilai default. Jika Anda memilih opsi ini, layanan aplikasi hanya dapat diakses dari dalam kluster.
Node Port: Layanan NodePort. Jenis Layanan ini mengekspos layanan aplikasi menggunakan alamat IP dan port statis setiap node. Layanan NodePort dapat digunakan untuk merutekan permintaan ke Layanan ClusterIP, yang secara otomatis dibuat oleh sistem. Anda dapat mengakses Layanan NodePort dari luar kluster dengan mengirimkan permintaan ke <NodeIP>:<NodePort>.
External Traffic Policy
Kebijakan untuk mendistribusikan trafik eksternal. Nilai valid: Lokal: Kebijakan ini hanya merutekan trafik ke pod pada node tempat Layanan diterapkan.
Cluster: Kebijakan ini dapat merutekan trafik ke pod pada node lain di kluster.
Service Port
Port frontend Layanan. Aplikasi diakses melalui port ini. Nilai valid: 1 hingga 65535.
Container Port
Port tempat proses mendengarkan. Port ini ditentukan oleh aplikasi. Nilai valid: 1 hingga 65535.
Node Port
Port yang digunakan oleh node untuk mengekspos Layanan. Port ini ditentukan oleh aplikasi. Nilai valid: 30000 hingga 32767.
CatatanParameter ini tersedia jika Anda mengatur parameter Jenis Layanan ke NodePort.
Protocol
Protokol Layanan. Nilai valid: TCP dan UDP. Nilai default: TCP.
CatatanPerhatikan dua hal berikut saat menambahkan Layanan ke aplikasi:
Anda dapat menambahkan beberapa pemetaan port untuk Layanan yang sama. Namun, jika Anda perlu mengatur pemetaan port yang berbeda ke nama Layanan yang berbeda, ulangi Langkah 3 hingga Langkah 4 untuk menambahkan beberapa Layanan.
Saat menambahkan beberapa pemetaan port untuk Layanan yang sama, atur baik port Layanan maupun protokol ke nilai yang berbeda untuk setiap pemetaan port. Misalnya, jika Anda mengatur dua pemetaan port ke 80|8080|TCP dan 80|8081|TCP, kedua pemetaan port tersebut tidak dapat disimpan, dan pesan Pemetaan port memiliki entri duplikat akan muncul.
Verifikasi hasil
Setelah menambahkan Layanan ke aplikasi saat ini, Anda dapat masuk ke pod di kluster ACK dan mengakses aplikasi menggunakan alamat IP tetap Layanan di pod.
Contoh berikut memverifikasi akses ke layanan aplikasi web. Metode verifikasi akses ke layanan jenis lain berbeda.
Masuk ke Konsol ACK.
Di bilah navigasi sisi kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang ingin Anda kelola dan pilih di kolom Actions.
Cloud Shell yang terkait dengan kluster secara otomatis dibuka di bagian bawah halaman. Saat Cloud Shell yang terkait dengan kluster dibuka, sistem secara otomatis memuat file kubeconfig kluster. Kemudian, Anda dapat menggunakan kubectl untuk mengelola kluster.
Jalankan perintah berikut untuk menanyakan semua pod di kluster:
kubectl get podsPod berikut dikembalikan:
NAME READY STATUS RESTARTS AGE store-pre-****-group-1-19-****7569b-f7*** 1/1 Running 0 28h store-prod-***duct-group-1-1-****7f894-zh*** 1/1 Running 0 28hJalankan perintah berikut untuk masuk ke salah satu pod yang dikembalikan:
kubectl exec -it store-prod-***duct-group-1-1-****7f894-zh*** /bin/shJalankan perintah berikut untuk mengakses aplikasi menggunakan alamat IP tetap Layanan:
wget 10.XX.XX.XX:8081 # Alamat IP dan port harus sesuai dengan Layanan Anda.Log yang mirip dengan berikut ini dikembalikan:
Connecting to 10.XX.XX.XX:8081 (10.XX.XX.XX:8081) index.html 100% |*******************************************************| 2203 0:00:00 ETACatatanContoh ini memverifikasi akses ke layanan web sampel. Jika Anda memverifikasi akses ke layanan jenis lain, log yang dikembalikan berbeda dan bervariasi berdasarkan jenis layanan.