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/configYou 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.