Apa itu Minikube
Minikube adalah sebuah alat sumber terbuka yang memungkinkan para pengembang untuk menjalankan klaster Kubernetes dengan satu node pada mesin lokal mereka. Minikube menyediakan cara yang disederhanakan bagi para pengembang untuk mempelajari Kubernetes, mengembangkan dan menguji aplikasi, serta bereksperimen dengan fitur-fitur baru dalam lingkungan terisolasi tanpa memerlukan resource perangkat keras yang besar.
Minikube menjalankan klaster satu node di dalam mesin virtual (VM) pada komputer pribadi Anda. VM ini mengandung semua komponen Kubernetes yang diperlukan seperti API server, scheduler, etcd, dan lainnya. Selain itu, Minikube mendukung berbagai fitur Kubernetes seperti DNS, NodePorts, ConfigMaps, dan Secrets.
Salah satu keuntungan dari Minikube adalah kemudahannya penggunaannya. Dengan beberapa perintah sederhana, Anda dapat mengatur dan memulai klaster Kubernetes, mendeploy aplikasi, dan mengelola resource. Minikube juga terintegrasi dengan baik dengan alat-alat Kubernetes umum seperti kubectl untuk mengelola resource dan Helm untuk mendeploy aplikasi kompleks.
Fitur lain yang mencolok adalah kemampuan Minikube untuk meniru lingkungan yang mirip dengan produksi di mesin lokal Anda. Melalui penggunaan add-on dan konfigurasi, Anda dapat meniru pengaturan dan batasan produksi, yang sangat berguna untuk pengujian dan validasi aplikasi sebelum mereka dideploy dalam skenario dunia nyata.
Instalasi Minikube
Jika Anda menggunakan MacOS, Anda dapat menginstal Minikube dengan menjalankan perintah berikut:
$ brew install minikube
$ brew install kubectl
Jika Anda menggunakan sistem operasi lain, lihat dokumentasi resmi berikut untuk panduan instalasi:
Perintah Dasar untuk Berinteraksi dengan Minikube
Setelah Minikube terinstal, Anda dapat mulai berinteraksi dengannya menggunakan berbagai perintah:
minikube start
Memulai mesin virtual dan mengatur klaster Kubernetes satu node di dalamnya.
$ minikube start
š minikube v1.30.1 on Darwin 13.0 (arm64)
āØ Automatically selected the docker driver
š Using Docker Desktop driver with root privileges
š Starting control plane node minikube in cluster minikube
š Pulling base image ...
š¾ Downloading Kubernetes v1.26.3 preload ...
> preloaded-images-k8s-v18-v1...: 330.52 MiB / 330.52 MiB 100.00% 3.50 Mi
> gcr.io/k8s-minikube/kicbase...: 336.39 MiB / 336.39 MiB 100.00% 2.23 Mi
š„ Creating docker container (CPUs=2, Memory=2200MB) ...
š§Æ Docker is nearly out of disk space, which may cause deployments to fail! (87% of capacity). You can pass '--force' to skip this check.
š” Suggestion:
Try one or more of the following to free up space on the device:
1. Run "docker system prune" to remove unused Docker data (optionally with "-a")
2. Increase the storage allocated to Docker for Desktop by clicking on:
Docker icon > Preferences > Resources > Disk Image Size
3. Run "minikube ssh -- docker system prune" if using the Docker container runtime
šæ Related issue: https://github.com/kubernetes/minikube/issues/9024
š³ Preparing Kubernetes v1.26.3 on Docker 23.0.2 ...
āŖ Generating certificates and keys ...
āŖ Booting up control plane ...
āŖ Configuring RBAC rules ...
š Configuring bridge CNI (Container Networking Interface) ...
āŖ Using image gcr.io/k8s-minikube/storage-provisioner:v5
š Verifying Kubernetes components...
š Enabled addons: storage-provisioner, default-storageclass
š Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
minikube status
Menampilkan status mesin Minikube dan status Kubernetes dan kubeconfig-nya.
$ minikube
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
minikube dashboard
Perintah ini membuka dashboard Kubernetes di peramban web default Anda, memungkinkan Anda untuk berinteraksi dengan klaster secara grafis.
$ minikube dashboard
š Enabling dashboard ...
āŖ Using image docker.io/kubernetesui/dashboard:v2.7.0
āŖ Using image docker.io/kubernetesui/metrics-scraper:v1.0.8
š” Some dashboard features require the metrics-server addon. To enable all features please run:
minikube addons enable metrics-server
š¤ Verifying dashboard health ...
š Launching proxy ...
š¤ Verifying proxy health ...
š Opening http://127.0.0.1:51471/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser...
minikube addons list
Menampilkan daftar semua add-on yang tersedia yang dapat Anda aktifkan atau nonaktifkan di klaster Anda.
$ minikube addons list
|-----------------------------|----------|--------------|--------------------------------|
| ADDON NAME | PROFILE | STATUS | MAINTAINER |
|-----------------------------|----------|--------------|--------------------------------|
| ambassador | minikube | disabled | 3rd party (Ambassador) |
| auto-pause | minikube | disabled | Google |
| cloud-spanner | minikube | disabled | Google |
| csi-hostpath-driver | minikube | disabled | Kubernetes |
| dashboard | minikube | enabled ā
| Kubernetes |
| default-storageclass | minikube | enabled ā
| Kubernetes |
| efk | minikube | disabled | 3rd party (Elastic) |
| freshpod | minikube | disabled | Google |
| gcp-auth | minikube | disabled | Google |
| gvisor | minikube | disabled | Google |
| headlamp | minikube | disabled | 3rd party (kinvolk.io) |
| helm-tiller | minikube | disabled | 3rd party (Helm) |
| inaccel | minikube | disabled | 3rd party (InAccel |
| | | | [info@inaccel.com]) |
| ingress | minikube | disabled | Kubernetes |
| ingress-dns | minikube | disabled | Google |
| istio | minikube | disabled | 3rd party (Istio) |
| istio-provisioner | minikube | disabled | 3rd party (Istio) |
| kong | minikube | disabled | 3rd party (Kong HQ) |
| kubevirt | minikube | disabled | 3rd party (KubeVirt) |
| logviewer | minikube | disabled | 3rd party (unknown) |
| metallb | minikube | disabled | 3rd party (MetalLB) |
| metrics-server | minikube | disabled | Kubernetes |
| nvidia-driver-installer | minikube | disabled | Google |
| nvidia-gpu-device-plugin | minikube | disabled | 3rd party (Nvidia) |
| olm | minikube | disabled | 3rd party (Operator Framework) |
| pod-security-policy | minikube | disabled | 3rd party (unknown) |
| portainer | minikube | disabled | 3rd party (Portainer.io) |
| registry | minikube | disabled | Google |
| registry-aliases | minikube | disabled | 3rd party (unknown) |
| registry-creds | minikube | disabled | 3rd party (UPMC Enterprises) |
| storage-provisioner | minikube | enabled ā
| Google |
| storage-provisioner-gluster | minikube | disabled | 3rd party (Gluster) |
| volumesnapshots | minikube | disabled | Kubernetes |
|-----------------------------|----------|--------------|--------------------------------|
kubectl cluster-info
Mengambil informasi tentang klaster.
$ kubectl cluster-info
Kubernetes control plane is running at https://127.0.0.1:49938
CoreDNS is running at https://127.0.0.1:49938/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
kubectl get componentstatus
Memeriksa status klaster.
$ kubectl get componentstatus
NAME STATUS MESSAGE ERROR
controller-manager Healthy ok
etcd-0 Healthy {"health":"true","reason":""}
scheduler Healthy ok
kubectl get nodes
Menampilkan daftar node klaster.
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane 13m v1.26.3
minikube stop
Perintah ini menghentikan VM Minikube yang sedang berjalan tetapi mempertahankan statusnya untuk dilanjutkan nanti.
$ minikube stop
ā Stopping node "minikube" ...
š Powering off "minikube" via SSH ...
š 1 node stopped.
minikube delete
Menghapus sepenuhnya VM Minikube dan semua status terkait yang terkait.
$ minikube delete
š„ Deleting "minikube" in docker ...
š„ Deleting container "minikube" ...
š„ Removing /Users/ryuseikakujo/.minikube/machines/minikube ...
š Removed all traces of the "minikube" cluster.
Referensi