Minggu, 22 September 2024

KUBERNETES-install dan deploy nginx

 

Cara Install Kubernetes Cluster di Ubuntu 22.04

Kubernetes adalah salah satu teknologi paling menarik dalam dunia pengembangan dan pengelolaan aplikasi saat ini. Dengan Kubernetes, Anda dapat mengelola berbagai aplikasi secara lebih efisien dan dalam lingkungan komputasi modern. Dalam artikel ini, kami akan berbagi cara install cara install kubernetes cluster di Ubuntu 22.04 pada layanan VPS KVM.

Apa itu Kubernetes cluster?

Kubernetes cluster adalah kumpulan komputer atau server yang saling terhubung untuk menjalankan aplikasi dalam sebuah container. Kubernetes cluster memastikan bahwa semua aplikasi yang berjalan dapat didistribusikan dan dikelola dengan baik.

Biasanya dalam satu cluster, terdiri dari satu computer atau server utama yang disebut dengan “master” dan beberapa komputer yang berjalan sebagai “worker”. Komputer master berfungsi untuk mengatur semua computer worker agar dapat berjalan sesuai kebutuhan.

Menariknya, dengan system cluster ini Anda dapat menjalankan aplikasi secara lebih efisien, serta lebih mudah dikelola, seolah-olah semua computer atau server berada adlam satu sistem yang terintegrasi.

Cara Install Kubernetes Cluster di Ubuntu

Dalam artikel ini, kami akan berbagi cara install Kubernetes cluster di VPS Ubuntu 22.04. Untuk mulai melakukan instalasi, Anda perlu mempersiapkan beberapa hal terlebih dahulu. Berikut step by step yang perlu Anda lakukan.

Step 1. Persiapan Sistem

Pastikan VPS KVM Anda telah memenuhi systems requirement berikut:

Promo Hosting Murah Rumahweb

  • 2 CPU
  • 2 GB RAM

Sistem requirement tersebut berlaku untuk masing-masing node.

Pada panduan ini, kami menggunakan 3 VPS KVM yang detailnya kami namakan sebagai berikut:

Master : 203.175.8.222 : master.jurnalrw.my.id
Worker : 203.175.8.101 : worker1.jurnalrw.my.id
Worker : 203.175.8.102 : worker2.jurnalrw.my.id

Step 2. Install Docker service 

Sebelum melakukan installasi docker, pastikan telah membuat file hosts pada masing masing node (/etc/hosts) yang mengarah ke ip tiap vos server.

# nano /etc/hosts

203.175.8.222 : master.jurnalrw.my.id
203.175.8.101 : worker1.jurnalrw.my.id
203.175.8.102 : worker2.jurnalrw.my.id

Lakukan konfigurasi hostname VPS sesuai dengan hostname/IP yang telah diatur sebelumya. Jalankan pada tiap VPS command berikut ini:

# hostnamectl set-hostname master.jurnalrw.my.id

Lanjutkan pada proses installasi package yang dibutuhkan.

# sudo apt update
# sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Step 3. Install Docker

Lakukan instalasi docket dengan perintah sebagai berikut:

echo \

  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \

  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null 

# sudo apt update
# sudo apt install docker-ce docker-ce-cli containerd.io 
# sudo groupadd docker
# sudo usermod -aG docker $USER

Untuk memastikan apakah docker telah terinstall, periksa menggunakan perintah docker version.

Apabila docker telah terinstall, langkah selanjutnya melakukan disable swap pada masing masing vps dan mengizinkan forward ip dari sysctl.

# swapoff -a
# sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
# nano /etc/sysctl.conf

  net.ipv4.ip_forward = 1

sysctl --system

Step 4. Install Kubernetes 

Setelah melakukan installasi Docker dan persiapan sistem cluster, kita akan melakukan installasi Kubernetes cluster pada semua node.

# apt install -y apt-transport-https curl
# curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add 
# apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main" 
# apt update && sudo apt install -y kubelet kubeadm kubectl kubernetes-cni && systemctl enable kubelet

Jalankan Initialize kubernetes pada node Master. Jika sudah selesai dan tidak terkendala, selanjutnya akan terdapat perintah join cluster untuk node workernya.

<output> ...

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

Alternatively, if you are the root user, you can run:

  export KUBECONFIG=/etc/kubernetes/admin.conf

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

Kemudian Anda dapat menambahkan node worker dengan menjalankan perintah berikut pada masing-masing node sebagai root:

