Assalammu'alaikum wa rahmatullah wa barakatuh,

    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

Post a Comment

Previous Post Next Post