Pada kali ini kita akan belajar bagaimana caranya membuat sebuah cluster pada kubernetes. Untuk ke depannya akan ada beberapa lab mengenai kubernetes ini, sekarang kita akan memulainya dengan instalasi container. Disini container runtime yang digunakan adalah docker. Okee langsung saja kita praktik !
Tujuan :
- Install Docker pada 3 nodes
- Install Kubeadm, Kubelet, dan Kubectl pada 3 nodes
- Membuat cluster pada Kube master node
- Join worker node ke cluster
- Set up networking cluster dengan plugin flannel
Detail Lab :
- Kube master = 10.0.1.101/24
- Kube node1 = 10.0.1.102/24
- Kube node2 = 10.0.1.103/24
Langkah 1 : Instalasi Docker
Untuk langkah pertama kita perlu install container runtime di setiap node, dimana container itu yang akan dibungkus oleh pod di dalam sebuah cluster, disini kita akan menggunakan docker. Copy perintah seperti di bawah ini :
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
![]() |
Penambahan GPG Key dan Repositori Untuk Docker |
Selanjutnya lakukan update repositori lalu instalasi docker community edition dengan versi yang terbaru.
sudo apt-get update
sudo apt-get install -y docker-ce=18.06.1~ce~3-0~ubuntu
Kemudian lakukan marking pada docker untuk menjaga versinya tidak berubah secara otomatis ketika melakukan update.
sudo apt-mark hold docker-ce
![]() |
Marking docker version |
Cek status docker.
sudo systemctl status docker
![]() |
Docker Status |
Langkah 2 : Instalasi Kubernetes
Sebelum melakukan instalasi lakukan terlebih dahulu penambahan GPG key dan repositori kubernetesnya. Lakukan proses ini pada 3 node.
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
cat << EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
![]() |
Penambahan GPG Key dan Repositori Untuk Kubernetes |
Lalu update repositori dan lakukan instalasi kubeadm, kubectl dan kubelet.
sudo apt-get update
sudo apt-get install -y kubelet=1.12.7-00 kubeadm=1.12.7-00 kubectl=1.12.7-00
![]() |
Update Repositori dan Install Kubeadm, Kubectl dan Kubelet |
Lakukan marking paket agar versi dari kubernetes tidak ikut terupdate ketika dilakukan update sistem.
sudo apt-mark hold kubelet kubeadm kubectl
![]() |
Marking Kubernetes Version |
Langkah 3 : Membuat Cluster
Pada tahap ini kita akan membuat sebuah cluster yang dimana akan menyimpan pod dari container berisi aplikasi yang akan dijalankan. Hanya lakukan ini pada node master.
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
Pada saat pembuatan cluster akan ada baris seperti gambar di bawah ini. Itulah yang nantinya akan dipakai pada worker node untuk bergabung ke dalam cluster.
![]() |
Token Untuk Join ke Node Master |
Buat sebuah hidden directory untuk konfigurasi kubernetes cluster dan kemudian cek versinya. Untuk versinya akan tertampil versi client dan servernya juga.
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl version
![]() |
Kubernetes Version |
Langkah 4 : Join worker node ke master node
Sekarang kita akan menggabungkan worker node ke master node.
sudo kubeadm join $some_ip:6443 --token $some_token --discovery-token-ca-cert-hash $some_hash
Gantilah variabel di atas dengan value yang sebelumnya sudah diketahui ketika pembuatan cluster ( lihat langkah 3 ). Setelah itu cek apakah worker node sudah masuk ke dalam cluster atau belum.
kubectl get nodes
![]() |
Node Status |
Bisa dilihat bahwa node berstatus NotReady dikarenakan belum adanya konektifitas antar node. Maka dari itu mari kita langsung ke langkah selanjutnya !
Langkah 5 : Setup cluster dengan flannel ( plugin overlay networking kubernetes )
Aktifkan dulu network bridge interface pada master node.
echo "net.bridge.bridge-nf-call-iptables=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Terapkan flannel untuk menghubungkan setiap pod pada cluster. Cukup terapkan pada master node saja.
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ece4de4c0d86c5cd2643275/Documentation/kube-flannel.yml
![]() |
Penerapan Flannel |
Kemudian cek node sudah terhubung atau belum.
kubectl get nodes
Status setiap node jika sudah berstatus Ready , maka artinya cluster dan pod sudah terpasang dengan baik.
Mungkin itu saja untuk postingan kali ini, untuk selanjutnya InshaaAllah masih bertemakan kubernetes. Terima kasih !
Wassalammu'alaikum wa rahmatullah wa barakatuh
Source Lab : linuxacademy.com
إرسال تعليق