Panduan Setup Kubernetes Server Ubuntu 20.04

Cara cepat menginstall kubernetes cluster di server VM ubuntu 20.04 menggunakan minikube dan docker
Kubernetes Server

Prasyarat:

  1. Virtual Machine Ubuntu 20.04.5 LTS x86_64 
  2. Min. 8 GB RAM 
  3. Intel Xeon Gold 5220 (8) @ 2.19  / CPU 4 Cores ( Optional Requirement Min. 2 Cores ) 
  4. SSD 256 GB ( Optional Requirement ) 
  5. Disable Memori Swap 
Silahkan masuk ke server ubuntu menggunakan PUTTY atau Remote Dekstop Connection apabila server ubuntu telah disetup menggunakan xrdp. Untuk memulai pemasangan kubernetes kita wajib update repository apt package sistem server dengan menjalankan perintah melalui terminal: 

$ sudo apt update -y

Menginstall Docker Container

Kemudian kita install docker sebagai driver container kubernetes server dengan perintah command dibawah ini: 

$ sudo apt install docker.io -y

Tunggu sampai proses installing docker package selesai. Jika proses tersebut telah selesai untuk memastikan package terinstall dengan benar, silahkan cek versi docker dengan mengetikan perintah terminal dibawah ini: 

$ docker --version 

Secara default, docker membatasi akses daemon user sebagai root (sudo) saja. Dengan demikian kita harus menambahkan User Sistem Group agar user yang kita pakai dapat bekerja dengan baik. Jalankan perintah dibawah ini:

$ sudo addgroup --system docker && sudo adduser $USER docker && newgrp docker

$ sudo usermod -aG docker $USER

Setelah menjalankan perintah diatas terkadang kita perlu restart Server VM agar akses privileges group docker mendapatkan update terbaru.

Menginstall Minikube

Langkah selanjutnya kita akan menggunakan minikube dalam proses pembuatan kubernetes cluster agar lebih mudah dan cepat. Sebelum memasang minikube pastikan lagi apakah daemon driver container docker berjalan atau tidak dengan mengetikan perintah terminal berikut: 

$ sudo systemctl status docker

Apabila statusnya active (running) maka driver container kita berhasil berjalan dengan baik. Namun sebaliknya jika statusnya not active (failed) Maka kita harus restart ulang atau mengaktifkan kembali driver container docker dengan mengetikan perintah dibawah ini: 

$ sudo systemctl start docker 

Ok. Setelah kita memastikan docker container telah berjalan dengan baik. Mari kita install minikube yang nantinya memudahkan kita untuk mengatur clustering pada server kubernetes. Jalankan perintah dibawah ini : 

$ wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 

Tunggu proses download file binary minikube sampai selesai. Kemudian kita perlu memindahkan atau menyalin file tersebut agar dapat di jalankan secara global di terminal server kita. Silahkan jalankan perintah dibawah ini:

$ sudo cp minikube-linux-amd64 /usr/local/bin/minikube

Setelah berhasil menyalin file binary ke lokasi /usr/local/bin kita perlu mengubah permission file ke 755 agar user dapat mengeksekusi binary file tersebut. Jalankan perintah dibawah ini:

$ sudo chmod 755 /usr/local/bin/minikube

Jika sudah berhasil dijalankan mengubah permission file nya, sekarang kita cek versi minikube yang telah kita install dengan menjalankan perintah dibawah ini:

    $ minikube version

Merancang Server Kubernetes Cluster

Selamat! kita sudah siap merancang Kubernetes Cluster hanya dengan menggunakan 2 tools yakni docker dan minikube. Seperti yang sudah saya sebutkan sebelumnya, kita menggunakan docker sebagai Driver Container dan Minikube sebagai alat perancang otomatis kubernetes cluster. Untuk memulai perancangan kubernetes cluster silahkan jalankan perintah dibawah ini:
$ minikube start
Kita tunggu proses minikube menarik atau pulling images kubernetes yang kita butuhkan untuk membangun sebuah cluster. Jika proses pulling image telah selesai, minikube secara otomatis telah membuatkan cluster kubernetes yaitu dengan membuat satu master node yang berperan sebagai control plane cluster kita. Silahkan jalankan perintah dibawah ini:
$ minikube status
Dibawah ini merupakan hasil response command line. Response tersebut menunjukan bahwa cluster  telah berjalan normal dan minikube merupakan nama alias bagian dari cluster yang disebut sebagai master node yang berperan sebagai Control Plane untuk mengontrol Worker Nodes yang lain.

    minikube
    type: Control Plane
    host: Running
    kubelet: Running
    apiserver: Running
    kubeconfig: Configured

Untuk saat ini kita masih memiliki satu node yakni master node yang secara default telah dibuatkan oleh minikube dengan nama alias "minikube". 

Agar lebih lengkap sesuai dengan aturan architecture kubernetes kita buat 2 worker nodes yang lain untuk meningkatkan performa dan skalabilitas orkestrasi cluster. Jalankan perintah dibawah ini untuk membuat worker nodes baru:
$ minikube node add
Setelah menjalankan perintah diatas minikube akan membuatkan worker nodes dengan suffix m02 secara increment. Jalan perintah minikube node add lagi untuk membuat worker nodes baru.

Untuk dapat berinteraksi dengan cluster, kita perlu menggunakan kubectl yang telah disediakan oleh minikube. Untuk memastikan server cluster kita berjalan silahkan jalankan perintah dibawah ini:
$ minikube kubectl version
Jika reponse dari perintah diatas memiliki output client version dan server version maka cluster kubernetes kita siap digunakan. Sebaliknya jika salah satunya saja, maka server kita belum berjalan normal dengan semestinya. Demikian panduan yang saya buat berdasarkan pengalaman yang telah dipraktekan di VM Ubuntu 20.04.