Berita teknologi terbaru, didukung oleh insight dari pakar
Tetap terinformasi tentang tren industri yang paling penting—dan menarik—tentang AI, otomatisasi, data, dan di luarnya dengan buletin Think. Lihat Pernyataan Privasi IBM®.
Kubernetes Ingress adalah objek API yang menyediakan aturan pengarahan untuk mengelola akses pengguna eksternal ke layanan di klaster Kubernetes.
Dalam artikel ini, kita akan melihat bagaimana dan mengapa Anda mungkin perlu mengekspos aplikasi ke luar klaster Kubernetes Anda, berbagai opsi yang tersedia, dan situasi di mana Kubernetes Ingress paling berguna. Blog ini berasumsi bahwa Anda memiliki pemahaman dasar tentang Kubernetes, tetapi jika Anda membutuhkan informasi latar belakang lebih lanjut, lihat sumber daya berikut ini:
Ada beberapa cara untuk mengekspos aplikasi Anda ke luar klaster Kubernetes dan Anda harus memilih yang sesuai berdasarkan contoh penggunaan spesifik Anda.
Empat opsi utama yang akan kami bandingkan dalam posting ini adalah: ClusterIP, NodePort, LoadBalancer, dan Ingress. Masing-masing menyediakan cara untuk mengekspos layanan dan berguna dalam situasi yang berbeda. Layanan pada dasarnya adalah frontend untuk aplikasi Anda yang secara otomatis mengalihkan lalu lintas ke pod yang tersedia dengan cara yang didistribusikan secara merata. Layanan adalah cara abstrak untuk mengekspos aplikasi yang berjalan pada sekumpulan pod sebagai layanan jaringan. Pod tidak dapat diubah yang berarti bahwa ketika mati mereka tidak akan dibangkitkan. Klaster Kubernetes membuat pod baru di node yang sama atau di node baru setelah pod mati.
Mirip dengan pod dan penerapan, layanan adalah sumber daya di Kubernetes. Layanan menyediakan satu titik akses dari luar klaster Kubernetes dan memungkinkan Anda mengakses sekumpulan pod replika secara dinamis.
Untuk akses aplikasi internal dalam klaster Kubernetes, ClusterIP adalah metode yang disukai. Ini adalah pengaturan default di Kubernetes dan menggunakan alamat IP internal untuk mengakses layanan.
Untuk mengekspos layanan ke permintaan jaringan eksternal, NodePort, LoadBalancer, dan Ingress adalah opsi yang bisa dipilih. Kita akan membahas Ingress terlebih dahulu dan membandingkan semua layanan di bagian lain artikel ini.
Tetap terinformasi tentang tren industri yang paling penting—dan menarik—tentang AI, otomatisasi, data, dan di luarnya dengan buletin Think. Lihat Pernyataan Privasi IBM®.
Kubernetes Ingress adalah objek API yang menyediakan aturan pengarahan untuk mengelola akses pengguna eksternal ke layanan di klaster Kubernetes, biasanya melalui HTTPS/HTTP. Dengan Ingress, Anda dapat dengan mudah mengatur aturan untuk merutekan lalu lintas tanpa membuat banyak Penyeimbang Beban atau mengekspos setiap layanan pada node. Ini menjadikannya pilihan terbaik untuk digunakan di lingkungan produksi.
Di lingkungan produksi, Anda biasanya memerlukan pengarahan berbasis konten, dukungan untuk beberapa protokol, dan autentikasi. Ingress memungkinkan Anda untuk mengonfigurasi dan mengelola kemampuan ini di dalam klaster.
Ingress terdiri dari objek API Ingress dan Pengontrol Ingress. Seperti yang telah kita bahas, Kubernetes Ingress adalah objek API yang menjelaskan status yang diinginkan untuk mengekspos layanan ke luar klaster Kubernetes. Pengontrol Ingress sangat penting karena ini adalah implementasi aktual dari API Ingress. Pengontrol Ingress membaca dan memproses informasi Sumber Daya Ingress dan biasanya berjalan sebagai pod di dalam klaster Kubernetes.
Ingress menyediakan yang berikut:
Untuk gambaran visual singkat tentang Kubernetes Ingress, lihat video berikut:
Jika Kubernetes Ingress adalah objek API yang menyediakan aturan pengalihan untuk mengelola akses eksternal ke layanan, Pengontrol Ingress adalah implementasi aktual dari API Ingress. Pengontrol Ingress biasanya merupakan penyeimbang beban untuk mengarahkan lalu lintas eksternal ke klaster Kubernetes Anda dan bertanggung jawab untuk Layanan Jaringan L4-L7.
Lapisan 4 (L4) mengacu pada tingkat koneksi tumpukan jaringan OSI—beban koneksi eksternal diseimbangkan secara merata di seluruh pod. Lapisan 7 (L7) mengacu pada tingkat aplikasi dari tumpukan OSI—beban koneksi eksternal diseimbangkan di seluruh pod berdasarkan permintaan. Layer 7 sering kali lebih disukai, tetapi Anda sebaiknya memilih Pengontrol Ingress yang memenuhi persyaratan penyeimbangan beban dan pengarahan Anda.
Pengontrol Ingress bertanggung jawab untuk membaca informasi Sumber Daya Ingress dan memproses data tersebut dengan sesuai. Berikut ini adalah contoh Sumber Daya Ingress:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
spec:
backend:
serviceName:ServiceName
servicePort:<Port Number>
Sebagai analogi, jika Kubernetes Ingress adalah sebuah komputer, maka Pengontrol Ingress adalah programer yang menggunakan komputer dan mengambil tindakan. Selanjutnya, Aturan Ingress bertindak sebagai manajer yang mengarahkan programer untuk melakukan pekerjaan menggunakan komputer. Aturan Ingress adalah seperangkat aturan untuk memproses lalu lintas masuk HTTP. Ingress tanpa aturan mengirimkan semua lalu lintas ke satu layanan backend default.
Jika kita melihat lebih dalam, Pengontrol Ingress adalah aplikasi yang berjalan di klaster Kubernetes dan mengonfigurasi penyeimbang beban HTTP sesuai dengan Sumber Daya Ingress. Penyeimbang beban dapat berupa penyeimbang beban perangkat lunak yang berjalan di klaster atau penyeimbang beban perangkat keras atau cloud yang berjalan di luar. Penyeimbang beban yang berbeda memerlukan implementasi Pengontrol Ingress berbeda.
Berbagai Pengontrol Ingress tersedia di pasaran dan penting untuk memilih pengontrol yang tepat untuk mengelola lalu lintas dan beban yang masuk ke klaster Kubernetes Anda.
Ingress, ClusterIP, NodePort, dan LoadBalancer merupakan cara untuk memasukkan lalu lintas eksternal ke dalam klaster Anda, dan masing-masing melakukannya dengan cara yang berbeda. Mari kita lihat bagaimana masing-masing bekerja dan di mana Anda akan menggunakannya.
ClusterIP adalah opsi yang lebih disukai untuk akses layanan internal dan menggunakan alamat IP internal untuk mengakses layanan. Beberapa contoh di mana ClusterIP bisa menjadi pilihan terbaik termasuk debug layanan selama pengembangan dan pengujian, lalu lintas internal, dan dasbor.
NodePort adalah mesin virtual (VM) yang digunakan untuk mengekspos layanan pada nomor Port Statis. Ini terutama digunakan untuk mengekspos layanan di lingkungan nonproduksi (pada kenyataannya, penggunaan produksi tidak disarankan). Sebagai contoh, NodePort akan digunakan untuk mengekspos satu layanan (tanpa persyaratan penyeimbangan beban untuk beberapa layanan).
Metode ini menggunakan LoadBalancer eksternal untuk mengekspos layanan ke Internet. Anda dapat menggunakan LoadBalancer di lingkungan produksi, tetapi Ingress sering kali lebih disukai.
Ingress memungkinkan Anda untuk mengonsolidasikan aturan pengarahan lalu lintas ke dalam satu sumber daya dan berjalan sebagai bagian dari klaster Kubernetes. Beberapa alasan Kubernetes Ingress merupakan opsi yang lebih disukai untuk mengekspos layanan di lingkungan produksi adalah sebagai berikut:
Di lingkungan produksi, Anda biasanya menggunakan Ingress untuk mengekspos aplikasi ke Internet. Aplikasi diakses dari Internet melalui Port 80 (HTTP) atau Port 443 (HTTPS), dan Ingress adalah objek yang memungkinkan akses ke Kubernetes Service Anda dari luar klaster Kubernetes.
Kubernetes Ingress API memungkinkan Anda mengekspos aplikasi yang diterapkan di klaster Kubernetes ke Internet dengan aturan pengarahan ke dalam satu sumber. Untuk mengimplementasikan Ingress, Anda perlu mengonfigurasi Pengontrol Ingress di klaster Anda—ini bertanggung jawab untuk memproses informasi Sumber Daya Ingress dan mengizinkan lalu lintas berdasarkan Aturan Ingress. Penting untuk memilih layanan yang tepat dengan konfigurasi yang sesuai untuk mengekspos aplikasi Anda ke Internet berdasarkan panduan yang tercantum di atas.
Memanfaatkan kekuatan AI dan otomatisasi untuk memecahkan masalah secara proaktif di seluruh tumpukan aplikasi.
Gunakan perangkat lunak dan alat bantu DevOps untuk membangun, menerapkan, dan mengelola aplikasi cloud native di berbagai perangkat dan lingkungan.
Percepat ketangkasan dan pertumbuhan bisnis — terus modernisasi aplikasi Anda di platform apa pun menggunakan layanan konsultasi cloud kami.