Langsung ke konten utama

Kubernetes & Docker

Langkah-langkah Setup Minikube + Kubernetes

1. Install Tools Dasar

Pastikan sudah install:

  • Docker

  • Kubectl

  • Minikube

  • Kubeadm (opsional, untuk manual cluster setup)

👉 Cek versinya:

docker --version
kubectl version --client
kubeadm version
minikube version

2. Konfigurasi Docker

Supaya tidak perlu sudo tiap kali pakai docker:

# Buat group docker (jika belum ada)
sudo groupadd docker

# Tambahkan user ke group docker
sudo usermod -aG docker $USER

➡️ Logout & login ulang agar efektif.
Coba tes:

docker run hello-world

3. Aktifkan Service Docker & Containerd

Supaya otomatis jalan saat boot:

sudo systemctl enable docker.service
sudo systemctl enable containerd.service

Lalu start:

sudo systemctl start docker.service
sudo systemctl start containerd.service

4. Bersihkan Minikube Lama (opsional)

Jika sebelumnya pernah setup Minikube:

minikube delete --all

5. Jalankan Minikube

Ada dua opsi:

  • Driver Docker (disarankan):

minikube start --driver=docker
  • Default Driver:

minikube start

Cek status:

minikube status

6. Cek Kubernetes Cluster

Tes apakah cluster aktif:

kubectl get nodes
kubectl get pods -A

Kalau berhasil, biasanya output kubectl get nodes akan menampilkan 1 node dengan status Ready.


7. Verifikasi API Server

Pastikan kube-apiserver jalan di dalam container:

sudo docker ps | grep kube-apiserver

8. Jalankan Aplikasi Uji

Misalnya jalankan Pod sederhana:

kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4
kubectl expose deployment hello-node --type=NodePort --port=8080

Cek:

kubectl get pods
kubectl get svc

Untuk akses dari browser:

minikube service hello-node


✅ Alur singkat

  1. Install tools (Docker, Kubectl, Minikube, Kubeadm).

  2. Konfigurasi Docker user.

  3. Enable Docker & Containerd.

  4. Hapus cluster lama (opsional).

  5. Start Minikube.

  6. Tes kubectl.

  7. Cek kube-apiserver.

  8. Deploy aplikasi test.


Ini dia diagram alur setup Minikube + Kubernetes yang lebih mudah dipahami secara visual:


🔽 Mulai dari install tools → konfigurasi Docker → start Minikube → cek cluster → deploy aplikasi test.

📝 Quick Notes Setup Minikube

  1. Install tools → Docker, Kubectl, Minikube, Kubeadm.

  2. Cek versidocker --version, kubectl version --client, kubeadm version, minikube version.

  3. Atur Docker usersudo groupadd docker && sudo usermod -aG docker $USER → logout/login.

  4. Enable servicessudo systemctl enable/start docker.service containerd.service.

  5. Hapus cluster lamaminikube delete --all (opsional).

  6. Start clusterminikube start --driver=docker.

  7. Cek statuskubectl get nodes, kubectl get pods -A.

  8. Verifikasi API serverdocker ps | grep kube-apiserver.

  9. Deploy test appkubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4.

  10. Expose servicekubectl expose deployment hello-node --type=NodePort --port=8080.

  11. Akses appminikube service hello-node.


⚡Dengan catatan ini, kalau mau setup ulang cluster, tinggal ikuti urutannya.

🚀 setup-minikube.sh

#!/bin/bash

echo "=== 🚀 Setup Minikube + Kubernetes ==="

# 1. Cek versi tools
echo "[1] Mengecek versi tools..."
docker --version
kubectl version --client
kubeadm version
minikube version

# 2. Konfigurasi Docker user
echo "[2] Konfigurasi Docker group & user..."
sudo groupadd docker 2>/dev/null
sudo usermod -aG docker $USER

# 3. Enable & start Docker + Containerd
echo "[3] Mengaktifkan Docker & Containerd..."
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
sudo systemctl start docker.service
sudo systemctl start containerd.service

# 4. Tes Docker
echo "[4] Menjalankan tes Docker (hello-world)..."
docker run hello-world

# 5. Hapus cluster lama (opsional)
echo "[5] Menghapus cluster Minikube lama..."
minikube delete --all

# 6. Start Minikube dengan Docker
echo "[6] Memulai Minikube..."
minikube start --driver=docker

# 7. Cek status cluster
echo "[7] Mengecek status cluster..."
kubectl get nodes
kubectl get pods -A

# 8. Deploy aplikasi test
echo "[8] Deploy aplikasi hello-node..."
kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4 --dry-run=client -o yaml | kubectl apply -f -
kubectl expose deployment hello-node --type=NodePort --port=8080

