Panduan ini disusun untuk membantu Anda melakukan pengaturan akses layanan di dalam klaster DKubes dengan memanfaatkan DBalance sebagai Load Balancer.
Saat ini, platform DKubes telah terintegrasi secara native, sehingga Anda dapat langsung memanfaatkan layanan DBalance untuk menangani beban kerja secara otomatis. Dalam arsitektur ini, Ingress berperan sebagai pintu gerbang utama (gateway) yang mengelola serta mendistribusikan lalu lintas data dari luar klaster menuju layanan internal Anda secara efisien, aman, dan terpusat.
A. Membuat HTTPS Ingress (Akses dengan SSL/TLS)
Buat HTTPS Ingress digunakan untuk menyediakan akses aman melalui protokol HTTPS. Ini sangat penting untuk menjaga integritas data dan kepercayaan pengguna dengan mengenkripsi komunikasi antara browser dan server.
Prasyarat Utama
- Telah memiliki kluster DKubes yang aktif.
- Layanan DBalance telah terpasang (attached) pada kluster Anda.
- Dibutuhkan Helm Charts sebagai manajer paket untuk mempermudah instalasi komponen tambahan.
- Cert-Manager Komponen untuk mengelola dan menerbitkan sertifikat SSL secara otomatis.
Langkah-Langkah Konfigurasi
Untuk melakukan konfigurasi Ingress dengan SSL Certificate dapat mengikuti langkah-langkah dibawah ini:
- Instalasi Perangkat Lunak Pendukung
Pastikan kubectl dan Helm sudah terpasang di sistem lokal Anda.
Sebelum melakukan konfigurasi, pastikan kubectl dan Helm sudah terpasang di sistem lokal Anda. Jika belum tersedia, silakan instal melalui panduan resmi instalasi kubectl dan instalasi helm. - Konfigurasi DNS (A Record)
Agar domain Anda dapat mengarah ke Load Balancer, Anda perlu menghubungkan nama domain dengan alamat IP publik DBalance. Ingress bekerja berdasarkan nama domain (hostname). Tanpa DNS yang tepat, lalu lintas internet tidak akan tahu ke mana harus mengarah.

Catatan: Ganti [ip load balancer] dengan ipv4 DBalance Anda, dan [url domain] domain yang Anda gunakan. - Validasi Koneksi pada Dasbor DBalance
Masuk ke Dasbor DBalance dan pastikan status pada bagian Ingress Connected telah tercentang. Hal ini menandakan bahwa jaringan antara Load Balancer dan kluster telah tersinkronisasi dengan baik.
Gambar 1. Dashboard DBalance - Instalasi Cert-Manager
Cert-Manager berfungsi sebagai otoritas penerbit sertifikat otomatis (misalnya melalui Let’s Encrypt). Untuk menambahkan repositori cert-manager dapat menggunakan perintah berikut.helm repo add jetstack https://charts.jetstack.io --force-update
Selanjutnya install cert-manager ke dalam kluster dengan menggunakan perintah berikut.
helm install \ cert-manager jetstack/cert-manager \ --namespace cert-manager \ --create-namespace \ --version v1.20.0 \ --set crds.enabled=true
- Membuat Konfigurasi ClusterIssuer (YAML)
Buat sebuah file baru bernama cluster-issuer.yaml dan masukkan perintah dibawah ini. Pastikan bagian email diisi dengan alamat email aktif untuk menerima notifikasi masa berlaku sertifikat dari Let’s Encrypt.apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: letsencrypt-prod spec: acme: server: https://acme-v02.api.letsencrypt.org/directory email: yourmail@gmail.com privateKeySecretRef: name: letsencrypt-prod solvers: - http01: ingress: ingressClassName: haproxy - Menerapkan Konfigurasi
Jalankan perintah berikut untuk mengirim konfigurasi tersebut ke dalam klaster:
kubectl apply -f cluster-issuer.yaml - Verifikasi Status ClusterIssuer
Setelah diterapkan, Anda harus memastikan bahwa ClusterIssuer tersebut berhasil terdaftar dan siap digunakan. Jika statusnya Ready, berarti cert-manager sudah berhasil mendaftarkan akun ke server Let’s Encrypt.
kubectl get clusterissuer letsencrypt-prod - Persiapan Aplikasi Uji
Untuk memastikan konfigurasi berjalan lancar, jalankan perintah dibawah ini pada kubectl untuk membuat sebuah deployment sederhana pada DKubes dan melakukan expose deployment tersebut dengan type service Cluster IP.# Membuat deployment aplikasi kubectl create deployment httpbin --image kennethreitz/httpbin # Mengekspos aplikasi melalui service internal pada port 80 kubectl expose deployment httpbin --name httpbin-svc --port 80
- Membuat Konfigurasi Ingress HTTPS (YAML)
Buatlah berkas bernama ingress.yaml kemudian tambahkan anotasi untuk Cert-Manager dan konfigurasi TLS berikut:apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: dkubes-dbalance-https namespace: default annotations: cert-manager.io/cluster-issuer: "[nama-cluster-issuer-anda]" spec: ingressClassName: haproxy tls: - hosts: - [url-domain-anda] secretName: dkubes-dbalance-https-tls rules: - host: [url-domain-anda] http: paths: - path: / pathType: Prefix backend: service: name: httpbin-svc port: number: 80 - Menerapkan Konfigurasi
Jalankan perintah berikut untuk mengaktifkan Ingress:
kubectl apply -f ingress.yaml - Verifikasi Status Ingress
Pastikan Ingress telah mendapatkan alamat IP publik dengan perintah:
kubectl get ingress
Hasilnya akan seperti gambar dibawah ini.
Gambar 2. Hasil kubectl - Lihat Sertifikat
Jalankan perintah berikut untuk mengecek status Sertifikat SSL:
kubectl get certificate
Hasilnya akan seperti gambar dibawah ini.
Gambar 3. Hasil kubectl - Akses Layanan
Tunggu beberapa saat, lalu akses domain Anda melalui browser. Jika berhasil, Anda akan melihat halaman seperti gambar dibawah ini:
Gambar 4. Hasil Deployment