Cara Menginstal Minikube di Ubuntu 24.04|22.04|20.04


Apakah Anda siap untuk menemukan kekuatan Kubernetes? Dalam tutorial langkah demi langkah ini, kami akan menunjukkan cara menginstal Minikube di sistem Linux Ubuntu dengan hypervisor dasar berupa Libvirt (KVM) atau VirtualBox. Kami akan memulai dengan pengenalan dasar tentang Minikube, lalu masuk ke instalasi Minikube yang sebenarnya dan bagaimana cara mulai menggunakannya.

Minikube adalah alat sumber terbuka yang dikembangkan untuk memungkinkan pengembang dan administrator sistem menjalankan satu klaster Kubernetes di mesin lokal mereka. Minikube memulai klaster Kubernetes dengan satu node secara lokal dengan penggunaan sumber daya yang kecil. Ini ideal untuk pengujian pengembangan dan tujuan POC.

Panduan Lengkap Desktop Ubuntu

Kuasai Ubuntu seperti seorang ahli - mulai dari kustomisasi desktop yang indah hingga otomatisasi terminal yang kuat. Sempurna untuk pengembang, admin sistem, dan pengguna mahir yang ingin kendali penuh atas ruang kerja mereka.

Untuk CentOS, lihat: Menginstal Minikube di CentOS 7/8 dengan KVM.

Singkatnya, Minikube mengemas dan mengonfigurasi VM Linux, kemudian menginstal Docker dan semua komponen Kubernetes di dalamnya.

Minikube mendukung fitur-fitur Kubernetes seperti:

  • DNS
  • NodePorts
  • ConfigMaps dan Secrets
  • Dasbor
  • Runtime Kontainer: Docker, CRI-O, dan containerd
  • Mengaktifkan CNI (Container Network Interface)
  • Masuk
  • PersistentVolumes tipe hostPath

Mari kita mulai menginstal Minikube di Ubuntu Linux.

Pasang Hypervisor KVM atau VirtualBox

Jalankan perintah berikut untuk memperbarui semua paket sistem ke versi terbaru:

sudo apt update && sudo apt upgrade -y

Jika diperlukan restart setelah peningkatan, lakukan proses tersebut.

[ -f /var/run/reboot-required ] && sudo reboot -f

Bagi pengguna VirtualBox, pasang VirtualBox menggunakan:

  • Pasang VirtualBox di Ubuntu

Pengguna Hypervisor KVM

Bagi yang tertarik menggunakan hypervisor KVM, lihat panduan kami tentang cara Menginstal KVM di CentOS/Ubuntu/Debian

Kemudian ikuti Cara menjalankan Minikube di KVM sebagai gantinya.

Unduh dan Konfigurasi Minikube di Ubuntu

