Instalasi Kubernetes Dashboard
Google sudah menyediakan kubernetes dashboard bawaan yang ciamik yang bisa kita gunakan cuma-cuma. untuk menginstallnya silakan apply template berikut:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
[youtube https://www.youtube.com/watch?v=LN89OYVCNM0&w=640]
cek apakah sudah benar-benar dibuatkan:
kubectl -n kubernetes-dashboard get all
untuk mengaksesnya, kita harus mengubah tipe networking service dashboard tersebut dari ClusterIP menjadi NodePort.
lakukan edit dengan perintah:
kubectl -n kubernetes-dashboard edit svc kubernetes-dashboard
ganti type dari ClusterIP menjadi NodePort dan tambahkan entri baru nodePort: xxxxx sebagai port yang kita tuju.
cek dengan perintah:
kubectl -n kubernetes-dashboard get svc
setelah itu akses dashboard ini lewat browser dengan https://ip-node-x:32323/ (sesuaikan ip dan port sesuai nodeport diatas).
IGNORE saja warning soal SSL itu dan anda akan mendapati akses dashboard seperti ini:
untuk login, kita akan menggunakan token. untuk itu, kembali ke terminal dan ambil token tersebut.
kubectl -n kubernetes-dashboard describe sa kubernetes-dashboard
lihat Tokens yang ada, copy dan lihat isinya dengan perintah:
kubectl -n kubernetes-dashboard describe secret kubernetes-dashboard-token-2hgc7
dan masukkan token tersebut ke web browser tadi dan klik tombol Sign In. dan masuklah anda di dashboard Kubernetes!
tapi, ada satu masalah, cara ini sebenarnya tidak direkomendasikan, sehingga muncul error banyak di tanda bel.
karena service account yang dipakai terlalu strict, jadi kita bikin baru saja. misal nama templatenya:sa_cluster_admin.yaml
konten:
[sourcecode]
apiVersion: v1
kind: ServiceAccount
metadata:
name: dashboard-admin
namespace: kube-system
—
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: cluster-admin-rolebinding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
– kind: ServiceAccount
name: dashboard-admin
namespace: kube-system
[/sourcecode]
kemudian buat service account ini dengan perintah:
kubectl create -f sa_cluster_admin.yaml
cek apakah sudah dibuat beneran:
kubectl -n kube-system get sa
kita cek isinya:
kubectl -n kube-system describe sa dashboard-admin
lihat tokennya!
kubectl -n kube-system describe secret dashboard-admin-token-49kxd
dan copy tokennya ke web browser!
dan sampeyan pun bisa menikmati dashboard kubernetes ini beneran!
Instalasi Rancher
Pada tutorial kali ini kita akan menginstall GUI untuk melakukan manajemen cluster-cluster Kubernetes yang kita punya. Salah satu tool yang saya sarankan adalah Rancher dari https://rancher.io. Selain Free, dia juga Open Sources dan juga banyak sekali menggelar pelatihan secara online melalui webinar dan kanal youtube milik mereka.
Untuk menginstall Rancher, sebaiknya siapkan SATU SERVER BARU yang terpisah dengan cluster Kubernetes. Prasyaratnya adalah sudah ada DOCKER TERINSTALL DI SERVER tersebut.
silakan lakukan instalasi Rancher di docker dengan perintah ini:
docker run -d --restart=unless-stopped \ -p 80:80 -p 443:443 \ rancher/rancher:latest
tunggu sampai proses download images Rancher selesai dilakukan dan container rancher dibuat. BILA PERLU silakan ganti port 80 dan port 443 jika server tidak mendukung port tersebut.
[CATATAN]
Silakan sesuaikan versi Kubernetes dengan versi Rancher yang anda miliki. Secara sederhana seperti ini:
- Kubernetes 1.15 – 1.17, silakan gunakan Rancher versi 2.3.x
- Kubernetes 1.18 keatas, silakan gunakan Rancher versi 2.4.x
Silakan akses rancher di browser dan jika ada peringatan Unsecured SSL, silakan ignore.
Masukkan password baru contohnya:
kemudian pada window selanjutnya, silakan OK saja jika tidak ada perubahan URL
Menambahkan Cluster Baru
Silakan tambahkan cluster baru dengan klik tombol Add Cluster.
Kemudian pilih Import Existing Cluster. tulis nama cluster tersebut
dan copy konfigurasi untuk binding Rancher dengan Kubernetes Cluster tersebut.
[sourcecode]
kubectl apply -f https://xxx.xxx.xxx.xxx:4430/v3/import/xj44fqjh4888649jcszlmj9zq8jrrhwhxmdasdaxxgz5jpgw98w2lt.yaml
[/sourcecode]
jika mengalami error karena unsecure SSL, silakan lakukan pipelining:
[sourcecode]curl –insecure -sfL https://xxx.xxx.xxx.xxx:4430/v3/import/xj44fqjh4888649jcszlmj9zq8jrrhwhxmdxlhqxxgz5jpgw98w2lt.yaml | kubectl apply -f -[/sourcecode]
jika mengalami error juga, silakan download saja file yaml tersebut:
curl --insecure -sfL https://xxx.xxx.xxx.xxx:4430/v3/import/xj44fqjh4888649jcszlmj9zq8jrrhwhxmdxlhqxxgz5jpgw98w2lt.yaml >> o.yaml
kemudian apply:
kubectl apply -f o.yaml
Troubleshooting
jika kondisi Cluster lama sekali dalam kondisi pending, silakan debug di node master dengan perintah ini:
kubectl -n cattle-system get pods -l app=cattle-agent -o wide
cek jumlah restartnya:
[sourcecode]
NAME READY STATUS RESTARTS AGE IP NODE
cattle-node-agent-4gc2p 1/1 Running 0 2h x.x.x.x worker-1
cattle-node-agent-8cxkk 1/1 Running 0 2h x.x.x.x etcd-1
cattle-node-agent-kzrlg 1/1 Running 0 2h x.x.x.x etcd-0
cattle-node-agent-nclz9 1/1 Running 0 2h x.x.x.x controlplane-0
cattle-node-agent-pwxp7 1/1 Running 0 2h x.x.x.x worker-0
cattle-node-agent-t5484 1/1 Running 0 2h x.x.x.x controlplane-1
cattle-node-agent-t8mtz 1/1 Running 0 2h x.x.x.x etcd-2
[/sourcecode]
cek juga ini:
kubectl -n cattle-system get pods -l app=cattle-cluster-agent -o wide
[sourcecode]
NAME READY STATUS RESTARTS AGE IP NODE
cattle-cluster-agent-54d7c6c54d-ht9h4 1/1 Running 0 2h x.x.x.x worker-1
[/sourcecode]