Recherche sur le site Web

Comment installer Minikube sur Ubuntu 24.04|22.04|20.04


Êtes-vous prêt à découvrir la puissance de Kubernetes ? Dans ce tutoriel étape par étape, nous vous montrons comment installer Minikube sur un système Ubuntu Linux avec comme hyperviseur de base Libvirt (KVM) ou VirtualBox. Nous commencerons par une introduction de base à Minikube, puis nous passerons à l'installation réelle de Minikube et à la manière de commencer à l'utiliser.

Minikube est un outil open source qui a été développé pour permettre aux développeurs et aux administrateurs système d'exécuter un seul cluster Kubernetes sur leur machine locale. Minikube démarre un cluster Kubernetes à nœud unique localement avec une faible utilisation des ressources. C'est idéal pour les tests de développement et les preuves de concept (POC).

Le guide ultime du bureau Ubuntu

Maîtrisez Ubuntu comme un pro – de la personnalisation élégante du bureau à l'automatisation puissante du terminal. Parfait pour les développeurs, les administrateurs systèmes et les utilisateurs avancés qui veulent un contrôle total de leur espace de travail.

Pour CentOS, consultez : Installer Minikube sur CentOS 7/8 avec KVM.

En résumé, Minikube regroupe et configure une machine virtuelle Linux, puis installe Docker et tous les composants Kubernetes dedans.

Minikube prend en charge des fonctionnalités de Kubernetes telles que :

  • DNS
  • NodePorts
  • ConfigMaps et Secrets
  • Tableaux de bord
  • Environnement d'exécution des conteneurs : Docker, CRI-O et containerd
  • Activation de CNI (Interface réseau de conteneur)
  • Ingress
  • Volumes persistants de type hostPath

Commençons à installer Minikube sur Ubuntu Linux.

Installer l'hyperviseur KVM ou VirtualBox

Exécutez les commandes suivantes pour mettre à jour tous les paquets du système vers la version la plus récente :

sudo apt update && sudo apt upgrade -y

Si un redémarrage est requis après la mise à niveau, alors effectuez le processus.

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

Pour les utilisateurs de VirtualBox, installez VirtualBox en utilisant :

  • Installer VirtualBox sur Ubuntu

Utilisateurs de l'hyperviseur KVM

Pour ceux qui souhaitent utiliser l'hyperviseur KVM, consultez notre guide sur comment installer KVM sur CentOS/Ubuntu/Debian

Puis suivez plutôt Comment exécuter Minikube sur KVM.

Télécharger et configurer Minikube sur Ubuntu

Vous devez télécharger le binaire de minikube. Je placerai le binaire dans le répertoire /usr/local/bin puisqu'il se trouve dans ` 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

Confirmer la version installée

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

Nous avons besoin de kubectl, qui est un outil en ligne de commande utilisé pour déployer et gérer des applications sur 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

Rendez le binaire kubectl exécutable.

chmod +x ./kubectl

Déplacez le binaire dans votre PATH :

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

Vérifier la version :

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

Démarrage de minikube sur Ubuntu

Maintenant que les composants sont installés, vous pouvez démarrer minikube. L'image de la machine virtuelle sera téléchargée et configurée pour un cluster Kubernetes à nœud unique.

  • Minikube avec le pilote KVM
minikube start --driver=kvm2
  • Avec le pilote VirtualBox
minikube start --driver=virtualbox

Exemple de sortie des commandes d'exécution.

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

Attendez la fin du téléchargement et de l'installation, puis confirmez que tout fonctionne correctement.

Pour définir le pilote Minikube par défaut, utilisez :

# VirtualBox
minikube config set driver virtualbox

# KVM
minikube config set driver kvm

Opérations de base de Minikube

Pour vérifier l'état du cluster, exécutez :

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

Notez que le fichier de configuration de Minikube se trouve sous ~/.minikube/machines/minikube/config.json

Pour voir la configuration, utilisez :

$ 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

Pour vérifier les nœuds en cours d'exécution :

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

Accéder à la VM minikube en utilisant ssh :

$ minikube ssh

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

$ sudo su -

Pour arrêter un cluster Kubernetes local en cours d’exécution, exécutez :

$ minikube stop

Pour supprimer un cluster Kubernetes local, utilisez :

$ minikube delete

Kubernetes est livré avec un tableau de bord web qui

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

Pour activer un module, utilisez la commande :

minikube addons enable <module>

Exemple :

$ 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

Pour ouvrir directement dans votre navigateur par défaut, utilisez :

$ minikube dashboard

Pour obtenir l'URL du tableau de bord

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

Accédez au tableau de bord Kubernetes en ouvrant l'URL dans votre navigateur préféré. Pour en savoir plus, consultez :

  • Série Hello Minikube : https://kubernetes.io/docs/tutorials/stateless-application/hello-minikube/
  • Guides Minikube pour débutants disponibles sur : https://kubernetes.io/docs/getting-started-guides/minikube/

Plus de guides sur Kubernetes :

  • Planifier des Pods sur les nœuds du plan de contrôle (Master) de Kubernetes
  • Ajout d'un nouveau nœud de travail Kubernetes à un cluster existant
  • Déploiement d'un cluster Kubernetes sur CentOS avec Ansible et Calico CNI
  • Déployer le serveur de métriques sur le cluster Kubernetes
  • Extraire manuellement les images de conteneurs utilisées par Kubernetes kubeadm
  • Installer et utiliser Helm 3 sur un cluster Kubernetes