Kubernetes Cluster: Creating Ingresses
Ingress adalah load balancer pada Kubernetes Cluster yang mengelola akses eksternal ke layanan, menyediakan terminasi SSL dan virtual hosting berbasis nama. Ini diatur melalui serangkaian aturan (spec) yang dicocokkan dengan semua permintaan masuk.
Dibandingkan dengan layanan yang diekspos melalui NodePort, ingress adalah opsi yang lebih kuat tetapi juga lebih rumit. Ini paling berguna saat Anda perlu mengekspos beberapa layanan di bawah alamat IP yang sama. Selain itu, ingress dikelola oleh controller, yang menyediakan banyak fitur secara otomatis (SSL, autentikasi, routing, dll.).
Ingress dalam Kubernetes Cluster secara default dikelola oleh controller ingress Traefik, dengan opsi HAProxy dan NGINX yang tersedia di versi paket 1.15.5 mendatang. Controller ini memonitor objek, menganalisis spesifikasi/annotasi, dan menerjemahkannya menjadi aturan pengalihan.
Tidak mungkin untuk mengubah controller ingress yang dipilih melalui add-on manajemen Kubernetes atau beberapa alat otomatisasi lainnya setelah instalasi. Operasi ini masih bisa dilakukan secara manual, jangan ragu untuk menghubungi dukungan jika Anda membutuhkan bantuan.
Spec ingress adalah kombinasi dari aturan jalur, layanan backend, dan port. Misalnya, ingress Anda mungkin terlihat seperti berikut:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
labels:
app: myapp
name: myapp
annotations:
kubernetes.io/ingress.class: traefik
ingress.kubernetes.io/secure-backends: "true"
traefik.frontend.rule.type: PathPrefixStrip
spec:
rules:
- http:
paths:
- path: /myapp
backend:
serviceName: myapp
servicePort: 8080
Contoh ini mengekspos layanan myapp, yang terikat ke port 8080 pada jalur domain default lingkungan Kubernetes Anda dengan ekor /myapp (mis. https://${envName}.${platformDomain.com}/myapp
). Untuk informasi tambahan tentang konfigurasi aturan ingress (termasuk routing berbasis jalur dan subdomain), lihat dokumentasi resmi.