Kubernetes Dashboard

Apa itu Kubernetes Dashboard?

Kubernetes Dashboard adalah UI pengguna Kubernetes berbasis web. kita dapat menggunakan Dashboard untuk men-deploy aplikasi dalam container ke cluster Kubernetes, troubleshoot aplikasi dalam kontainer, dan mengelola resource cluster. kita dapat menggunakan Dashboard untuk mendapatkan gambaran umum tentang aplikasi yang berjalan di cluster kita, serta untuk membuat atau memodifikasi resource Kubernetes individual (seperti Deployment, Jobs, DaemonSets, dll). Misalnya, kita dapat menskalakan Deployment, memulai pembaruan bergulir, memulai ulang pod, atau menerapkan aplikasi baru menggunakan wizard penerapan.

Apa yg bisa kita lakukan pada Kubernetes Dashboard?

Dibawah ini akan menjelaskan tampilan UI Dashboard Kubernetes terkait dengan apa yang mereka berikan dan bagaimana mereka dapat digunakan.

Navigasi

Saat ada objek Kubernetes yang ditentukan di cluster, Dashboard akan menampilkannya di tampilan awal. Secara default hanya objek dari namespace default yang ditampilkan dan ini dapat diubah menggunakan pemilih namespace yang terletak di menu navigasi.

Dashboard menampilkan sebagian besar jenis objek Kubernetes dan mengelompokkannya dalam beberapa kategori menu.

Ikhtisar Administrator

Untuk administrator cluster dan namespace, Dashboard mencantumkan Node, Namespace, dan PersistentVolume dan memiliki tampilan detail untuk mereka. Tampilan daftar node berisi metrik penggunaan CPU dan memori yang dikumpulkan di semua Node. Tampilan detail menunjukkan metrik untuk Node, spesifikasinya, statusnya, resource yang dialokasikan, peristiwa, dan pod yang berjalan di node.

Workload

Menampilkan semua aplikasi yang berjalan di namespace yang dipilih. Tampilan mencantumkan aplikasi menurut jenis beban kerja (misalnya: Deployments, ReplicaSets, StatefulSets). Setiap jenis beban kerja dapat dilihat secara terpisah. Daftar tersebut merangkum informasi yang dapat ditindaklanjuti tentang beban kerja, seperti jumlah pod yang siap untuk ReplicaSet atau penggunaan memori saat ini untuk sebuah Pod.

Tampilan detail untuk beban kerja menunjukkan informasi status dan spesifikasi serta hubungan permukaan antara objek. Misalnya, Pod yang dikendalikan oleh ReplicaSet atau ReplicaSet dan HorizontalPodAutoscalers baru untuk Deployment.

Service

Menampilkan resource Kubernetes yang memungkinkan untuk mengekspos layanan ke dunia luar dan menemukannya di dalam sebuah cluster. Oleh karena itu, tampilan Layanan dan Ingress menunjukkan Pod yang ditargetkan oleh mereka, titik akhir internal untuk koneksi cluster, dan titik akhir eksternal untuk pengguna eksternal.

Storage

Tampilan Storage akan menunjukkan resource Persistent Volume Claim yang digunakan oleh aplikasi untuk menyimpan data.

ConfigMaps dan Secret

Menampilkan semua resource Kubernetes yang digunakan untuk konfigurasi langsung aplikasi yang berjalan di cluster. Tampilan memungkinkan untuk mengedit dan mengelola objek konfigurasi dan menampilkan rahasia yang disembunyikan secara default.

Daftar pod dan halaman detail tertaut ke penampil log yang ada di dalam Dashboard. Penampil memungkinkan untuk menelusuri log dari wadah milik satu Pod.

Deploy Kubernetes Dashboard

Melihat Log

Untuk mendeploy Kubernetes Dashboard itu mudah saja, bisa dilakukan dengan single command yaitu seperti dibawah ini:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml

Jika cluster Kubernetes yang kita gunakan berjalan dengan baik maka ketika di enter hasilnya akan seperti dibawah:

Cek Kubernetes Dashboard pod dengan perintah kubectl get pod -A | grep kubernetes-dashboard

Sip Pod Kubernetes Dashboard telah berjalan baik.

Membuat User Admin

Kubernetes Dashboard mendukung beberapa cara untuk mengelola kontrol akses. Dalam contoh ini, kami akan membuat akun pengguna admin dengan hak penuh untuk memodifikasi cluster dan menggunakan token.

Untuk mulai membuat nya, buatlah file bernama user_admin.yml lalu isikan seperti dibawah ini:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: user-admin
  namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: user-admin
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: user-admin
  namespace: kubernetes-dashboard

Simpan dan jalankan menggunakan perintah kubectl apply -f user_admin.yml

Untuk autentikasinya Kubernetes tidak memerlukan kata sandi, melainkan menggunakan token. Untuk membuat tokenya kita memakai user-admin yang tadi kita buat untuk peritahnya seperti dibawah ini:

kubectl create token user-admin -n kubernetes-dashboard

Oke token sudah dibuat, jangan lupa copy token tersebut agar bisa digunakan untuk mengakses kubernetes.

Mengakses Kubernetes Dashboard

Kubernetes dashboard ini sebenarnya berbentuk Pod pada kubernetes, jadi untuk mengaksesnya harus dengan cara membuatkan service untuk dashboard atau memforward port dashboardnya. Nah kali ini kita akan mencoba dengan memforward port Kubernetes dashboard melewati kube-proxy. Untuk peritnahnya seperti dibawah:

kubectl port-forward -n kubernetes-dashboard service/kubernetes-dashboard 9443:443 --address 0.0.0.0

Diatas kita mencoba memforward service kubernetes dashboard menjadi listen pada port 9443, jadi kita bisa mengakses kubernetes dashboard dengan IP public dari kubernetes master dengan port 9443. Dalam kasus ini maka untuk mengakses urlnya adalah https://3.91.207.73:9443/#/login

Masukan token yang tadi di buat lalu tekan sign in

Sampai saat ini kita sudah bisa mengakses dashboard yang berarti konfigurasi telah berhasil.

Write a comment