Anda perlu mengunduh berkas biner minikube. Saya akan meletakkan berkas biner tersebut di direktori /usr/local/bin karena berada di dalam ` PATH.

wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
chmod +x minikube-linux-amd64
sudo mv minikube-linux-amd64 /usr/local/bin/minikube

Konfirmasi versi yang terpasang

$ minikube version
minikube version: v1.33.1
commit: 5883c09216182566a63dff4c326a6fc9ed2982ff

Kita membutuhkan kubectl yang merupakan alat baris perintah yang digunakan untuk menerapkan dan mengelola aplikasi di Kubernetes:

curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl

Buat file biner kubectl dapat dieksekusi.

chmod +x ./kubectl

Pindahkan berkas biner ke PATH Anda:

sudo mv ./kubectl /usr/local/bin/kubectl

Periksa versi:

$ kubectl version -o json  --client
{
  "clientVersion": {
    "major": "1",
    "minor": "30",
    "gitVersion": "v1.30.2",
    "gitCommit": "39683505b630ff2121012f3c5b16215a1449d5ed",
    "gitTreeState": "clean",
    "buildDate": "2024-06-11T20:29:44Z",
    "goVersion": "go1.22.4",
    "compiler": "gc",
    "platform": "linux/amd64"
  },
  "kustomizeVersion": "v5.0.4-0.20230601165947-6ce0bf390ce3"
}

Memulai minikube di Ubuntu

Sekarang komponen sudah terpasang, Anda bisa memulai minikube. Gambar VM akan diunduh dan dikonfigurasi untuk kluster single node Kubernetes.

  • Minikube dengan driver KVM
minikube start --driver=kvm2
  • Dengan driver VirtualBox
minikube start --driver=virtualbox

Contoh hasil keluaran dari perintah eksekusi.

...................................
* Using the kvm2 driver based on user configuration
*   https://minikube.sigs.k8s.io/docs/reference/drivers/none/
* Downloading driver docker-machine-driver-kvm2:
    > docker-machine-driver-kvm2-...:  65 B / 65 B [---------] 100.00% ? p/s 0s
    > docker-machine-driver-kvm2-...:  13.46 MiB / 13.46 MiB  100.00% ? p/s 100
* Downloading VM boot image ...
    > minikube-v1.33.1-amd64.iso....:  65 B / 65 B [---------] 100.00% ? p/s 0s
    > minikube-v1.33.1-amd64.iso:  314.16 MiB / 314.16 MiB  100.00% 37.68 MiB p
* Starting "minikube" primary control-plane node in "minikube" cluster
* Downloading Kubernetes v1.30.0 preload ...
    > preloaded-images-k8s-v18-v1...:  342.90 MiB / 342.90 MiB  100.00% 38.75 M
* Creating kvm2 VM (CPUs=2, Memory=2200MB, Disk=20000MB) ...
* Preparing Kubernetes v1.30.0 on Docker 26.0.2 ...
  - 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: default-storageclass, storage-provisioner
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

Tunggu hingga proses unduh dan pengaturan selesai, kemudian pastikan semuanya berjalan dengan baik.

Untuk mengatur driver Minikube default, gunakan:

# VirtualBox
minikube config set driver virtualbox

# KVM
minikube config set driver kvm

Operasi Dasar Minikube

Untuk memeriksa status klaster, jalankan:

$ kubectl cluster-info

Kubernetes master is running at https://192.168.39.117:8443
KubeDNS is running at https://192.168.39.117:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

Perlu dicatat bahwa file konfigurasi Minikube terletak di ~/.minikube/machines/minikube/config.json

Untuk melihat konfigurasi, gunakan:

$ kubectl config view
apiVersion: v1
clusters:
- cluster:
    certificate-authority: /root/.minikube/ca.crt
    extensions:
    - extension:
        last-update: Sat, 13 Jul 2024 15:29:47 UTC
        provider: minikube.sigs.k8s.io
        version: v1.33.1
      name: cluster_info
    server: https://192.168.39.249:8443
  name: minikube
contexts:
- context:
    cluster: minikube
    extensions:
    - extension:
        last-update: Sat, 13 Jul 2024 15:29:47 UTC
        provider: minikube.sigs.k8s.io
        version: v1.33.1
      name: context_info
    namespace: default
    user: minikube
  name: minikube
current-context: minikube
kind: Config
preferences: {}
users:
- name: minikube
  user:
    client-certificate: /root/.minikube/profiles/minikube/client.crt
    client-key: /root/.minikube/profiles/minikube/client.key

Untuk memeriksa node yang sedang berjalan:

$ kubectl get nodes
NAME       STATUS   ROLES           AGE     VERSION
minikube   Ready    control-plane   5m29s   v1.30.0

Akses VM minikube menggunakan ssh:

$ minikube ssh

                         _             _            
            _         _ ( )           ( )           
  ___ ___  (_)  ___  (_)| |/')  _   _ | |_      __  
/' _ ` _ `\| |/' _ `\| || , <  ( ) ( )| '_`\  /'__`\
| ( ) ( ) || || ( ) || || |\`\ | (_) || |_) )(  ___/
(_) (_) (_)(_)(_) (_)(_)(_) (_)`\___/'(_,__/'`\____)

$ sudo su -

Untuk menghentikan cluster Kubernetes lokal yang sedang berjalan, jalankan:

$ minikube stop

Untuk menghapus klaster Kubernetes lokal, gunakan:

$ minikube delete

Kubernetes dilengkapi dengan dasbor web yang

$ minikube addons list
...
|-----------------------------|----------|--------------|--------------------------------|
|         ADDON NAME          | PROFILE  |    STATUS    |           MAINTAINER           |
|-----------------------------|----------|--------------|--------------------------------|
| ambassador                  | minikube | disabled     | 3rd party (Ambassador)         |
| auto-pause                  | minikube | disabled     | minikube                       |
| cloud-spanner               | minikube | disabled     | Google                         |
| csi-hostpath-driver         | minikube | disabled     | Kubernetes                     |
| dashboard                   | minikube | disabled     | Kubernetes                     |
| default-storageclass        | minikube | enabled ✅   | Kubernetes                     |
| efk                         | minikube | disabled     | 3rd party (Elastic)            |
| freshpod                    | minikube | disabled     | Google                         |
| gcp-auth                    | minikube | disabled     | Google                         |
| gvisor                      | minikube | disabled     | minikube                       |
| headlamp                    | minikube | disabled     | 3rd party (kinvolk.io)         |
| helm-tiller                 | minikube | disabled     | 3rd party (Helm)               |
| inaccel                     | minikube | disabled     | 3rd party (InAccel             |
|                             |          |              | [[email ])            |
| ingress                     | minikube | disabled     | Kubernetes                     |
| ingress-dns                 | minikube | disabled     | minikube                       |
| inspektor-gadget            | minikube | disabled     | 3rd party                      |
|                             |          |              | (inspektor-gadget.io)          |
| istio                       | minikube | disabled     | 3rd party (Istio)              |
| istio-provisioner           | minikube | disabled     | 3rd party (Istio)              |
| kong                        | minikube | disabled     | 3rd party (Kong HQ)            |
| kubeflow                    | minikube | disabled     | 3rd party                      |
| kubevirt                    | minikube | disabled     | 3rd party (KubeVirt)           |
| logviewer                   | minikube | disabled     | 3rd party (unknown)            |
| metallb                     | minikube | disabled     | 3rd party (MetalLB)            |
| metrics-server              | minikube | disabled     | Kubernetes                     |
| nvidia-device-plugin        | minikube | disabled     | 3rd party (NVIDIA)             |
| nvidia-driver-installer     | minikube | disabled     | 3rd party (Nvidia)             |
| 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     | minikube                       |
| registry-aliases            | minikube | disabled     | 3rd party (unknown)            |
| registry-creds              | minikube | disabled     | 3rd party (UPMC Enterprises)   |
| storage-provisioner         | minikube | enabled ✅   | minikube                       |
| storage-provisioner-gluster | minikube | disabled     | 3rd party (Gluster)            |
| storage-provisioner-rancher | minikube | disabled     | 3rd party (Rancher)            |
| volumesnapshots             | minikube | disabled     | Kubernetes                     |
| yakd                        | minikube | disabled     | 3rd party (marcnuri.com)       |
|-----------------------------|----------|--------------|--------------------------------|

Untuk mengaktifkan modul, gunakan perintah:

minikube addons enable <module>

Contoh :

$ minikube addons enable portainer
! portainer is a 3rd party addon and is not maintained or verified by minikube maintainers, enable at your own risk.
! portainer does not currently have an associated maintainer.
  - Using image docker.io/portainer/portainer-ce:2.15.1
* The 'portainer' addon is enabled

Untuk membuka langsung di browser default Anda, gunakan:

$ minikube dashboard

Untuk mendapatkan URL dasbor

$ minikube dashboard --url
http://192.168.39.117:30000

Akses Dashboard Kubernetes dengan membuka URL di browser favorit Anda. Untuk bacaan lebih lanjut, periksa:

  • Hello Minikube Series: https://kubernetes.io/docs/tutorials/stateless-application/hello-minikube/
  • Panduan Minikube untuk pemula tersedia di: https://kubernetes.io/docs/getting-started-guides/minikube/

Panduan lebih lanjut tentang Kubernetes:

  • Jadwalkan Pod di Node Control Plane (Master) Kubernetes
  • Menambahkan Worker Node Kubernetes baru ke Cluster yang sudah ada
  • Menyebarkan Klaster Kubernetes di CentOS dengan Ansible dan Calico CNI
  • Menerapkan Metrics Server ke Klaster Kubernetes
  • Tarik gambar kontainer yang digunakan oleh Kubernetes kubeadm secara manual
  • Pasang dan Gunakan Helm 3 di Cluster Kubernetes