Search

Berikut panduan lengkap untuk menginstal Kubernetes di lingkungan lab kampus Anda. Tutorial ini menggunakan kubeadm untuk instalasi cluster Kubernetes.

Prasyarat

  1. 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

  2. Akses root/sudo ke semua mesin

  3. Koneksi jaringan yang stabil antara mesin-mesin

  4. 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):

      1. Matikan swap:

        sudo swapoff -a
        sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
      2. 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
      3. 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:

      1. 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
      2. 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:

      1. 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.

      2. 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
      3. 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:

      1. 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:

      1. Cek status node:

        kubectl get nodes

        Output harus menunjukkan semua node dengan status "Ready".

      2. Cek status pod sistem:

        kubectl get pods -n kube-system

      Langkah 6: Konfigurasi Tambahan untuk Lab Kampus

      1. Install dashboard Kubernetes:

        kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
      2. 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
      3. Dapatkan token untuk login:

        kubectl -n kubernetes-dashboard create token admin-user
      4. Akses dashboard:

        kubectl proxy

        Kemudian akses melalui browser: http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

      Troubleshooting Umum

      1. Jika node tidak bergabung:

        • Periksa konektivitas jaringan antara master dan worker

        • Verifikasi token join masih valid (token kadaluarsa setelah 24 jam)

      2. Jika pod stuck di status "Pending":

        • Cek kubectl describe pod <nama-pod> untuk detail error

        • Verifikasi network plugin berjalan dengan baik

      3. Jika kubelet tidak berjalan:

        • Cek logs: journalctl -u kubelet -f

      Tips untuk Lab Kampus

      1. Untuk menghemat sumber daya, Anda bisa mengatur:

        kubectl -n kube-system scale --replicas=1 deployment/coredns
      2. 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.