Ako nainštalovať Minikube na Ubuntu 24.04|22.04|20.04


Ste pripravení objaviť silu Kubernetes? V tomto krok za krokom návode vám ukážeme, ako nainštalovať Minikube na systéme Ubuntu Linux s použitím základného hypervízora Libvirt (KVM) alebo VirtualBox. Začneme základným úvodom do Minikube a potom prejdeme k samotnej inštalácii Minikube a tomu, ako ho začať používať.

Minikube je open source nástroj, ktorý bol vyvinutý, aby umožnil vývojárom a systémovým administrátorom spustiť jeden klaster Kubernetes na ich lokálnom počítači. Minikube spúšťa jednouchylý uzlový Kubernetes klaster lokálne s malou spotrebou zdrojov. To je ideálne na vývojové testy a účely POC.

Konečný príručka k Ubuntu Desktop

Ovládnite Ubuntu ako profesionál – od krásnej úpravy plochy až po výkonnú automatizáciu v termináli. Perfektné pre vývojárov, administrátorov systémov a pokročilých používateľov, ktorí chcú úplnú kontrolu nad svojim pracovným prostredím.

Pre CentOS si pozrite: Inštalácia Minikube na CentOS 7/8 s KVM.

Stručne povedané, Minikube balíkuje a konfiguruje Linuxový virtuálny stroj, potom do neho nainštaluje Docker a všetky komponenty Kubernetes.

Minikube podporuje funkcie Kubernetes, ako sú:

  • DNS
  • NodePorts
  • ConfigMaps a Secrets
  • Informačné panely
  • Runtime kontajnera: Docker, CRI-O a containerd
  • Povolenie CNI (Container Network Interface)
  • Vstup
  • Trvalé zväzky typu hostPath

Začnime s inštaláciou Minikube na Ubuntu Linux.

Nainštalujte hypervízor KVM alebo VirtualBox

Spustite nasledujúce príkazy na aktualizáciu všetkých systémových balíkov na najnovšiu verziu:

sudo apt update && sudo apt upgrade -y

Ak je po aktualizácii potrebné reštartovanie, vykonajte proces.

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

Pre používateľov VirtualBoxu nainštalujte VirtualBox pomocou:

  • Nainštalujte VirtualBox na Ubuntu

Používatelia KVM hypervízora

Pre tých, ktorí majú záujem používať hypervízor KVM, skontrolujte náš návod, ako nainštalovať KVM na CentOS/Ubuntu/Debian

Potom postupujte podľa návodu Ako spustiť Minikube na KVM.

Stiahnite a nakonfigurujte Minikube na Ubuntu

Musíte si stiahnuť spustiteľný súbor minikube. Súbor umiestnim do adresára /usr/local/bin, pretože je vnútri `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

Potvrdiť nainštalovanú verziu

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

Potrebujeme kubectl, čo je nástroj príkazového riadku používaný na nasadzovanie a správu aplikácií na 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

Nastavte binárny súbor kubectl ako spustiteľný.

chmod +x ./kubectl

Presuňte binárny súbor do vašej PATH:

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

Skontrolovať verziu:

$ 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"
}

Spúšťanie minikube na Ubuntu

Keď sú komponenty nainštalované, môžete spustiť minikube. Obraz VM sa stiahne a nakonfiguruje pre jednonodový klastra Kubernetes.

  • Minikube s ovládačom KVM
minikube start --driver=kvm2
  • S ovládačom VirtualBox
minikube start --driver=virtualbox

Príklad výstupu z vykonávania príkazov.

...................................
* 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

Počkajte, kým sa stiahne a nainštaluje, potom potvrďte, že všetko funguje správne.

Na nastavenie predvoleného ovládača Minikube použite:

# VirtualBox
minikube config set driver virtualbox

# KVM
minikube config set driver kvm

Základné operácie Minikube

Ak chcete skontrolovať stav klastru, spustite:

$ 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'.

Všimnite si, že konfiguračný súbor Minikube sa nachádza v ~/.minikube/machines/minikube/config.json

Na zobrazenie konfigurácie použite:

$ 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

Na kontrolu bežiacich uzlov:

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

Prístup k VM minikube pomocou SSH:

$ minikube ssh

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

$ sudo su -

Ak chcete zastaviť bežiaci lokálny klaster Kubernetes, spustite:

$ minikube stop

Na odstránenie lokálneho Kubernetes klastra použite:

$ minikube delete

Kubernetes obsahuje webovú nástennú konzolu, ktorá

$ 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)       |
|-----------------------------|----------|--------------|--------------------------------|

Na aktiváciu modulu použite príkaz:

minikube addons enable <module>

Príklad :

$ 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

Ak chcete otvoriť priamo vo vašom predvolenom prehliadači, použite:

$ minikube dashboard

Získať URL adresu panelu

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

Pristúpte k ovládaciemu panelu Kubernetes otvorením URL vo vašom obľúbenom prehliadači. Pre ďalšie čítanie skontrolujte:

  • Séria Hello Minikube: https://kubernetes.io/docs/tutorials/stateless-application/hello-minikube/
  • Príručky Minikube pre začiatočníkov dostupné na: https://kubernetes.io/docs/getting-started-guides/minikube/

Viac príručiek o Kubernetese:

  • Plánovanie Podov na uzloch riadiacej roviny (Master) Kubernetes
  • Pridanie nového pracovného uzla Kubernetes do existujúceho klastra
  • Nasadenie Kubernetes klastera na CentOS pomocou Ansible a Calico CNI
  • Nasadiť Metrics Server do Kubernetes klastru
  • Ručne stiahnuť kontajnerové obrazy používané Kubernetes kubeadm
  • Inštalácia a používanie Helm 3 na Kubernetes klastri