Prasyarat:
- Virtual Machine Ubuntu 20.04.5 LTS x86_64
- Min. 8 GB RAM
- Intel Xeon Gold 5220 (8) @ 2.19 / CPU 4 Cores ( Optional Requirement Min. 2 Cores )
- SSD 256 GB ( Optional Requirement )
- 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.