Skip to content

ノートDwinar

Hidup tuh bercanda, yang serius cuma mati

Menu
  • Home
  • Admin Server
    • Debian
    • RedHat
    • Ubuntu
    • Zimbra
  • Blog
  • Buku & Publishing
  • About
  • Contact
  • Privacy Policy
Menu

Cara Instalasi Cluster Kubernetes

Posted on January 17, 2020February 7, 2020 by dwinar

Pada tulisan saya sebelumnya saya telah membahas cara instalasi kubernetes dengan mudah, dengan menggunakan minikube. Bagi yang belum baca dapat melihat tutorial saya sebelumnya, dengan mengklik ini. Adapun pada tutorial sebelumnya saya menggunakan minikube namun pada tulisan kali ini saya menggunakan kubeadm. Perbedaan mendasar ada pada jumlah server yang akan digunakan, di minikube cukup menggunakan satu server. Di kubeadm dapat dibuat menggunakan 2 atau lebih server, yang nantinya akan saling terhubung sehingga membentuk satu buah cluster.

Pada tutorial kali ini saya menggunakan 3 buah VM dimana semua akan menggunakan Ubuntu 16.04 LTS. Dengan spesifikasi sebegai berikut:

VM Master Kubernetes

  • Sistem Operasi Ubuntu 16.04 LTS
  • 2 GB Ram
  • 2 vCPU
  • 30 GB HDD
  • IP Address = 192.168.137.2
  • Hostname = master-kubernetes

VM Node1 Kubernetes

  • Sistem Operasi Ubuntu 16.04 LTS
  • 2 GB Ram
  • 2 vCPU
  • 30 GB HDD
  • IP Address = 192.168.137.3
  • Hostname = node1-kubernetes

VM Node2 Kubernetes

  • Sistem Operasi Ubuntu 16.04 LTS
  • 2 GB Ram
  • 2 vCPU
  • 30 GB HDD
  • IP Address = 192.168.137.4
  • Hostname = node2-kubernetes

Dimana semua server terkoneksi internet dan saling terkomunikasi.

Instalasi Docker

Matikan swap semua server baik master-kubernetes, node1-kubernetes, dan node2-kubernetes. Untuk perintahnya sebagai berikut:

# swapoff -a

Masuk pada konfigurasi /etc/fstab.

# nano /etc/fstab

Lalu beri tanda pagar pada partisi swap.

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
#              
# / was on /dev/sda1 during installation
UUID=ca94926d-1582-4229-b72c-58b89d101d91 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
#UUID=a6893c7d-4669-42a6-a16d-654962fdb8ab none            swap    sw              0       0

Lakukan perintah update pada setiap server
# apt update

Instal paket untuk memungkinkan apt menggunakan repositori melalui HTTPS:

# apt-get install \
  apt-transport-https \
  ca-certificates \
  curl \
  gnupg-agent \
  software-properties-common

Tambahkan kunci GPG resmi Docker:

# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Tambahkan repository docker pada setiap server.

# add-apt-repository \
  "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) \
  stable"

Lakukan perintah update pada setiap server, agar repository yang telah ditambahkan sebelumnya dapat terbaca oleh sistem.

# apt-get update

Install docker pada setiap server. Untuk docker nya sendiri saya menggunakan versi yang direkomendasikan oleh pihak Kubernetesnya, dan tidak menggunakan docker versi terbaru. Untuk detailnya dapat dibaca pada tautan berikut ini. atau bisa membaca pada tangkapan layar dibawah.
Disini saya menggunakan versi docker 17.03.3, untuk dapat menginstall versi docker tersebut cukup jalankan perintah berikut:

# apt-get install docker-ce=17.03.3~ce-0~ubuntu-xenial

Nb: Jika hendak meinstall versi docker lain, dapat mengecek penulisan versinya. Untuk perintahnya dapat menggunakan perintah berikut:

# apt-cache madison docker-ce

Cek pada setiap server apakah untuk versi docker sudah sesuai dengan versi yang telah ditentukan sebelumnya. Untuk perintah nya menggunakan perintah berikut:

docker version

Berikut output yang dihasilkan.

# docker version
Client:
 Version:      17.03.3-ce
 API version:  1.27
 Go version:   go1.7.5
 Git commit:   e19b718
 Built:        Thu Aug 30 01:04:51 2018
 OS/Arch:      linux/amd64

