Saat aplikasi Kubernetes Anda perlu menerima lalu lintas HTTP dan HTTPS eksternal, Anda dapat membuat Application Load Balancer (ALB) Ingress di Enterprise Distributed Application Service (EDAS) untuk mengarahkan permintaan ke layanan Anda. ALB Ingress kompatibel dengan NGINX Ingress serta mendukung aturan routing kompleks dan penemuan sertifikat otomatis.
Cara kerja ALB Ingress
Saat Anda membuat atau memperbarui resource Ingress, controller ALB Ingress mendeteksi perubahan melalui server API Kubernetes dan secara dinamis menghasilkan objek AlbConfig. Controller tersebut kemudian melakukan operasi berikut secara berurutan:
Membuat instans ALB.
Mengonfigurasi pendengar pada instans ALB.
Membuat aturan routing Ingress.
Mengonfigurasi kelompok server backend.
Tiga objek Kubernetes bekerja sama untuk mengarahkan lalu lintas:
| Object | Peran |
|---|---|
| Service | Abstraksi dari aplikasi yang dideploy di sekelompok Pod replikasi. |
| Ingress | Kumpulan aturan reverse proxy yang mengarahkan permintaan HTTP atau HTTPS ke layanan tertentu berdasarkan hostname dan path URL. |
| AlbConfig | Definisi Sumber Daya Kustom (CRD) yang memiliki pemetaan satu-ke-satu dengan instans ALB. Controller ALB Ingress menggunakan AlbConfig untuk mengelola instans dan pendengar ALB. |

Prasyarat
Sebelum memulai, pastikan Anda telah:
Menambahkan Service ke aplikasi Anda. Untuk informasi selengkapnya, lihat Add a Service.
Controller Ingress ALB yang diinstal di klaster Anda melalui salah satu metode berikut:
Kluster baru: Atur parameter Ingress ke ALB Ingress pada halaman wizard Component Configurations saat pembuatan kluster.
Kluster yang sudah ada: Instal controller ALB Ingress melalui manajemen komponen. Untuk informasi selengkapnya, lihat Manage system components.
Memiliki instans ALB standar di Virtual Private Cloud (VPC) yang sama dengan kluster Kubernetes Anda. Jika belum tersedia, buat instans ALB terlebih dahulu. Untuk informasi selengkapnya, lihat Create an ALB instance.
Buat ALB Ingress
Login ke Konsol EDAS.
Di panel navigasi sebelah kiri, klik Application Routing.
Pada halaman Application Routing (Kubernetes Ingress), pilih wilayah di bilah menu atas, lalu pilih namespace layanan mikro.
Klik Create ALB Ingress.
Pada panel Create ALB Ingress, konfigurasikan parameter berikut:
Catatan Hanya instans ALB standar yang didukung. Instans ALB yang di-bind ke Ingress di satu kluster tidak dapat di-bind ke Ingress di kluster lain. Namun, satu instans ALB dapat melayani beberapa Ingress dalam kluster yang sama.Parameter Deskripsi K8s Cluster Kluster Kubernetes untuk Ingress. Pilih kluster dari daftar drop-down. K8s namespace Namespace tempat Ingress akan dibuat. Nilai yang valid: default(digunakan bila tidak ada namespace yang ditentukan),kube-system(objek yang dibuat sistem), dankube-public(dapat dibaca oleh semua pengguna, termasuk pengguna tanpa autentikasi).Redirect to HTTPS Saat diaktifkan, permintaan HTTP secara otomatis dialihkan ke HTTPS. Application route name Nama unik dalam namespace yang dipilih. Gunakan huruf kecil, angka, dan tanda hubung (-). Nama harus dimulai dengan huruf dan diakhiri dengan huruf atau angka. ALB Instance Instans ALB standar yang akan di-bind ke Ingress. Daftar drop-down hanya menampilkan instans ALB dalam VPC yang sama dengan kluster yang dipilih. Jika belum ada instans ALB, lihat Create an ALB instance. Klik Add forwarding rule dan konfigurasikan aturan routing. Gambar berikut menunjukkan contoh konfigurasi.
Catatan Kombinasi nama domain dan path tertentu hanya dapat dipetakan ke satu Service. Satu Service dapat diakses melalui beberapa kombinasi nama domain dan path. Aturan routing yang sama dapat ada di beberapa Ingress berbeda.Parameter Deskripsi domain name Nama domain yang akan menerima traffic. Path Path URL yang akan dicocokkan. Harus dimulai dengan garis miring ( /).Application Aplikasi target dalam kluster yang dipilih. Pilih dari daftar drop-down. Service name Layanan yang menangani permintaan untuk rute ini. Pilih dari daftar drop-down. Service port Port tempat layanan mendengarkan. Open The TLS Mengaktifkan routing HTTPS ke layanan internal. Saat diaktifkan, tentukan sertifikat TLS dengan membuka Configuration Management > Kubernetes Configurations > tab Secrets di Konsol EDAS. Pilih Secret yang menyimpan sertifikat TLS. Jika belum ada Secret, klik Create Secrets untuk membuatnya. Untuk informasi selengkapnya, lihat Create a Secret. 
Klik Yes untuk membuat Ingress.
Batasan dan pertimbangan
Instans ALB yang melayani Ingress sepenuhnya dikelola oleh EDAS. Modifikasi instans tersebut di konsol ALB dapat menyebabkan gangguan layanan.
Resource Ingress yang dibuat oleh EDAS memiliki label
edas-domain: edas-admindanedas-domain. Jangan memodifikasi atau menghapus resource ini. Objek IngressClass dan AlbConfig yang terkait dengan Ingress tersebut diberi nama dalam formatedas-{alb_id}dan tidak dapat dimodifikasi atau dihapus.Kluster yang menggunakan plug-in jaringan Flannel hanya mendukung tipe layanan NodePort dan LoadBalancer.
Untuk mengonfigurasi routing HTTPS untuk ALB Ingress, aktifkan Open The TLS untuk semua aturan routing Ingress tersebut.
ALB Ingress mendukung penemuan sertifikat otomatis. Setelah Anda mengaktifkan Open The TLS, Anda tidak perlu mengonfigurasi Secret. Namun, Anda harus membeli sertifikat unik untuk nama domain yang sesuai di SSL Certificates Service. Sertifikat tersebut dapat berupa sertifikat wildcard atau sertifikat domain tunggal.
Setelah Anda meng-bind instans ALB standar ke Ingress di suatu kluster, instans ALB tersebut tidak dapat digunakan oleh kluster lain.
Kelola Ingress
Setelah Ingress dibuat, Ingress tersebut akan muncul dalam daftar Ingress pada halaman Application Routing (Kubernetes Ingress). Dari daftar ini, Anda dapat:
Menampilkan detail Ingress, termasuk instans ALB yang di-bind dan aturan routing.
Memodifikasi aturan pengalihan.
Menghapus Ingress.