Sebelum provision kubernetes cluster, pastikan requirementnya memenuhi detail berikut ini.
Setelah itu, pastikan Anda sudah menyiapkan tiga node/vm yang akan kita gunakan dimana satu node sebagai master node dan dua node sebagai worker node. Lalu edit hostname masing-masing vm dan tambahkan pada file hosts, Anda bisa melihat panduannya pada post saya sebelumnya di referensi berikut.
Instalasi dan Konfigurasi
Disini saya menggunakan sistem operasi Ubuntu Server 20.04 LTS.
Langkah yang pertama, upgrade paket pada semua node:
sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
Langkah yang kedua, install docker pada semua node:
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update -y
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
Langkah yang ketiga, install kubectl, kubelet & kubeadm pada semua node:
sudo apt install -y apt-transport-https; curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo 'deb http://apt.kubernetes.io/ kubernetes-xenial main' > kubernetes.list
sudo mv kubernetes.list /etc/apt/sources.list.d/kubernetes.list
sudo apt update; sudo apt install -y kubectl kubelet kubeadm
apt-mark hold kubelet kubeadm kubectl
Langkah yang keempat yaitu inisialiasi master yang dilakukan pada master node, matikan swap terlebih dahulu:
swapon -s
sudo swapoff -a
sudo kubeadm init --pod-network-cidr=10.244.x.0/16
Keterangan: x bisa diganti dengan angka sesuai dengan kebutuhan misalnya 10.244.9.0/16
Langkah yang kelima, copy konfigurasi admin pada master node:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Langkah yang keenam, install network flanel Pod pada master node:
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f kube-flannel.yml
kubectl get pods --all-namespaces --watch
Langkah yang ketujuh, verifikasi config dan cluster pada master node dengan perintah:
kubectl config view
kubectl cluster-info
Langkah yang kedelapan, tampilkan token dan token-ca-cert-hash pada master node. Ini nanti yang akan kita gunakan untuk join dari worker node ke master node:
sudo kubeadm token list
sudo openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
Join cluster ke Worker Node
Langkah yang kesembilan, lakukan pada masing-masing worker node untuk join ke master node :
swapon -s
sudo swapoff -a
sudo kubeadm join --token [TOKEN] [NODE-MASTER]:6443 --discovery-token-ca-cert-hash sha256:[TOKEN-CA-CERT-HASH]
Verifikasi Node Kubernetes
Langkah yang kesepuluh, jalankan pada master node untuk verifikasi apakah semua node sudah berhasil join dan pastikan node berstatus Ready seperti dibawah ini:
Apabila masing-masing node sudah berstatus Ready artinya provisioning kubernetes cluster Anda sudah berhasil dan selanjutnya Anda bisa mengikuti post saya selanjutnya pantau terus ya gan 🙂
Sekian dan terima kasih.