Tutorial Kubernetes untuk Pemula – Part 4 (Instalasi GUI/Rancher)

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

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

dan ganti pada bagian:

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

contohnya:

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:

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

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.

kubectl apply -f https://xxx.xxx.xxx.xxx:4430/v3/import/xj44fqjh4888649jcszlmj9zq8jrrhwhxmdasdaxxgz5jpgw98w2lt.yaml

jika mengalami error karena unsecure SSL, silakan lakukan pipelining:

curl --insecure -sfL https://xxx.xxx.xxx.xxx:4430/v3/import/xj44fqjh4888649jcszlmj9zq8jrrhwhxmdxlhqxxgz5jpgw98w2lt.yaml | kubectl apply -f -

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:

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

cek juga ini:

kubectl -n cattle-system get pods -l app=cattle-cluster-agent -o wide
NAME                                    READY     STATUS    RESTARTS   AGE       IP           NODE
cattle-cluster-agent-54d7c6c54d-ht9h4   1/1       Running   0          2h        x.x.x.x      worker-1

Wagiman Wiryosukiro

Petani Sistem Informasi, tukang las plugin & themes Wordpress. Co-Founder SistemInformasi.biz. Saat ini aktif sebagai Developer & kontributor di OpenMandriva Linux.

You may also like...

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: