Belajar Kubernetes ( Mengkonfigurasi Name-based Virtual Hosting dengan Nginx Ingress Controller di Kubernetes)

Engineer Palsu
2 min readJul 8, 2023

--

Dalam Kubernetes, sumber daya Ingress memberikan cara untuk mengekspos rute HTTP dan HTTPS dari luar cluster ke layanan di dalam cluster. Untuk mengelola lalu lintas Ingress dengan efisien, tersedia berbagai Ingress controller, dan salah satu pilihan populer adalah Nginx-based Ingress Controller. Dalam artikel ini, kita akan menjelajahi cara mengkonfigurasi Nginx Ingress Controller untuk Name-based virtual hosting, yang memungkinkan beberapa nama domain dilayani oleh layanan backend yang berbeda.

Persyaratan

Sebelum kita memulai konfigurasi, pastikan Anda memiliki persyaratan berikut:

  1. Cluster Kubernetes yang berjalan.
  2. Command line tools kubectl terinstal dan dikonfigurasi untuk terhubung ke cluster Anda.
  3. Nginx Ingress Controller sudah diterapkan di cluster Anda. Jika belum terpasang, Anda dapat mengikuti dokumentasi resmi untuk instruksi instalasi.

Mengkonfigurasi Name-based Virtual Hosting dengan Nginx Ingress Controller

Untuk mengkonfigurasi Name-based virtual hosting dengan Nginx Ingress Controller, kita akan menggunakan sumber daya Ingress Kubernetes. Berikut ini contoh konfigurasi YAML:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: www.engineerpalsu.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: web-service
port:
number: 80
- host: www.blog.engineerpalsu.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: blog-service
port:
number: 80

Mari kita pahami setiap bagian dari konfigurasi tersebut:

  1. Bagian metadata: Menyediakan informasi metadata untuk sumber daya Ingress, termasuk namanya.
  2. Bagian annotations: Memungkinkan Anda menambahkan opsi konfigurasi tambahan. Pada contoh ini, kita menggunakan annotasi nginx.ingress.kubernetes.io/rewrite-target untuk mengubah kembali path URL.
  3. Bagian spec: Mendefinisikan keadaan yang diinginkan untuk sumber daya Ingress.
  4. Bagian rules: Menentukan aturan rute untuk Ingress. Setiap aturan terdiri dari host dan konfigurasi backend yang sesuai.
  5. host: Menentukan domain atau nama host yang aturannya berlaku.
  6. Bagian http: Mendefinisikan konfigurasi rute HTTP untuk host tersebut.
  7. Bagian paths: Menentukan aturan rute berdasarkan path untuk host tersebut.
  8. path: Menentukan path URL yang harus cocok dengan aturan ini.
  9. pathType: Menentukan jenis pencocokan yang digunakan untuk path. Pada contoh ini, kami menggunakan tipe Prefix untuk mencocokkan semua path yang memiliki awalan yang diberikan.
  10. Bagian backend: Menentukan konfigurasi backend untuk path yang cocok.
  11. Bagian service: Menentukan Service Kubernetes yang harus menerima lalu lintas untuk path yang cocok.
  12. name: Menentukan nama Service.
  13. port: Menentukan port Service yang akan menerima lalu lintas.

Menerapkan Konfigurasi

Untuk menerapkan konfigurasi Ingress, ikuti langkah-langkah berikut:

  1. Simpan konfigurasi YAML di atas dalam sebuah file, misalnya my-ingress.yaml.
  2. Buka terminal dan navigasikan ke direktori di mana Anda menyimpan file YAML tersebut.
  3. Jalankan kubectl apply -f my-ingress.yaml .

--

--

Engineer Palsu
Engineer Palsu

No responses yet