
Tutorial Kubernetes adalah: Cara di Lokal Menggunakan Minikube

Semakin cepatnya perkembangan dunia cloud computing menuntut para developer dan IT professional untuk terus meng-upgrade skill. Salah satu tools yang telah menjadi standar de facto dan sangat populer dalam mengelola aplikasi modern adalah Kubernetes. Bagi banyak orang, Kubernetes adalah sebuah platform yang terkesan kompleks dan hanya berjalan di lingkungan cloud yang mahal. Namun, tahukah Anda bahwa Anda bisa mempelajari, mengembangkan, dan menguji semua fitur canggihnya langsung di laptop Anda? Inilah keajaiban yang dibawa oleh Minikube. Artikel komprehensif ini akan memandu Anda memahami secara mendalam apa itu Kubernetes dan memberikan tutorial langkah demi langkah untuk menguasainya di lingkungan lokal.
Apa Itu Kubernetes?

Sebelum kita menyelami praktiknya, sangat penting untuk membangun fondasi pemahaman yang kuat. Secara fundamental, Kubernetes adalah sebuah platform open-source yang digunakan untuk mengotomasi deployment, scaling, dan manajemen aplikasi yang dikemas dalam container. Bayangkan Anda memiliki puluhan, ratusan, bahkan ribuan container (misalnya, container Docker) yang menjalankan berbagai microservice aplikasi Anda. Mengelola secara manual mana yang sedang berjalan, mana yang gagal, bagaimana mereka saling terhubung, dan bagaimana menangani lalu lintas yang tinggi adalah tugas yang hampir mustahil.
Di sinilah Kubernetes adalah sang pahlawan. Ia bertindak sebagai orchestrator yang cerdas. Ia memastikan keadaan yang Anda inginkan untuk aplikasi Anda (misalnya, harus ada 3 replika dari service 'pembayaran' yang selalu berjalan) selalu terpenuhi. Jika satu container mati, Kubernetes secara otomatis akan menghidupkannya kembali. Jika lalu lintas meningkat, Kubernetes dapat secara otomatis menambah jumlah container untuk menanganinya. Platform ini pada dasarnya Kubernetes adalah kerangka kerja untuk menjalankan sistem yang terdistribusi dengan ketahanan dan skalabilitas yang tinggi.
Sejarah Singkat dan Evolusi Kubernetes
Kubernetes tidak lahir dari vacuum. Awalnya dikembangkan oleh internal Google dan diberi nama Borg. Google telah menjalankan sistem serupa selama lebih dari satu dekade untuk mengelola miliaran container setiap minggunya. Pada tahun 2014, Google merilis Kubernetes sebagai proyek open-source, dan pada tahun 2015, Kubernetes diserahkan kepada Cloud Native Computing Foundation (CNCF). Sejak saat itu, Kubernetes adalah hasil kolaborasi dari komunitas global yang massive dan telah menjadi fondasi utama dari gerakan "cloud-native".
Mengapa Belajar Kubernetes? Sebuah Investasi untuk Karir Masa Depan
Permintaan untuk profesional yang menguasai Kubernetes terus melonjak. Perusahaan dari startup hingga enterprise besar sedang bermigrasi dari arsitektur monolitik tradisional ke arsitektur microservices berbasis container. Transformasi digital ini membutuhkan keahlian khusus untuk mengelolanya.
- Skill yang Sangat Dicari: Profesional dengan sertifikasi dan pengalaman Kubernetes termasuk yang paling banyak dicari dan dihargai tinggi di industri tech global dan Indonesia.
- Standarisasi: Kubernetes adalah standar industri. Mempelajarinya berarti mempelajari sebuah skill yang dapat diterapkan di hampir semua lingkungan cloud (AWS, Google Cloud, Azure, dll) maupun on-premise.
- Pemahaman Arsitektur Modern: Bahkan jika Anda bukan seorang DevOps engineer, memahami Kubernetes memberikan wawasan mendalam tentang bagaimana aplikasi modern yang scalable, resilient, dan dapat dipelihara dibangun.
Baca Juga: Docker vs Kubernetes: Mana yang Lebih Cocok Digunakan?
Memperkenalkan Minikube: Kubernetes di Laptop Anda
Sekarang, kita sampai pada inti permasalahan awal: bagaimana cara belajar teknologi yang powerful ini tanpa harus membayar mahal untuk server cloud? Jawabannya adalah Minikube.
Apa Itu Minikube?
Minikube merupakan sebuah tools yang memungkinkan kita untuk menjalankan Kubernetes di local machine kita. Minikube akan membuat sebuah cluster Kubernetes yang terdiri dari satu node (biasa disebut single-node cluster). Dengan Minikube, kita bisa mensimulasikan hampir semua fungsi sebuah cluster Kubernetes penuh, mulai dari deployment, service, volume, hingga ingress. Tujuannya jelas: untuk development, edukasi, dan testing.
Minikube dikembangkan dan dipelihara oleh Kubernetes Community itu sendiri, sehingga kompatibilitas dan keakuratannya sangat terjamin. Ia mendukung berbagai container runtime seperti Docker, Containerd, dan CRI-O, serta dapat berjalan di atas berbagai hypervisor (VirtualBox, KVM, Hyper-V) atau langsung di Docker/Podman.
Keuntungan Menggunakan Minikube untuk Belajar
- Zero Cost: Gratis. Anda tidak mengeluarkan biaya sepeserpun untuk resource komputasi.
- Isolated Environment: Cluster Kubernetes Anda terisolasi penuh. Anda bisa mencoba, gagal, menghapus semuanya, dan memulai dari awal tanpa mempengaruhi lingkungan lain.
- Mencerminkan Environment Production: Perilaku dan perintah yang Anda jalankan di Minikube 99% sama dengan yang akan Anda jalankan di cluster production. Ini membuat proses belajar menjadi sangat relevan.
- Pengembangan yang Cepat: Developer dapat mengembangkan dan menguji aplikasi mereka secara lokal sebelum mendorongnya ke environment yang lebih tinggi.
Persyaratan Teknis (Technical Prerequisites)