kubeadm join 203.175.8.222:6443 --token ryu2ba91.ao5vt6g4k6814xsw \

        --discovery-token-ca-cert-hash sha256:gyg66js12b6f686gg0c1ef6b1a4cf085f46e31ac20be575

Buat file Konfigurasi Kubernetes pada node master.

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

Untuk kebutuhan network, Install pod calico pada node masternya dengan perintah sebagai berikut:

kubectl apply -f https://docs.projectcalico.org/v3.23/manifests/calico.yaml

Tambahkan worker ke dalam cluster pada semua node worker. Command ini akan berjalan ketika selesai install node.

kubeadm join 203.175.8.222:6443 --token r8ba91.ao5vt6g4k6814xsw \

--discovery-token-ca-cert-hash sha256:b98397015ed01dc8402b6fae86b40cb0150c1ef6b1a4cf085f46e31ac20be575

... <output> ...

[preflight] Running pre-flight checks

[preflight] Reading configuration from the cluster...

[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'

[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"

[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"

[kubelet-start] Starting the kubelet

[kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...

This node has joined the cluster:

* Certificate signing request was sent to apiserver and a response was received.

* The Kubelet was informed of the new secure connection deta

Langkah selanjutnya, pastikan sistem berjalan dengan normal dengan memeriksa status health dan info components 

kubectl get componentstatus

... <output> ...

Warning: v1 ComponentStatus is deprecated in v2.78+

NAME STATUS MESSAGE ERROR

controller-manager Healthy ok

scheduler Healthy ok

etcd-0 Healthy {"health":"true","reason":""}

kubectl get pods --all-namespaces

... <output> ...

NAMESPACE NAME READY STATUS RESTARTS AGE

kube-system calico-kube-controllers-6766647d54-7ts48 1/1 Running 0 30m

kube-system calico-node-tzdm2 1/1 Running 0 17m

kube-system calico-node-wkpl4 1/1 Running 0 17m

kube-system calico-node-wn9n6 1/1 Running 0 30m

kube-system coredns-9974cb6d-6t2jx 1/1 Running 0 56m

kube-system coredns-6d4b774853d-zx999 1/1 Running 0 56m

kube-system etcd-master.jurnalrw.my.id 1/1 Running 0 57m

kube-system kube-apiserver-master.jurnalrw.my.id 1/1 Running 0 57m
kubeadm network - cara install kubernetes cluster di ubuntu

Pengujian

Pada proses pengujian, kita akan melakukan installasi Nginx pada semua node melalui master, dengan perintah sebagai berikut:

kubectl create deployment nginx --image=nginx
... <output> ...

deployment.apps/nginx created

Expose service nginx agar dapat diakses dari node luar/jaringan luar.

kubectl create service nodeport nginx --tcp=80:80

Apabila service telah ter-expose dan dapat diakses, langkah selanjutnya adalah percobaan melakukan scale-up/down pada container. Pada panduan ini, kami mencoba membuat 4 replica nginx.

kubectl scale --replicas=4 deployment nginx
... <output> ...

deployment.apps/nginx scaled

Setelah melakukan scale Kubernetes cluster, kita periksa dengan menjalankan command kubectl untuk memeriksa apakah container berhasil dibuat.

kubectl get pods -o wide
.. <output> ...

NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES

nginx-8f458dc5b-7jlzp 1/1 Running 0 11m 10.100.17.194 worker1.jurnalrw.my.id <none> <none>

nginx-67258dc5b-gwbdj 1/1 Running 0 23m 10.100.17.193 worker1.jurnalrw.my.id <none> <none>

nginx-673f458dc5b-jn7t2 1/1 Running 0 11m 10.100.91.195 worker2.jurnalrw.my.id <none> <none>

nginx-672fffc5b-mc9v8 1/1 Running 0 11m 10.100.91.194 worker2.jurnalrw.my.id <none> <none>
worker uji kubernetes

Sampai tahap ini, proses install Kubernetes cluster di VPS Ubuntu 22.04 telah selesai. Selanjutnya, Anda dapat melakukan scale sesuai kebutuhan dan image yang ingin dipasang pada server.

Demikian artikel kami tentang apa itu Kubernetes cluster dan bagaimana cara install Kubernetes cluster di Ubuntu 22.04 pada layanan VPS KVM. Semoga bermanfaat.


Tidak ada komentar:

Posting Komentar