Apa itu kubernetes dashboard
Kubernetes dashboard adalah aplikasi web kubernetes yang dapat diakses melalui browser. Dengan kubernetes dashboard kita bisa mengelola resources kubernetes (seperti pods, service, deployment, dll).
Apa itu Helm
Helm merupakan tool package manager untuk kubernetes. Helm sama seperti composer (PHP), npm (Node JS), yang digunakan untuk menginstall dependensi paket.
Cara install kubernetes dashboard
- Kita anggap helm sudah terinstall di server.
Cara menginstall kubernetes dashboard cukup mudah *sudah dijelaskan di website kubernetes. Namun saya akan jabarkan disini sesuai versi saya sendiri.
Jalankan command berikut untuk menambahkan repository kubernetes dashboard ke dalam helm:
helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
Install kubernetes dashboard menggunakan command:
helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --create-namespace --namespace kubernetes-dashboard
Keterangan:
- Kita akan install menggunakan namespace kubernetes-dashboard
- Jika namespace kubernetes-dashboard tidak ada, maka akan otomatis dibuatkan menggunakan parameter
--create-namespace
Setelah berhasil terinstall, maka tampilannya akan seperti ini:
Namun kita perlu pastikan lagi, apakah kubernetes dashboard sudah benar-benar terinstall (tidak ada error). Caranya adalah dengan melihat STATUS
pods:
kubectl -n kubernetes-dashboard get pods
Bisa dilihat diatas, semua pods STATUS nya sudah Running. Artinya pods sudah dideploy dengan benar.
Note: Untuk kubernetes dashboard versi lama, kemungkinan tidak ada pods api, kong dan auth.
Menjalankan kubernetes dashboard
Untuk menjalankan kubernetes dashboard, kita bisa menggunakan 2 cara:
- menggunakan port forwarding
- proxy
Disini kita akan menggunakan port forwarding saja. Artinya, port internal kubernetes (443) akan diekspos ke port external 8443. Nantinya kita bisa mengakses kubernetes dashboard menggunakan port 8443.
kubectl -n kubernetes-dashboard port-forward svc/kubernetes-dashboard-kong-proxy 8443:443 --address=0.0.0.0
Catatan:
- Pastikan port 8443 sudah diopen pada firewall inbound rule.
- Parameter address 0.0.0.0 digunakan agar kubernetes dashboard bisa diakses IP manapun
Lalu buka kubernetes dashboard melalui browser:
https://<IP anda>:8443/
Jika ada error Your connection is not private, klik Proceed to IP (unsafe)
Setelah itu, kita diminta memasukkan Bearer token agar bisa masuk dalam dashboard. Untuk mendapatkan token tersebut, kita harus membuat Service Account pada kubernetes.
Membuat Service Account untuk Kubernetes Dashboard
Untuk bisa masuk ke kubernetes dashboard, kita harus membuat service account dan menggenerate token.
Buat sebuah file dengan nama login-kubernetes-dashboard.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: eks-admin
namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: eks-admin
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: eks-admin
namespace: kubernetes-dashboard
Lalu apply konfigurasi tersebut
kubectl apply -f login-kubernetes-dashboard.yaml
Setelah itu kita generate token login:
kubectl create token eks-admin -n kubernetes-dashboard
Copy token tersebut dan paste ke web kubernetes login tadi. Jika berhasil maka akan masuk ke dashboard
Jika gagal, misal Unauthorized (401): Invalid credentials provided info, maka token tadi tersebut harus didecode ke base64. caranya:
echo <token> | base64 -d
Hasil output diatas, pastekan ke halaman login lagi. Seharusnya setelah itu bisa login ke dalam dashboard kubernetes.
Note: token yang digenerate tadi mempunyai waktu expire, jika sudah expire bisa generate token baru lagi.
Uninstall kubernetes dashboard
Jika kalian ingin menguninstall kubernetes dashboard yang awalnya diinstall menggunakan helm, jalankan command berikut ini untuk menguninstallnya:
helm delete kubernetes-dashboard --namespace kubernetes-dashboard
Setelah itu kubernetes dashboard akan berhasil di uninstall.