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