Masdika Loading..
Masdika.BIZ.ID

DevOps Engineer

Cloud Engineer

System Administrator

  • Home
  • Portofolio
  • Services
  • Resume
  • Skills
  • Blog
  • Contact
Masdika.BIZ.ID

DevOps Engineer

Cloud Engineer

System Administrator

Download CV

Recent Posts

  • Cara Deploy WordPress di Kubernetes Lengkap dengan SSL Let’s Encrypt
  • Panduan Lengkap Install MetalLB di Kubernetes (VPS/Bare Metal) dengan IP Publik
  • Panduan Lengkap Deploy Ingress NGINX dan Cert-Manager Kubernetes dengan HTTPS Otomatis (Let’s Encrypt)
  • Cara Install Kubernetes dengan Ansible di 2 Server (Master dan Worker)
  • Monitoring Docker Container dengan CAdvisor, Node Exporter, Prometheus, dan Grafana

Recent Comments

  1. Masdika.BIZ.ID on Cara Install Kubernetes dengan Ansible di 2 Server (Master dan Worker)
  2. wwqqs on Cara Install Kubernetes dengan Ansible di 2 Server (Master dan Worker)
  3. Rio Ardiansyah on Panduan Lengkap Redis Docker untuk WordPress
  4. Masdika.BIZ.ID on Cara Monitoring Status Disk RAID di Server Dell Menggunakan Bash Script dan PercCLI
  5. fafiki on Cara Monitoring Status Disk RAID di Server Dell Menggunakan Bash Script dan PercCLI

Archives

  • July 2025
  • June 2025

Categories

  • Tutorial

Masddika.BIZ.ID

  • About
  • Terms & Conditions
  • Privacy Policy
Blog Post

Cara Install Kubernetes dengan Kubeadm di Rocky Linux, AlmaLinux, dan Red Hat-Based

June 17, 2025 Tutorial by Masdika.BIZ.ID
Cara Install Kubernetes dengan Kubeadm di Rocky Linux, AlmaLinux, dan Red Hat-Based

Halo semuanya! 👋
Di artikel kali ini, kita akan membahas langkah demi langkah cara install Kubernetes menggunakan kubeadm di Rocky Linux. Panduan ini juga bisa kalian gunakan untuk distro Linux turunan Red Hat lainnya seperti AlmaLinux, CentOS, atau RHEL.

Tutorial ini cocok buat kalian yang ingin membangun sendiri cluster Kubernetes sederhana dengan dua node: satu sebagai master (master.masdika.biz.id) dan satu sebagai worker (worker.masdika.biz.id).

Apa Itu Kubernetes dan Kenapa Perlu?

Kubernetes adalah platform open-source untuk mengelola container. Dengan Kubernetes, kamu bisa melakukan scaling aplikasi secara otomatis, deploy update tanpa downtime, dan bahkan self-healing saat aplikasi crash. Jadi, kalau pod kamu tiba-tiba gagal, Kubernetes akan otomatis membuat penggantinya — layanan tetap jalan!

Persiapan Sebelum Install Kubernetes

Untuk memulai, kamu butuh 2 VPS atau mesin virtual:

  • 1 node master (hostname: master.masdika.biz.id)
  • 1 node worker (hostname: worker.masdika.biz.id)

Spesifikasi minimum:

  • 2 CPU
  • 2 GB RAM per node
  • Akses root atau sudo

1. Atur Hostname dan /etc/hosts (Pada Setiap Node)

Set hostname masing-masing node:

sudo hostnamectl set-hostname master.masdika.biz.id
# atau untuk worker:
sudo hostnamectl set-hostname worker.masdika.biz.id

Edit file /etc/hosts dan tambahkan:

10.0.0.1 master.masdika.biz.id
10.0.0.2 worker.masdika.biz.id

2. Aktifkan Bridge Network (Pada Setiap Node)

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF

sudo modprobe overlay
sudo modprobe br_netfilter

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
EOF

sudo sysctl --system

3. Nonaktifkan Swap (Pada Setiap Node)

sudo swapoff -a
sudo sed -i.bak -r 's/(.+ swap .+)/#\1/' /etc/fstab
(crontab -l 2>/dev/null; echo "@reboot /sbin/swapoff -a") | crontab -

4. Tambah Repo Kubernetes dan Install (Pada Setiap Node)

