Setup Kubernetes Di Lokal Menggunakan "kind"

Untuk membuat sebuah klaster Kubernetes, menurut saya minimal harus menggunakan tiga buah node (server), 1 master, dan 2 worker. Master berupa control plane yang berisi sistem utama kubernetes, dan worker-worker yang digunakan untuk men-deploy pod / container-container. Menggunakan 2 worker node supaya nantinya kita bisa memanfaatkan / mencoba replica set dan load balancing.

belajar kubernetes kind

Apa itu kind?

kind adalah salah satu solusi untuk menjalankan Kubernetes di lokal. Bisa dikatakan kind adalah installer klaster Kubernetes yang menggunakan Docker Container (berbasis Ubuntu) sebagai node. Sesuai dengan namanya, kind (Kubernetes in Docker). Kelebihannya adalah proses boot Docker Container lebih cepat dari VM.

Sebenarnya apa hubungan Kubernetes dan Docker di sini?

Kubernetes di sini tidak bergantung dengan Docker (dockershim). Docker hanya sebagai sarana untuk menyiapkan node (bisa dibayangkan pengadaan server dilakukan oleh Docker). Jumlah node yang akan dibuat bisa didefinisikan pada konfigurasi kind (bisa lihat nanti di bawah).

Apakah kind bagian penting dari sistem Kubernetes?

Tidak. kind hanya untuk provisioning klaster Kubernetes secara mudah di lokal. Setelah semua ter-setup, lupakan dan anda cukup bermain dengan "kubectl" yang merupakan klien Kubernetes berbasis CLI untuk mengelola resource Kubernetes.

INSTALASI kind (BINARY)

  1. curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.15.0/kind-linux-amd64 
  2. chmod +x ./kind 
  3. sudo mv ./kind /usr/local/bin/kind 
Sumber: https://kind.sigs.k8s.io/docs/user/quick-start/#installing-from-release-binaries

INSTALASI kubectl (BINARY)

Langsung saja ikuti petunjuk di tautan berikut:

https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/#install-kubectl-binary-with-curl-on-linux

SIAPKAN KONFIGURASI kind untuk multi node (1 master, 2 worker)

  1. apiVersion: kind.x-k8s.io/v1alpha4 
  2. kind: Cluster 
  3. nodes: 
  4. - role: control-plane 
  5. - role: worker 
  6. - role: worker 

Simpan sebagai kind-config.yaml

BUAT KLASTER KUBERNETES sesuai konfigurasi di atas:

  1. kind create cluster --config kind-config.yaml 

Selesai.

Cek node dengan:

  1. kubectl get nodes 

Karena kind menggunakan Docker Container sebagai node, node dalam perspektif Docker adalah:

  1. docker ps 
atau
  1. docker container ls 

Untuk masuk ke suatu node bisa memanfaatkan docker exec:

  1. docker exec -it kind-control-plane bash 
  2. docker exec -it kind-worker bash 

HAPUS KLASTER KUBERNETES

Karena suatu hal mungkin anda ingin menghapus klaster Kubernetes, bisa dengan perintah:

  1. kind delete cluster 

ALTERNATIF KIND?

minikube, k3d

Sekian, selamat bermain dengan kubectl dan melanjutkan belajar Kubernetes.

Semoga bermanfaat!

#Linux #Docker #Kubernetes