Pasang HTTPS pada traefik ingress controller
Dunia kubernetes memang selalu menjadi sumber pengetahuan baru, terutama bagi saya pribadi. Kubernetes sendiri sebenarnya memiliki banyak ingress controller yang berfungsi untuk mengarahkan user yang mengakses domain kepada service yang sudah kita tentukan. Nah pada kesempatan kali ini saya akan coba membuat langkah, bagaimana cara membuat traefik ingress controller menjadi HTTPS dengan menggunakan cert-manager.
Hal yang dibutuhkan untuk bisa membuat HTTPS pada ingress traefik kubernetes adalah
- helm (untuk deploy cert-manager)
- cert-manager (untuk membuat https)
- traefik ingress controller
Langkah:
- Install helm terlebih dahulu, untuk lengkapnya bisa klik [disini]
- Install traefik ingress controller
Sesuai dengan pembahasan kali ini saya menggunakan ingress traefik controller untuk mengarahkan domain. Install menggunakan langkah berikut
helm repo add traefik https://containous.github.io/traefik-helm-chart
helm repo update
helm install traefiktraefik/traefik
Traefik bisa diinstall di namespace tertentu, jika ingin dibedakan. Jadi perlu buat namespace dulu dengan perintah kubectl create namespace nama_namespace
, dan install helm dengan menambah paramater —-namespace nama_namespace
Setelah traefik terinstall, coba cek service traefik sudah berjalan atau belum menggunakan perintah berikut
kubectl get svc
Pastikan terdapat service dengan nama traefik
dan type LoadBalancer
, pada kasus kali ini saya menggunakan Digital Ocean. Dari service traefik tersebut akan membuat sebuah load balancer pada digital ocean dan mendapatkan ip publik, dan ip tersebut yang akan digunakan untuk diarahkan menjadi domain. Kita bisa mengatur pada domain managemen yang familiar, contoh bisa menggunakan CloudFlare.
- Arahkan nama domain ke ip load balancer
Seperti yang sudah saya singgung tadi, bahwa agar traefik ingress controller bisa bekerja. Ip load balancer sudah harus diarahkan ke nama domain yang akan dibuat menjadi HTTPS
- install cert-manager menggunakan helm
Cert-manager nanti akan berfungsi untuk generate certificate yang nantinya akan digunakan oleh traefik ingress
Utuk menginstall cert-manager gunakan perintah berikut ini
kubectl create namespace cert-managerhelm repo add jetstack https://charts.jetstack.iohelm repo updatehelm install cert-manager jetstack/cert-manager --namespace cert-manager
Pastikan cert-manager sudah terinstall dengan benar, periksa menggunakan perintah berikut
kubectl get pods --namespace cert-manager
Buat certificate yang akan digunakan untuk mencoba https, kali ini kita bedakan menjadi 2. Pertama yaitu staging, untuk mencoba apakah sudah sesuai atau belum. Kedua yaitu production, yang nantinya akan kita gunakan ketika proses yang staging sudah selesai.
Lanjut nanti gan