Kubernetes untuk Pemula: Panduan Lengkap Container Orchestration | Ilmu Komputer

Kubernetes untuk Pemula: Panduan Lengkap Container Orchestration | Ilmu Komputer

Kubernetes (K8s) adalah platform open-source untuk otomatisasi deployment, scaling, dan management aplikasi dalam container. Di tahun 2026, Kubernetes telah menjadi standar de facto untuk container orchestration — digunakan oleh 96% perusahaan yang menjalankan container di production.

Apa itu Container Orchestration?

Bayangkan Anda punya 10 microservices yang masing-masing berjalan di container. Anda perlu:
- Memastikan container jalan terus (auto-restart jika crash)
- Menambah jumlah container saat traffic naik (auto-scaling)
- Mendistribusikan traffic ke container yang sehat (load balancing)
- Merollout update tanpa downtime (rolling update)
Container orchestration — dan Kubernetes — melakukan semua ini secara otomatis.

Arsitektur Kubernetes

Control Plane (Master Node):
- kube-apiserver: Gerbang utama untuk semua operasi K8s. Semua komunikasi via API
- etcd: Database key-value yang menyimpan semua konfigurasi dan state cluster
- kube-scheduler: Menentukan di node mana pod baru akan dijalankan
- kube-controller-manager: Menjalankan controller (deployment, replica set, dll)

Worker Nodes:
- kubelet: Agen yang berjalan di setiap node, memastikan container berjalan sesuai spek
- kube-proxy: Menangani networking dan load balancing antar pod
- Container Runtime: Docker, containerd, atau CRI-O yang menjalankan container

Konsep Penting Kubernetes

  • Pod: Unit terkecil di K8s — satu atau lebih container yang berbagi network dan storage
  • Deployment: Mendeklarasikan jumlah replika pod, strategi update, dan auto-healing
  • Service: Abstraksi network yang mengekspos pod ke internal cluster atau eksternal
  • Ingress: HTTP/HTTPS routing dari luar cluster ke service internal
  • ConfigMap & Secret: Menyimpan konfigurasi dan data sensitif terpisah dari container image
  • PersistentVolume: Storage yang tetap ada meski pod dihapus

Cara Install Kubernetes Lokal (Minikube)

# Install Minikube
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

# Start cluster
minikube start --driver=docker

# Cek status
kubectl get nodes
kubectl get pods -A

# Deploy aplikasi pertama
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get services

Deploy Aplikasi Sederhana dengan YAML

# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app
        image: nginx:alpine
        ports:
        - containerPort: 80
---
# service.yaml
apiVersion: v1
kind: Service
metadata:
  name: my-app-service
spec:
  selector:
    app: my-app
  ports:
  - port: 80
    targetPort: 80
  type: LoadBalancer

Baca Juga

Kesimpulan

Kubernetes mungkin terlihat kompleks pada awalnya, tetapi setelah memahami konsep dasar — Pod, Deployment, Service — Anda bisa mulai membangun dan mengelola aplikasi containerized dengan percaya diri. Mulailah dengan Minikube untuk belajar, lalu deploy ke cluster production di cloud (EKS, GKE, AKS).

Iklan

Iklan
Iklan

Iklan
Iklan

Iklan
Iklan