Di sini kita menggunakan Kubernetes versi 1.29. Jika ingin menggunakan versi berbeda, kamu bisa cek daftar versi di dokumentasi resmi Kubernetes.

sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

Buat file repo Kubernetes:

# This overwrites any existing configuration in /etc/yum.repos.d/kubernetes.repo
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.33/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.33/rpm/repodata/repomd.xml.key
EOF

Install paket:

sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
sudo systemctl enable --now kubelet

5. Install Container Runtime: containerd (Pada Setiap Node)

Tambahkan repo Docker:

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Install containerd:

sudo yum install containerd.io -y

6. Konfigurasi containerd (Pada Setiap Node)

sudo mkdir -p /etc/containerd
sudo containerd config default | sudo tee /etc/containerd/config.toml
sudo nano /etc/containerd/config.toml

Cari bagian berikut:

[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
    SystemdCgroup = false

Ubah nilai SystemdCgroup dari false menjadi true, seperti ini:

[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
    SystemdCgroup = true

Lalu simpan dan keluar dari editor.

Restart dan aktifkan containerd:

sudo systemctl restart containerd
sudo systemctl enable containerd

7. Install dan Konfigurasi CRICTL (Pada Setiap Node)

VERSION="v1.33.0"
wget https://github.com/kubernetes-sigs/cri-tools/releases/download/${VERSION}/crictl-${VERSION}-linux-amd64.tar.gz
sudo tar zxvf crictl-${VERSION}-linux-amd64.tar.gz -C /usr/local/bin
rm -f crictl-${VERSION}-linux-amd64.tar.gz

Buat config crictl:

sudo nano /etc/crictl.yaml

Isi dengan:

runtime-endpoint: unix:///run/containerd/containerd.sock
image-endpoint: unix:///run/containerd/containerd.sock
timeout: 2
debug: true

8. Inisialisasi Master Node (Hanya di Master)

sudo kubeadm config images pull --cri-socket unix:///var/run/containerd/containerd.sock

sudo kubeadm init \
  --pod-network-cidr=10.244.0.0/16 \
  --cri-socket unix:///var/run/containerd/containerd.sock

Lalu konfigurasi kubectl:

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

Kalau pakai root:

export KUBECONFIG=/etc/kubernetes/admin.conf

9. Install Network Plugin (Calico, di Master Node)

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
kubectl get pods -A

10. Tambahkan Worker Node ke Cluster

Untuk menambahkan node worker ke cluster Kubernetes, kita perlu membuat token join di master node, lalu menjalankan perintah tersebut di node worker.

🔑 Langkah di Master Node (master.masdika.biz.id):

Jalankan perintah berikut untuk menghasilkan token dan perintah join:

kubeadm token create --print-join-command

Outputnya akan terlihat seperti ini (contoh):

kubeadm join master.masdika.biz.id:6443 --token abcdef.0123456789abcdef \
    --discovery-token-ca-cert-hash sha256:1234567890abcdef... \
    --cri-socket unix:///var/run/containerd/containerd.sock

💻 Langkah di Worker Node (worker.masdika.biz.id):

Salin seluruh output perintah dari atas, lalu jalankan di node worker:

sudo kubeadm join master.masdika.biz.id:6443 --token abcdef.0123456789abcdef \
    --discovery-token-ca-cert-hash sha256:1234567890abcdef... \
    --cri-socket unix:///var/run/containerd/containerd.sock

Tunggu proses selesai. Jika sukses, node worker akan tergabung ke cluster master.

11. Verifikasi Cluster (Di Master Node)

Cek status:

kubectl get nodes

Jika worker tidak memiliki role:

kubectl label node worker.masdika.biz.id node-role.kubernetes.io/worker=worker

Penutup

Itu dia langkah-langkah install Kubernetes menggunakan kubeadm di Rocky Linux, Almalinux, dan distro Red Hat lainnya. Dengan mengikuti panduan ini, kamu sudah punya cluster Kubernetes sendiri untuk belajar atau eksperimen lebih lanjut.

Terima kasih sudah membaca! Jangan lupa share jika bermanfaat 🙌

Referensi Artikel

Share:
Tags: kuberneteslinuxredhatrocky

Post navigation

Prev
Next
Write a comment Cancel Reply

© 2025 www.masdika.biz.id — Semua Hak Dilindungi