Server:
 Version:      17.03.3-ce
 API version:  1.27 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   e19b718
 Built:        Thu Aug 30 01:04:51 2018
 OS/Arch:      linux/amd64
 Experimental: false
[email protected]:~$

Instalasi kubeadm, kubelet, dan kubectl

Sebelum menginstall kubeadm, kubelet dan kubectl, tambahkan terlebih dahulu repositorynya. Untuk perintahnya sebagai berikut:

# apt-get update && sudo apt-get install -y apt-transport-https curl

# 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

Lakukan perintah update agar repository yang telah ditambah sebelumnya dapat terbaca oleh sistem.

# apt-get update

Install paket kubelet, kubeadm, dan kubectl. Untuk perintahnya sebagai berikut:

# apt-get install -y kubelet kubeadm kubectl

Hold paket kubelet, kubeadm, dan kubectl agar tidak terupdate secara otomatis.

# apt-mark hold kubelet kubeadm kubectl

Instalasi Network K8S (Flanel)

Agar antara pods dapat saling berkomunikasi, perlu diinstall module Network. Disini saya menggunakan Flanel. Jika hendak menggunakan module yang lain, dapat melihat pada tautan berikut ini.

Pada cluster nodes master, lakukan perintah berikut.

# kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=192.168.137.2

Maka akan muncul hasil berikut:

Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 192.168.137.2:6443 --token a4dgso.laa5fro4mfnir0z8 \
--discovery-token-ca-cert-hash sha256:9622bcd931e220bc948168dd569d29e7bf3a0bf3a2e6470776b9ef3a38ad5a9c

Jalankan perintah diatas di cluster nodes master.

# mkdir -p $HOME/.kube
# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
# chown $(id -u):$(id -g) $HOME/.kube/config
# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/2140ac876ef134e0ed5af15c65e414cf26827915/Documentation/kube-flannel.yml

Pada cluster server nodes join pada cluster server nodes master. Untuk perintah menggunakan perintah berikut:

# kubeadm join 192.168.137.2:6443 --token a4dgso.laa5fro4mfnir0z8 \
  --discovery-token-ca-cert-hash sha256:9622bcd931e220bc948168dd569d29e7bf3a0bf3a2e6470776b9ef3a38ad5a9c

Jalankan perintah “kubectl get nodes” untuk melihat semua nodes pada cluster Kubernetes. Pastikan semua nodes yang telah di join telah terbaca oleh sistem Kubernetes.

# kubectl get nodes
NAME                STATUS   ROLES    AGE     VERSION
master-kubernetes   Ready    master   7m18s   v1.16.3
node1-kubernetes    Ready       118s    v1.16.3
node2-kubernetes    Ready       68s     v1.16.3

Untuk tutorial instalasi cluster Kubernetes telah selesai. Untuk tutorial cukup sampai sini. Dilanjut di tulisan lainnya, terimakasih telah membaca.

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • Instalasi T-Pot Honeypot Framework
  • Ulang Tahun Excellent 9
  • Cara Setting DNS over HTTPS
  • Cara Upgrade OS Mikrotik
  • Membersihkan Sampah Pada Docker

Recent Comments

  • raihan irfan on Cara Install Docker Toolbox di Windows 10 Home
  • dwinar on Instalasi T-Pot Honeypot Framework
  • dwinar on Instalasi T-Pot Honeypot Framework
  • dwinar on Cara Replikasi Database Master – Slave
  • manda on Cara Replikasi Database Master – Slave

Categories

  • Admin Server
  • Blog
  • Debian
  • RedHat
  • Ubuntu
  • Zimbra

Archives

  • January 2021
  • September 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018

Tags

BBB Blog CentOS CentOS 8 Cockpit cPanel DataBases docer Docker Docker CE Docker Private Registry Docker Toolbox fail2ban Gnome google cloud Honeypot Jitsi Kubernetes Let’s Encrypt Linux lsync MariaDB Mikrotik Nakivo NextCloud Open Source OpenSUSE Redhat RedHat 7 S/MIME SSH SSL T-Pot Ubuntu Video Conference Web Server WFH WHM Windows Zextras Zimbra Zimbra Docs Zimbra Drive Zimbra Drive v2 Zimbra NE
January 2020
MTWTFSS
 12345
6789101112
13141516171819
20212223242526
2728293031 
« Dec   Feb »
© 2023 ノートDwinar | Powered by Minimalist Blog WordPress Theme