Kubernetes & Orchestration

๐Ÿš€๐ŸŒ Bab 23 – SOP Kubernetes & Orchestration di Ubuntu Server

Bab ini akan membawa dokumentasi kamu ke level enterprise, karena Kubernetes adalah standar industri untuk mengelola container skala besar. Dengan Kubernetes, aplikasi bisa dijalankan, diskalakan, dan dipulihkan secara otomatis.

๐ŸŽฏ Tujuan

  • Memasang Kubernetes di Ubuntu Server.
  • Menjalankan aplikasi dalam cluster container.
  • Mengelola scaling, load balancing, dan self-healing.
  • Memahami konsep dasar orchestration.

๐Ÿ”ง Lingkup

  • Sistem operasi: Ubuntu Server
  • Tools: Kubernetes (k8s), kubeadm, kubectl, minikube (untuk testing)
  • Container runtime: Docker/Containerd

3. Langkah Kerja

๐Ÿ”ง 3.1 Instalasi Kubernetes (Cluster)

  1. Update sistem:
    sudo apt update && sudo apt upgrade -y
              
  2. Install dependency:
    sudo apt install -y apt-transport-https ca-certificates curl
              
  3. Tambahkan repository Kubernetes:
    curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
    echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
              

    ⚠️ Catatan: Repository apt.kubernetes.io sudah tidak digunakan lagi sejak Maret 2024. Gunakan repository baru di pkgs.k8s.io untuk instalasi terbaru.

  4. Install kubeadm, kubelet, kubectl:
    sudo apt update
    sudo apt install -y kubelet kubeadm kubectl
    sudo apt-mark hold kubelet kubeadm kubectl
              

3.2 Inisialisasi Cluster

  1. Jalankan di master node:
    sudo kubeadm init --pod-network-cidr=10.244.0.0/16
              
  2. 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
              
  3. Install network plugin (Flannel):
    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
              

๐Ÿ”— 3.3 Join Worker Node

Di server worker, jalankan perintah join yang diberikan oleh kubeadm init, contoh:

sudo kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:xxxxxxxx
      

๐Ÿ“ฆ 3.4 Deploy Aplikasi di Kubernetes

Contoh: deploy Nginx.

kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
      

Cek service:

kubectl get svc
      

Akses aplikasi via IP node + port.

๐Ÿ“ˆ 3.5 Scaling & Self-Healing

  • Scale deployment:
    kubectl scale deployment nginx --replicas=3
              
  • Kubernetes otomatis restart pod jika crash.

๐Ÿ“Š 3.6 Monitoring Cluster

  • Lihat node:
    kubectl get nodes
              
  • Lihat pod:
    kubectl get pods -o wide
              
  • Lihat log pod:
    kubectl logs nama_pod
              

4. Command Ringkas

Fungsi Command
Install kubeadm/kubectl sudo apt install -y kubelet kubeadm kubectl
Init cluster sudo kubeadm init --pod-network-cidr=10.244.0.0/16
Join worker node sudo kubeadm join ...
Deploy Nginx kubectl create deployment nginx --image=nginx
Expose service kubectl expose deployment nginx --port=80 --type=NodePort
Scale deployment kubectl scale deployment nginx --replicas=3
Lihat nodes kubectl get nodes
Lihat pods kubectl get pods -o wide
Lihat log pod kubectl logs nama_pod

5. Catatan Penting

  • ๐Ÿงช
    Gunakan minikube untuk testing lokal sebelum ke cluster production.
  • ๐Ÿ“ฆ
    Pastikan semua node punya runtime container (Docker/Containerd).
  • ๐ŸŒ
    Gunakan network plugin (Flannel, Calico) agar pod bisa berkomunikasi.
  • ๐Ÿ”„
    Kubernetes otomatis melakukan load balancing, scaling, dan self-healing.

๐Ÿ’ก Pro Tips

Integrasikan dengan Prometheus + Grafana di Kubernetes → monitoring cluster modern.

๐Ÿ‘‰ Dengan bab ini, kamu sudah bisa mengelola aplikasi skala besar dengan Kubernetes, siap untuk deployment enterprise.

Komentar

Postingan populer dari blog ini

Automation dengan Ansible

Logging & Observability Modern (ELK Stack)

Docker & Container