Ingress: Ingress Object + Ingress Controller
Objek Ingress:
Sama seperti Obyek Layanan, kecuali ia tidak melakukan apa pun dengan sendirinya. Objek Ingress hanya menjelaskan cara untuk merutekan lalu lintas Layer 7 ke cluster Anda, dengan menentukan hal-hal seperti jalur permintaan, domain permintaan, dan layanan target kubernetes, sementara objek layanan sebenarnya menciptakan layanan
Pengontrol Ingress:
Layanan yang:
1. listens on specific ports (usually 80 and 443) for web traffic
2. Listens for the creation, modification, or deletion of Ingress Objects
3. Creates internal L7 routing rules based on these Ingress Objects
Sebagai contoh, Nginx Ingress Controller, dapat menggunakan layanan untuk mendengarkan pada port 80 dan 443 dan kemudian membaca Objek Ingress baru dan mem-parsingnya ke bagian server {} baru yang secara dinamis ditempatkan di nginx.conf
LoadBalancer: Penyedia Penyeimbang Beban Eksternal + Jenis Layanan
Penyedia Penyeimbang Beban Eksternal:
Penyedia Penyeimbang Beban Eksternal biasanya dikonfigurasikan dalam cloud seperti AWS dan GKE dan menyediakan cara untuk menetapkan IP eksternal melalui penciptaan penyeimbang beban eksternal. Fungsionalitas ini dapat digunakan dengan menunjuk suatu layanan sebagai tipe "LoadBalancer".
Jenis Layanan:
Ketika jenis layanan diatur ke LoadBalancer, Kubernetes mencoba membuat dan kemudian memprogram penyeimbang beban eksternal dengan entri untuk pod Kubernetes, dengan demikian menetapkan mereka IP eksternal.
Pengontrol layanan Kubernetes mengotomatiskan penciptaan penyeimbang beban eksternal, pemeriksaan kesehatan (jika perlu), aturan firewall (jika perlu) dan mengambil IP eksternal LoadBalancer yang baru dibuat atau dikonfigurasi yang dialokasikan oleh penyedia cloud dan mengisinya dalam objek layanan.
Hubungan:
Layanan Pengontrol Ingress sering ditetapkan sebagai tipe LoadBalancer, sehingga permintaan http dan https dapat diproksikan / dialihkan ke layanan internal tertentu melalui ip eksternal.
Namun, LoadBalancer tidak sepenuhnya diperlukan untuk ini. Karena, melalui penggunaan hostNetwork atau hostPort, Anda secara teknis dapat mengikat port pada host ke layanan (memungkinkan Anda untuk mengunjunginya melalui host eksternal ip: port). Meskipun secara resmi ini tidak dianjurkan karena menggunakan port pada node yang sebenarnya.
Referensi:
https://kubernetes.io/docs/concepts/configuration/overview/#services
https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/
https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#external-load-balancer-providers
https://kubernetes.io/docs/concepts/services-networking/ingress/