Ingress untuk Akses Eksternal
Konfigurasikan Ingress untuk mengelola akses eksternal ke service, menyediakan perutean HTTP/S dan penyeimbangan beban.
Ingress untuk Akses Eksternal adalah pelajaran DevOps Bootcamp gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar DevOps Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus DevOps Bootcamp mencakup 4 pelajaran total.
Melampaui NodePort & LoadBalancer
Kita telah mempelajari berbagai jenis Layanan Kubernetes seperti NodePort dan LoadBalancer untuk mengekspos aplikasi ke luar.
Meskipun berguna, keduanya dapat menjadi merepotkan saat mengelola kebutuhan akses eksternal yang kompleks, terutama ketika Anda perlu menampung banyak aplikasi atau API pada satu alamat IP dengan aturan perutean tertentu.
Di sinilah Ingress berperan, dengan menawarkan solusi yang lebih kuat dan fleksibel.
Memperkenalkan Ingress Kubernetes
Ingress adalah objek API Kubernetes yang mengelola akses eksternal ke Layanan dalam klaster, terutama untuk lalu lintas HTTP dan HTTPS.
- Ingress bertindak sebagai satu titik masuk untuk permintaan eksternal.
- Ingress memungkinkan perutean HTTP/S berdasarkan nama host atau jalur URL.
- Ingress juga dapat menyediakan fitur seperti penghentian SSL/TLS dan penyeimbangan beban.
Anggaplah Ingress sebagai pengendali lalu lintas cerdas yang mengarahkan lalu lintas web ke Layanan internal yang tepat.
Pengendali Ingress
Resource Ingress itu sendiri hanyalah sekumpulan aturan; resource ini tidak menangani lalu lintas secara langsung. Agar Ingress berfungsi, Anda memerlukan Pengendali Ingress yang berjalan di klaster.
Pengendali Ingress memantau resource Ingress dan mengonfigurasi penyeimbang beban eksternal (atau proksi balik) sesuai dengan aturan yang ditentukan.
Pengendali Ingress yang populer antara lain Nginx, Traefik, serta pengendali khusus cloud seperti GCE Ingress untuk Google Cloud atau AWS Load Balancer Controller.
Cara Kerja Aturan Ingress
Ingress mendefinisikan aturan yang memetakan permintaan eksternal masuk ke Layanan backend tertentu dalam klaster. Aturan ini biasanya menentukan:
- Host: Nama domain (misalnya,
www.my-app.com). - Path: Jalur URL (misalnya,
/api,/blog). - Layanan Backend: Layanan Kubernetes dan porta yang menjadi tujuan penerusan lalu lintas.
Pengendali Ingress mengevaluasi aturan ini untuk setiap permintaan masuk guna menentukan tujuan yang tepat.
Menyusun YAML Ingress
Seperti resource Kubernetes lainnya, Ingress didefinisikan menggunakan manifes YAML. Berikut struktur dasar yang menunjukkan kolom-kolom penting:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-app-ingress
spec:
rules:
- host: myapp.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-web-service
port:
number: 80Ingress Sederhana Berbasis Jalur
Mari buat resource Ingress yang merutekan semua lalu lintas untuk jalur akar (/) dari myapp.example.com ke Layanan bernama my-web-service pada porta 80.
Pastikan Deployment dan Layanan bernama my-web-service sudah berjalan di klaster sebelum menerapkan Ingress ini.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: basic-app-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: myapp.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-web-service
port:
number: 80Menerapkan Ingress Anda
Untuk menerapkan resource Ingress, simpan YAML ke sebuah file (misalnya, basic-ingress.yaml) lalu gunakan kubectl apply:
kubectl apply -f basic-ingress.yaml
Anda dapat memeriksa status Ingress dengan kubectl get ingress. Pengendali Ingress kemudian akan mengonfigurasi penyeimbang beban eksternal berdasarkan aturan tersebut.
Untuk melakukan pengujian, biasanya Anda perlu memperbarui file /etc/hosts lokal (atau DNS) agar myapp.example.com mengarah ke alamat IP eksternal Pengendali Ingress.
Contoh Perutean Berbasis Host
Ingress sangat cocok untuk menampung beberapa aplikasi pada satu alamat IP eksternal dengan menggunakan nama host yang berbeda. Di sini, app1.example.com dirutekan ke service-app1, sedangkan app2.example.com dirutekan ke service-app2.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: host-routing-ingress
spec:
rules:
- host: app1.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: service-app1
port:
number: 80
- host: app2.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: service-app2
port:
number: 80Beberapa Jalur, Satu Host
Anda juga dapat merutekan jalur URL yang berbeda pada nama host yang sama ke Layanan backend yang berbeda. Cara ini ideal untuk arsitektur layanan mikro atau bagian-bagian berbeda dari satu aplikasi.
Misalnya, permintaan ke api.example.com/users diarahkan ke users-service, sedangkan permintaan ke api.example.com/products diarahkan ke products-service.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: path-routing-ingress
spec:
rules:
- host: api.example.com
http:
paths:
- path: /users
pathType: Prefix
backend:
service:
name: users-service
port:
number: 80
- path: /products
pathType: Prefix
backend:
service:
name: products-service
port:
number: 80Pemeriksaan Tujuan Ingress
Manakah dari pilihan berikut yang merupakan manfaat utama penggunaan Ingress Kubernetes?
Ringkasan: Ingress untuk Perutean Cerdas
Bagus! Anda telah mempelajari Ingress Kubernetes, komponen penting untuk mengelola cara pengguna eksternal berinteraksi dengan aplikasi Anda.
- Ingress menyediakan perutean HTTP/S yang fleksibel berdasarkan nama host dan jalur URL.
- Ingress memerlukan Pengendali Ingress (seperti Nginx) untuk mengamati aturan Ingress dan mengonfigurasi perutean.
- Ingress menyederhanakan proses mengekspos beberapa Layanan melalui satu alamat IP eksternal sehingga klaster menjadi lebih efisien dan mudah dikelola.
Menguasai Ingress adalah kunci untuk membangun aplikasi cloud-native yang tangguh dan mudah diakses!
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Ingress untuk Akses Eksternal” gratis?
Ya — teks lengkap “Ingress untuk Akses Eksternal” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus DevOps Bootcamp, upgrade ke CoddyKit PRO. Kursus DevOps Bootcamp mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Ingress untuk Akses Eksternal”?
Konfigurasikan Ingress untuk mengelola akses eksternal ke service, menyediakan perutean HTTP/S dan penyeimbangan beban. Kamu berlatih DevOps Bootcamp dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai DevOps Bootcamp?
Tidak diperlukan pengalaman sebelumnya. DevOps Bootcamp di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Ingress untuk Akses Eksternal” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran DevOps Bootcamp ini?
Ya. Setiap pelajaran DevOps Bootcamp menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Membuka Akses Aplikasi dengan Service
- Jenis Service: ClusterIP, NodePort, LoadBalancer
- Ingress untuk Akses Eksternal
- DNS dan Penemuan Layanan