Mengenal Apa itu kubernetes?

Kubernetes sendiri sejenis aplikasi cluster management open source dan berasal dari aplikasi internal. Aplikasi ini umumnya digunakan oleh Google (Borg) dengan tujuan mengelola cluster milik mereka sendiri, dari segi bisnis, aplikasi management open source ini adalah senjata yang diandalkan oleh Google dengan tujuan mendongkrak naiknya peringkat Google di pasar cloud hosting.

Pengertian lainnya dari aplikasi ini yaitu jenis platform open source dan sering digunakan pada manajemen container. Aplikasi ini dapat disingkat dengan huruf dan angka K8s. untuk huruf K sendiri berada di depan, ada angka 8 di bagian tengahnya yang artinya huruf “ubernete” beserta huruf s di bagian akhirnya. Sehingga aplikasi ini penyebutannya sering dengan K8s.

 

Mengenal Apa itu Kubernetes Cluster

Kubernetes Cluster terdiri dari kubernetes-master dan kubernetes-nodes. Kubernetes Cluster terdiri dari beberapa object, seperti: Pod, Service, Volume, dan Namespace serta beberapa object tambahan seperti: ReplicaSet, Deployment, StatefulSet, DaemonSet dan Job.

Requirement :

  • Account Private Cloud IDCloudHost
  • 4 Virtual Machine

Skema

Skema yang digunakan pembahasan kali ini terdiri dari :

  • Node sebagai Master – dengan hostname MasterNode
  • Node sebagai Worker – dengan hostname WorkerNode1,WorkerNode2, & WorkerNode3

Topologi

Untuk Topologi yang dipakai pada tutorial ini bisa dilihat pada gambar dibawah ini :

Selanjutnya kita akan masuk kepada pembahasan Tutorial Cara Install dan Kubernetes Cluster Nya.

 

Install Server pada Private Cloud IDCloudHost

Server yang perlu diinstall adalah :

  • Master Node
  • Worker Node 1
  • Worker Node 2
  • Worker Node 3

Pada halaman awal Private Cloud IDCloudHost, Klik Virtual Machine untuk melakukan instalasi Server

 

Selanjutnya isi data seperti yang tertera pada gambar dibawah ini untuk instalasi Master Node :

  • Memilih Sistem Operasi
  • Spesifikasi Cpu,Ram,Disk
  • Username
  • Password
  • Resource Name

 

Selanjutnya isi data seperti yang tertera pada gambar dibawah ini untuk instalasi Worker Node 1 :

  • Memilih Sistem Operasi
  • Spesifikasi Cpu,Ram,Disk
  • Username
  • Password
  • Resource Name

 

Selanjutnya isi data seperti yang tertera pada gambar dibawah ini untuk instalasi Worker Node 2 :

  • Memilih Sistem Operasi
  • Spesifikasi Cpu,Ram,Disk
  • Username
  • Password
  • Resource Name

 

Selanjutnya isi data seperti yang tertera pada gambar dibawah ini untuk instalasi Worker Node 3 :

  • Memilih Sistem Operasi
  • Spesifikasi Cpu,Ram,Disk
  • Username
  • Password
  • Resource Name

 

Pada Ubuntu 18.04, pastikan node master & worker bisa saling terhubung. Pada Master node Tambahkan command seperti dibawah ini di / etc / hosts. Lakukan hal yang sama pada Worker Node 1 sampai 3.

 

Disable Memory pada semua node dengan mengetikkan perintah dibawah ini :

$ sudo swapoff -a

 

Cara Install Docker

Lakukan Update dan Upgrade Server pada semua Node.

$ sudo apt update

$ sudo apt upgrade

 

Kemudian Install Package yang dibutuhkan :

$ apt-get install apt-transport-https ca-certificates curl software-properties-common -y

 

Tambah Docker Repository

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

$ apt-get update

 

Install Docker

$ apt install docker-ce -y

 

Cara Install Kubernetes

Tambahkan GPG Key untuk repo Kubernetes

$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add –

 

Tambahkan Repository Kubernetes

$ echo ‘deb http://apt.kubernetes.io/ kubernetes-xenial main’ | sudo tee /etc/apt/sources.list.d/kubernetes.list
$ apt-get update

 

Install Kubernetes

$ apt install kubelet kubeadm kubectl -y

Cara Konfigurasi Cluster

Pada Master Node, inisiasi Master Node sebagai Master Cluster

$ sudo kubeadm init –pod-network-cidr=172.116.10.0/16 –apiserver-advertise-address=10.1.22.251
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 10.1.22.251:6443 –token aww805.9jktx4mtmzn9jl0k \ –discovery-token-ca-cert-hash sha256:78bc6a8cbd08db783e408c74a21d4654245335cd9587827173dd7e27e37d3a87

 

Notes :

–apiserver-advertise-address=IP_MASTER_NODE : Karena baru pertama kali menggunakan kubernetes cluster maka server harus menambahkan perintah dibawah ini :

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

 

Penulis akan menggunakan calico & flannel sebagai network plugin pada Container Networking Interface (CNI). Untuk melakukan setup calico & flannel pada kubernetes, silahkan jalankan perintah berikut:

$ sudo kubectl apply -f https://docs.projectcalico.org/v2.6/getting-started/kubernetes/installation/hosted/kubeadm/1.6/calico.yaml
$ sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

 

Pastikan Master Node sudah Ready

Menambahkan Worker pada Cluster

Pada worker node 1, worker node 2 & worker node 3 lakukan inisiasi agar dapat terhubung dengan master-node dalam cluster :

Worker Node 1 :

$ sudo kubeadm join 10.1.22.251:6443 –token aww805.9jktx4mtmzn9jl0k \ –discovery-token-ca-cert-hash sha256:78bc6a8cbd08db783e408c74a21d4654245335cd9587827173dd7e27e37d3a87

 

Worker Node 2 :

$ sudo kubeadm join 10.1.22.251:6443 –token aww805.9jktx4mtmzn9jl0k \ –discovery-token-ca-cert-hash sha256:78bc6a8cbd08db783e408c74a21d4654245335cd9587827173dd7e27e37d3a87

 

Worker Node 3 :

$ sudo kubeadm join 10.1.22.251:6443 –token aww805.9jktx4mtmzn9jl0k \ –discovery-token-ca-cert-hash sha256:78bc6a8cbd08db783e408c74a21d4654245335cd9587827173dd7e27e37d3a87

 

Kemudian, pada master node pastikan worker node 1, worker node 2 & worker node 3 telah berada dalam cluster

 

Dapat dilihat pada gambar diatas menunjukan bahwa Master Node, Worker node1, Worker Node 2 & Worker Node 3 telah bergabung dalam satu Cluster dan menjadi sebuah Kubernetes Cluster.