Berikut panduan lengkap untuk menginstal Kubernetes di lingkungan lab kampus Anda. Tutorial ini menggunakan kubeadm untuk instalasi cluster Kubernetes.
Prasyarat
-
Beberapa mesin (fisik/virtual) dengan spesifikasi:
-
Minimal 2GB RAM (disarankan 4GB+)
-
Minimal 2 core CPU
-
20GB ruang disk
-
OS: Ubuntu 20.04/22.04 LTS atau CentOS 7/8
-
-
Akses root/sudo ke semua mesin
-
Koneksi jaringan yang stabil antara mesin-mesin
-
Port berikut harus terbuka:
-
6443 (Kubernetes API server)
-
2379-2380 (etcd)
-
10250 (Kubelet API)
-
10251 (kube-scheduler)
-
10252 (kube-controller-manager)
Langkah 1: Persiapan Semua Node
Pada semua mesin (master dan worker):
-
Matikan swap:
sudo swapoff -a sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
-
Konfigurasi sysctl:
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-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 EOF sudo sysctl --system
-
Instal container runtime (contoh menggunakan containerd):
# Untuk Ubuntu sudo apt-get update sudo apt-get install -y containerd # Untuk CentOS sudo yum install -y containerd # Konfigurasi containerd sudo mkdir -p /etc/containerd containerd config default | sudo tee /etc/containerd/config.toml sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml sudo systemctl restart containerd sudo systemctl enable containerd
Langkah 2: Instal kubeadm, kubelet, dan kubectl
Pada semua node:
-
Tambahkan repositori Kubernetes:
sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
-
Instal paket Kubernetes:
sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl
Langkah 3: Inisialisasi Cluster pada Master Node
Hanya pada master node:
-
Inisialisasi cluster:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
Catat perintah
kubeadm join
yang muncul di output, Anda akan membutuhkannya nanti untuk menambahkan worker nodes. -
Konfigurasi kubectl untuk user biasa:
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
-
Instal network plugin (contoh menggunakan Flannel):
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
Langkah 4: Tambahkan Worker Nodes
Pada setiap worker node:
-
Jalankan perintah
kubeadm join
yang Anda dapatkan dari output inisialisasi master, contoh:sudo kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef \ --discovery-token-ca-cert-hash sha256:12345abcde...
Langkah 5: Verifikasi Cluster
Pada master node:
-
Cek status node:
kubectl get nodes
Output harus menunjukkan semua node dengan status "Ready".
-
Cek status pod sistem:
kubectl get pods -n kube-system
Langkah 6: Konfigurasi Tambahan untuk Lab Kampus
-
Install dashboard Kubernetes:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
-
Buat akun admin untuk dashboard:
cat <<EOF | kubectl apply -f - apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kubernetes-dashboard EOF cat <<EOF | kubectl apply -f - apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: admin-user roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: admin-user namespace: kubernetes-dashboard EOF
-
Dapatkan token untuk login:
kubectl -n kubernetes-dashboard create token admin-user
-
Akses dashboard:
kubectl proxy
Kemudian akses melalui browser: http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
Troubleshooting Umum
-
Jika node tidak bergabung:
-
Periksa konektivitas jaringan antara master dan worker
-
Verifikasi token join masih valid (token kadaluarsa setelah 24 jam)
-
-
Jika pod stuck di status "Pending":
-
Cek
kubectl describe pod <nama-pod>
untuk detail error -
Verifikasi network plugin berjalan dengan baik
-
-
Jika kubelet tidak berjalan:
-
Cek logs:
journalctl -u kubelet -f
-
Tips untuk Lab Kampus
-
Untuk menghemat sumber daya, Anda bisa mengatur:
kubectl -n kube-system scale --replicas=1 deployment/coredns
-
Untuk membersihkan instalasi jika ingin mengulang:
sudo kubeadm reset sudo apt-get purge kubeadm kubectl kubelet kubernetes-cni sudo rm -rf ~/.kube
Semoga tutorial ini membantu! Jika ada masalah spesifik di lab kampus Anda, mungkin perlu penyesuaian konfigurasi jaringan atau storage tergantung lingkungannya.
-
-