Memilih Container Runtime: Docker vs. Podman vs. Containerd
- Docker: Paling populer dan paling mudah untuk pemula. Minikube dapat menggunakan Docker yang sudah terinstall di machine sebagai lingkungan untuk menjalankan cluster (docker driver).
- Podman: Alternatif daemonless yang semakin populer. Cocok untuk mereka yang ingin menghindari daemon Docker.
- Containerd: Runtime level rendah yang sebenarnya digunakan oleh Docker. Minikube dapat menggunakannya langsung.
Untuk tutorial ini, kita akan menggunakan Docker sebagai pilihan utama karena kemudahannya.
Tahapan Instalasi Minikube (Lengkap dengan Screenshot)
Langkah 1: Install Docker
Sebelum install Minikube, pastikan Docker sudah terinstall dan berjalan dengan baik.
Untuk Ubuntu/Debian:
sudo apt update sudo apt install docker.io sudo systemctl enable --now docker sudo usermod -aG docker $USER
Setelah menjalankan perintah usermod, logout dan login kembali agar perubahan group berlaku.
Verifikasi instalasi:
docker --version sudo docker run hello-world
Langkah 2: Download dan Install Binary Minikube
Download binary terbaru Minikube langsung dari repositori resminya.
Untuk Linux (AMD64):
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 sudo install minikube-linux-amd64 /usr/local/bin/minikube
Untuk macOS (AMD64/Apple Silicon):
# Untuk Mac dengan Intel chip curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64 sudo install minikube-darwin-amd64 /usr/local/bin/minikube # Untuk Mac dengan Apple Silicon (M1/M2/etc) curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-arm64 sudo install minikube-darwin-arm64 /usr/local/bin/minikube
Untuk Windows (PowerShell sebagai Administrator): Buka PowerShell sebagai Admin dan jalankan:
New-Item -Path 'c:\' -Name 'minikube' -ItemType Directory -Force Invoke-WebRequest -OutFile 'c:\minikube\minikube.exe' -Uri 'https://github.com/kubernetes/minikube/releases/latest/download/minikube-windows-amd64.exe' -UseBasicParsing
Tambahkan folder tersebut ke PATH System Environment Variable.
Verifikasi instalasi Minikube:
minikube version
Langkah 3: Install Kubectl (Kubernetes CLI)
kubectl adalah command line tool untuk berinteraksi dengan cluster Kubernetes. Minikube biasanya dapat mengkonfigurasi kubectl secara otomatis, tetapi yang terbaik adalah menginstallnya sendiri.
Download kubectl secara manual:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
Verifikasi:
kubectl version --client
Langkah 4: Menjalankan Minikube Start
Sekarang saatnya yang ditunggu-tunggu: menjalankan cluster Kubernetes pertama Anda.
Jalankan perintah berikut. Flag --force mungkin diperlukan jika Anda menjalankan sebagai user non-root, dan Minikube akan menggunakan Docker driver secara default.
minikube start --driver=docker --force
Proses ini akan memakan waktu beberapa menit. Minikube akan:
- Mendownload image VM atau base yang diperlukan.
- Membuat sebuah VM/container tempat cluster Kubernetes berjalan.
- Mendownload dan mengkonfigurasi semua komponen Kubernetes (API Server, Scheduler, etcd, dll).
- Mengkonfigurasi
kubectlpada host Anda untuk terhubung ke cluster ini.
Output yang diharapkan:
😄 minikube v1.32.0 on Ubuntu 22.04 (amd64)
✨ Using the docker driver based on user configuration
📌 Using Docker driver with root privileges
👍 Starting control plane node minikube in cluster minikube
🚜 Pulling base image ...
🔥 Creating docker container (CPUs=2, Memory=3900MB) ...
🐳 Preparing Kubernetes v1.28.3 on Docker 24.0.7 ...
▪ Generating certificates and keys ...
▪ Booting up control plane ...
▪ Configuring RBAC rules ...
🔗 Configuring bridge CNI (Container Networking Interface) ...
🔎 Verifying Kubernetes components...
▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
🌟 Enabled addons: storage-provisioner, default-storageclass
💡 Some dashboard features require the metrics-server addon. To enable this, run:
minikube addons enable metrics-server
🏄 Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default.
Langkah 5: Verifikasi Cluster
Setelah proses selesai, verifikasi bahwa cluster Anda berjalan sehat.
-
Cek status Minikube:
minikube status -
Cek node dalam cluster (Ini adalah bukti utama keberhasilan!):
kubectl get nodesOutputnya harus menunjukkan satu node dalam status
Ready.NAME STATUS ROLES AGE VERSION minikube Ready control-plane 45s v1.28.3 -
Lihat informasi detail cluster:
kubectl cluster-info
Selamat! Anda sekarang telah berhasil menjalankan sebuah cluster Kubernetes yang berfungsi penuh di mesin lokal Anda. Pemahaman bahwa Kubernetes adalah platform yang bisa dijalankan oleh siapa saja di mana saja kini menjadi kenyataan.
Baca Juga: Apakah Kubernetes Pengembangan Menjadi Kunci dalam Aplikasi Modern
Menjalankan Aplikasi Pertama di Minikube: Deployment Nginx
Sekarang kita akan mempraktikkan kekuatan sebenarnya dari Kubernetes. Kita akan melakukan deploy aplikasi web sederhana (Nginx) dan membuatnya dapat diakses.
Konsep Dasar: Pod, Deployment, dan Service
Sebelum membuat file YAML, pahami tiga objek fundamental ini:
- Pod: Unit deployable terkecil dalam Kubernetes. Sebuah Pod adalah wadah untuk satu atau lebih container yang berbagi storage dan network. Pod adalah entity yang ephemeral (sementara).
- Deployment: Sebuah objek yang mengelola sebuah Pod atau kumpulan Pod yang identik. Deployment bertanggung jawab untuk memastikan jumlah replika Pod yang diinginkan tetap berjalan. Ia menangani scaling, rolling updates, dan rollback. Inilah objek yang paling umum digunakan untuk deploy aplikasi stateless.
- Service: Sebuah abstraksi yang mendefinisikan sekumpulan Pod logis dan kebijakan untuk mengaksesnya. Karena Pod bisa datang dan pergi (misalnya saat di-scale), kita butuh alamat IP yang stabil untuk mengakses aplikasi. Service menyediakan IP dan DNS name yang stabil itu.
Langkah 1: Membuat File Deployment
Buat sebuah file bernama nginx-deployment.yaml.
apiVersion: apps/v1 # Versi API untuk objek Deployment kind: Deployment # Jenis objek Kubernetes yang kita buat metadata: name: nginx-deployment # Nama dari Deployment kita labels: app: nginx # Label untuk memudahkan seleksi spec: replicas: 2 # Jumlah replika Pod yang kita inginkan tetap berjalan selector: matchLabels: app: nginx # Deployment ini mengelola Pod dengan label ini template: # Template yang digunakan untuk membuat Pod baru metadata: labels: app: nginx # Label yang diberikan kepada Pod yang dibuat spec: containers: - name: nginx # Nama container di dalam Pod image: nginx:1.25.3 # Image container yang akan dijalankan ports: - containerPort: 80 # Port yang dibuka oleh container
Langkah 2: Membuat File Service
Buat sebuah file bernama nginx-service.yaml.
apiVersion: v1 # Versi API untuk objek Service kind: Service # Jenis objek Kubernetes yang kita buat metadata: name: nginx-service # Nama dari Service kita spec: selector: app: nginx # Service ini menargetkan semua Pod dengan label ini ports: - protocol: TCP port: 80 # Port yang digunakan oleh Service itu sendiri targetPort: 80 # Port pada Pod yang menjadi target type: LoadBalancer # Tipe Service. Minikube akan membuatnya dapat diakses dari luar cluster.
Langkah 3: Terapkan Konfigurasi ke Cluster
Gunakan perintah kubectl apply untuk membuat objek-objek tersebut di cluster Minikube Anda.
kubectl apply -f nginx-deployment.yaml # output: deployment.apps/nginx-deployment created kubectl apply -f nginx-service.yaml # output: service/nginx-service created
Langkah 4: Memverifikasi Apa yang Telah Berjalan
- Cek Deployment:
kubectl get deployments - Cek Pod (Perhatikan ada 2 Pod yang berjalan):
kubectl get pods - Cek Service:
Anda akan melihat output seperti ini. Perhatikankubectl get svcnginx-servicebertipeLoadBalancerdan memilikiEXTERNAL-IPyang masih<pending>. Di cloud, ini akan berupa IP publik, tetapi di Minikube, kita mengaksesnya dengan cara khusus.NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 10m nginx-service LoadBalancer 10.96.226.213 <pending> 80:32417/TCP 25s
Langkah 5: Mengakses Aplikasi Nginx
Minikube memberikan perintah khusus untuk membuat tunnel yang memungkinkan Anda mengakses Service bertipe LoadBalancer dari localhost.
-
Jalankan perintah tunnel di terminal TERPISAH (biarkan tetap running):
minikube tunnelPerintah ini membutuhkan hak akses sudo, jadi Anda akan diminta memasukkan password.
-
Sekarang, cek Service Anda lagi di terminal pertama:
kubectl get svcSekarang Anda akan melihat
EXTERNAL-IPtelah berubah menjadi127.0.0.1atau sebuah IP lokal.NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE nginx-service LoadBalancer 10.96.226.213 127.0.0.1 80:32417/TCP 5m -
Akses Nginx: Buka browser Anda dan kunjungi
http://127.0.0.1atauhttp://localhost. Anda akan melihat halaman default "Welcome to nginx!". Selamat, aplikasi Kubernetes pertama Anda sudah live!
Cara Alternatif (Port Forwarding):
Jika Anda tidak ingin menjalankan minikube tunnel, Anda dapat menggunakan port forwarding langsung ke sebuah Pod.
kubectl port-forward deployment/nginx-deployment 8080:80
Kemudian akses http://localhost:8080.
Eksplorasi Fitur Minikube dan Kubernetes Lainnya
Minikube datang dengan addons yang dapat diaktifkan untuk mensimulasikan environment yang lebih lengkap.
1. Mengaktifkan Dashboard Kubernetes
Dashboard adalah UI web yang powerful untuk mengelola cluster Anda.
minikube dashboard
Perintah ini akan mengaktifkan addon dashboard dan secara otomatis membuka browser ke alamat dashboard tersebut. Dari sini, Anda bisa melihat dan mengelola semua resource Anda secara visual.
2. Menyimpan Data dengan Persistent Volumes
Aplikasi stateless seperti Nginx tidak menyimpan data, tetapi bagaimana dengan database? Kubernetes menggunakan PersistentVolume (PV) dan PersistentVolumeClaim (PVC). Minikube sudah secara otomatis menyediakan sebuah storage class standard.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi
Anda dapat menerapkan PVC ini (kubectl apply -f pvc.yaml) dan kemudian menggunakannya di dalam spec container Deployment Anda di bagian volumeMounts.
Troubleshooting dan Tips Umum
- Minikube Start Hang/Error: Pastikan virtualisasi (VT-x/AMD-v) diaktifkan di BIOS Anda. Pastikan juga Docker/Podman berjalan normal.
- Image Tidak Bisa Dipull: Coba jalankan
eval $(minikube docker-env)dan build image Docker langsung di lingkungan Minikube, atau gunakan registry publik yang dapat diakses. - Reset Semuanya: Jika cluster bermasalah, Anda bisa menghapus dan memulai dari awal:
minikube delete minikube start - Kurang Resource: Jika aplikasi tidak bisa dijadwalkan, error
Insufficient cpuatauInsufficient memory, Anda bisa memberi resource lebih pada Minikube:minikube start --driver=docker --cpus=4 --memory=8192 --disk-size=50g
Kesimpulan
Dari pembahasan yang panjang dan mendalam ini, kita dapat menyimpulkan beberapa hal krusial. Pertama, Kubernetes adalah platform orchestration container yang powerful untuk mengelola aplikasi modern yang kompleks, scalable, dan resilient. Kedua, Kubernetes adalah sebuah tools yang tidak lagi eksklusif untuk lingkungan cloud yang mahal, berkat adanya tools seperti Minikube yang memungkinkan setiap orang untuk belajar dan bereksperimen secara gratis di lingkungan lokal mereka. Ketiga, pemahaman mendalam bahwa Kubernetes adalah investasi berharga untuk karir di bidang teknologi cloud computing, DevOps, dan software development. Minikube telah membuka pintu yang lebar bagi siapapun yang ingin memulai perjalanan mereka. Dengan mengikuti tutorial ini, Anda telah membangun fondasi praktis yang kuat. Langkah selanjutnya adalah menggali lebih dalam: mencoba deploy aplikasi multi-tier (frontend, backend, database), mencoba fitur scaling (kubectl scale), melakukan rolling update, dan menjelajahi konsep lain seperti ConfigMaps dan Secrets.
Perjalanan memahami Kubernetes adalah langkah yang fantastis. Namun, kekuatan sebenarnya dari Kubernetes baru terasa ketika Anda memiliki aplikasi lengkap untuk di-deploy. Jika Anda ingin menguasai kemampuan untuk membuat website dan aplikasi dari nol hingga siap produksi, mulai dari Frontend (React, Vue), Backend (Node.js, Express), Database, hingga deployment-nya, ini saatnya untuk mengambil langkah berikutnya. CodePolitan menyediakan KelasFullstack yang komprehensif. Kelas online ini dirancang untuk membawa Anda dari pemula hingga siap kerja, dengan kurikulum yang mengikuti kebutuhan industri. Anda tidak hanya akan belajar coding, tetapi juga bagaimana mengemas aplikasi Anda menggunakan Docker dan mendeploy-nya dengan Kubernetes ke cloud.
Referensi dan Bacaan Lebih Lanjut:
What do you think?
Reactions





