Quick Start: minikube
Minikube adalah alat yang memungkinkan Anda untuk menjalankan Kubernetes secara lokal. Minikube dirancang untuk memudahkan pengembang dalam membuat dan menguji aplikasi Kubernetes di lingkungan lokal mereka sebelum memindahkannya ke lingkungan produksi.
Selain minikube, terdapat juga kind. Bedanya kind memiliki depedensi dengan Docker untuk dapat menjalankannya. Secara garis besar minikube dilakukan bila ingin mengetes suatu aplikasi Kubernetes dengan lingkungan yang mirip produksi sedangkan kind lebih berfokus pada lingkungan development yang membutuhkan perubahan cepat seperti dalam kasus CI/CD.
Persyaratan minimal
- 2 CPUs or more
- 2GB of free memory
- 20GB of free disk space
- Internet connection
- Container or virtual machine manager, such as: Docker, QEMU, Hyperkit, Hyper-V, KVM, Parallels, Podman, VirtualBox, or VMware Fusion/Workstation
Instalasi
Disini saya menggunakan RockyLinux dan arsitektur ARM64.
Unduh dan pasang minikube:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-latest.aarch64.rpm
sudo rpm -Uvh minikube-latest.aarch64.rpm
Lihat link untuk opsi lainnya.
minikube juga membutuhkan driver dapat dijalankan. Kita dapat menggunakan Docker, QEMU, Hyperkit, Hyper-V, KVM, Parallels, Podman, VirtualBox, atau VMware Fusion/Workstation. Kali ini kita akan menggunakan Podman sebagai alternatif dari Docker.
sudo dnf install -y podman
Jalankan minikube
minikube start
minikube v1.33.1 on Rocky 9.4 (arm64)
✨ Automatically selected the podman driver. Other choices: none, ssh
📌 Using Podman driver with root privileges
👍 Starting "minikube" primary control-plane node in "minikube" cluster
🚜 Pulling base image v0.0.44 ...
💾 Downloading Kubernetes v1.30.0 preload ...
> preloaded-images-k8s-v18-v1...: 319.81 MiB / 319.81 MiB 100.00% 21.44 M
> gcr.io/k8s-minikube/kicbase...: 435.76 MiB / 435.76 MiB 100.00% 18.99 M
🔥 Creating podman container (CPUs=2, Memory=2200MB) ...
🐳 Preparing Kubernetes v1.30.0 on Docker 26.1.1 ...
▪ 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
💡 kubectl not found. If you need it, try: 'minikube kubectl -- get pods -A'
🏄 Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
Unduh juga kubectl untuk mengatur cluster minikube nantinya
minikube kubectl -- get po -A
> kubectl.sha256: 64 B / 64 B [-------------------------] 100.00% ? p/s 0s
> kubectl: 47.63 MiB / 47.63 MiB [-------------] 100.00% 6.80 MiB p/s 7.2s
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-7db6d8ff4d-sstwv 1/1 Running 0 28s
kube-system etcd-minikube 1/1 Running 0 42s
kube-system kube-apiserver-minikube 1/1 Running 0 42s
kube-system kube-controller-manager-minikube 1/1 Running 0 42s
kube-system kube-proxy-gj92m 1/1 Running 0 29s
kube-system kube-scheduler-minikube 1/1 Running 0 43s
kube-system storage-provisioner 1/1 Running 0 41s
Dari kubectl kita dapat melihat cluster minikube sudah berhasil kita buat
Tambahkan alias supaya lebih mudah
alias kubectl="minikube kubectl --"
Sekarang kita coba deploy service dengan tipe node port
kubectl create deployment hello-minikube --image=kicbase/echo-server:1.0
kubectl expose deployment hello-minikube --type=NodePort --port=8080
Tunggu sebentar, hingga service ready
kubectl get services hello-minikube
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-minikube NodePort 10.103.170.158 <none> 8080:30748/TCP 56s
Anda bisa jalankan command ini agar minikube membuka halaman service secara otomatis di browser
minikube service hello-minikube
Alternatifnya gunakan port forwarding secara manual lalu akses melalui http://localhost:7080
kubectl port-forward service/hello-minikube 7080:8080
Berikut hasilnya