# 9. Akses aplikasi
echo "[9] Membuka service hello-node..."
minikube service hello-node

📌 Cara Pakai

  1. Simpan file ini → setup-minikube.sh.

  2. Beri izin eksekusi:

    chmod +x setup-minikube.sh
    
  3. Jalankan script:

    ./setup-minikube.sh
    

⚡ Script ini akan langsung install cluster, jalanin Docker test, start Minikube, deploy pod sederhana, expose service, sampai membuka akses ke browser.

🗑️ reset-minikube.sh

#!/bin/bash

echo "=== 🗑️ Reset Minikube + Docker ==="

# 1. Stop & delete semua cluster Minikube
echo "[1] Menghapus semua cluster Minikube..."
minikube stop
minikube delete --all --purge

# 2. Hapus konfigurasi Minikube
echo "[2] Menghapus konfigurasi Minikube..."
rm -rf ~/.minikube
rm -rf ~/.kube

# 3. Hentikan semua container Docker yang masih jalan
echo "[3] Menghentikan semua container Docker..."
docker stop $(docker ps -aq) 2>/dev/null

# 4. Hapus semua container & image Docker
echo "[4] Menghapus semua container & image Docker..."
docker rm -f $(docker ps -aq) 2>/dev/null
docker rmi -f $(docker images -q) 2>/dev/null
docker volume prune -f
docker system prune -af --volumes

# 5. Restart Docker service
echo "[5] Restart Docker service..."
sudo systemctl restart docker.service
sudo systemctl restart containerd.service

echo "✅ Reset selesai! Sistem siap untuk setup ulang Minikube."

📌 Cara Pakai

  1. Simpan file ini → reset-minikube.sh.

  2. Beri izin eksekusi:

    chmod +x reset-minikube.sh
    
  3. Jalankan script:

    ./reset-minikube.sh
    

⚡ Script ini akan:

  • Stop & hapus cluster Minikube.

  • Bersihkan konfigurasi ~/.minikube & ~/.kube.

  • Hapus semua container & image Docker (jadi Docker benar-benar fresh).

  • Restart Docker & Containerd.


Pastikan container minikube container sudah running seperti berikut: 

$ docker ps
CONTAINER ID   IMAGE                                 COMMAND                  CREATED       STATUS         PORTS                                                                                                                                  NAMES
58f46e1db165   gcr.io/k8s-minikube/kicbase:v0.0.47   "/usr/local/bin/entr…"   3 weeks ago   Up 6 minutes   127.0.0.1:32773->22/tcp, 127.0.0.1:32774->2376/tcp, 127.0.0.1:32775->5000/tcp, 127.0.0.1:32776->8443/tcp, 127.0.0.1:32777->32443/tcp   minikube

$ minikube start --driver=docker

Tentukan port supaya tidak dinamis, misal di port 8001

$ minikube dashboard --url --port 8001
🤔  Verifying dashboard health ...
🚀  Launching proxy ...
🤔  Verifying proxy health ...
http://127.0.0.1:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/


Komentar

Postingan populer dari blog ini

CI/CD dengan Gitlab

Sebelum memulai CI/CD, kita harus mempersiapkan shell untuk mengeksekusi proses di Gitlab dengan catatan saya menggunakan Ubuntu 20.04LTS. Melakukan dengan cara shell  atau command dengan script, tujuannya adalah untuk mempermudah untuk mengeksekusi dan dokumentasi. Namun kembali lagi untuk setuap operator. Berikut yang perlu dilakukan: Gitlab Runner Download $ curl -LJO "https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/deb/gitlab-runner-helper-images.deb" curl -LJO "https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/deb/gitlab-runner_amd64.deb" Preparation in Gitlab Go to Project Repository > CI/CD Settings > Register runner Dari konfigurasi ini yang akan digunakan untuk registrasi Install $ sudo dpkg -i gitlab-runner-helper-images.deb gitlab-runner_ amd64 .deb Cek Versi $ sudo gitlab-runner -version Cek Status $ sudo gitlab-runner status Ubah Configurasi $ sudo visudo Tambahkan: gitlab-runner ALL=( ALL: AL...

Kubernetes

Kubernetes Untuk membuka web dari public antar host dengan mengatur konfigurasi berikut terlebih dahulu: Go to your virtual machine > settings > network > NAT > advanced > port-forwarding Add a new rule: host IP = 27.0.0.1 host port = any free one, e.g. I used 8000 guest IP = can be left empty guest port = 8001 (where proxy is listening to) Menggunakan Oracle VirtualBox. Berikut perintah-perintah yang digunakan untuk menjalankan dan menampilan Dashboard Kubernetes: $ minikube start $ minikube dashboard $ sudo netstat -tlpn $ kubectl proxy --address='0.0.0.0' &