Sebelum provisioning kubernetes cluster, setidaknya Anda dapat develop minikube terlebih dahulu untuk explore kubernetes. Minikube merupakan tool untuk membuat kubernetes cluster dengan single-node. Setelah Anda explore kubernetes menggunakan minikube, Anda bisa provisioning kubernetes cluster menggunakan tool kubeadm yang nantinya akan kita praktikkan di pertemuan selanjutnya. Untuk membuat kubernetes cluster bisa diterapkan pada baremetal server, on-premise, atau virtual machine.
Lalu apa saja sebenarnya tool yang terdapat pada kubernetes cluster ? Ketika Anda membuat kubernetes cluster nantinya ada dua tool utama yakni kubectl dan kubeadm. Kubectl merupakan tool utama yang harus diinstall untuk membuat kubernetes cluster. Kubectl akan jalan di local vm Anda dan menargetkan API server endpoint. Sehingga Anda bisa membuat, manage, dan menghapus semua resource kubernetes (seperti Pod, Deployment, Service).
Selanjutnya kubeadm yakni projek tool kubernetes yang berguna untuk membangun sebuah kubernetes cluster, dimana terdapat dua command kubeadm init untuk menginisiasi kubernetes cluster yang dijalankan pada master node. Kemudian command kubeadm join jalan pada sisi worker node untuk join ke master node menggunakan token dan SHA256 hash.
Selain kubeadm untuk provisioning kuberntes cluster lebih fleksibel, Anda juga dapat melakukan upgrade kubernetes cluster dengan perintah kubeadm upgrade. Adapun proses upgrade secara general adalah:
a. Update software
b. Check versi software
c. Melakukan drain control plane
d. Melihat apa saja yang telah diupgrade
e. Apply upgrade
f. Memulihkan node untuk kembali online
Detailnya bisa dilihat pada referensi berikut.
Adapun konfigurasi Deployment secara high-level seperti berikut:
a. Single Node
Dengan single-node deployment, semua komponen berada satu server yang sama. Hal ini bagus untuk testing, improve, dan lain-lain.
b. Single Master Node, Multiple Worker Node
Dengan konsep deployment ini menggunakan single master node tapi menggunakan multiple worker node. Tipical ini terdiri dari satu instance untuk etcd yang berjalan di master node dengan API, scheduler, dan controller-manager.
c. Multiple Master Node (HA), Multiple Worker Node
Konfigurasi konsep ini akan menambah durabilitas dalam sebuah cluster, nantinya API Server akan dipasang di front end pada load balancer dan etcd masih berada di satu single node.
d. HA etcd, HA Master Node, Multiple Worker Node
Konsep ini lebih advance dan memiliki keuletan tersendiri karena etcd dikonfigurasi dengan cluster HA dan terpisah dengan node multiple master node maupun multiple worker node.
Selanjutnya Anda bisa melihat cara provisioning kubernetes cluster pada postingan berikut.