Si vous voulez un gestionnaire de VM facile à utiliser à des fins de développement et de test ==> Multipass

Dans la quête sans fin pour trouver la méthode idéale pour lancer des machines virtuelles (VM), je vous conseille Multipass. Ce gestionnaire de machine virtuelle léger peut être installé sur Linux, Windows et macOS, et est conçu pour que les développeurs puissent lancer un nouvel environnement Ubuntu avec une seule commande.
Pour les fonctionnalités, Multipass utilise KVM sous Linux, Hyper-V sous Windows et HyperKit sous macOS. Le multipass prend en charge les métadonnées pour le cloud-init, il est donc possible de simuler un petit déploiement cloud à partir de votre ordinateur portable ou de bureau. Je vais vous montrer comment installer Multipass sur Ubuntu 18.04. Vous pouvez facilement installer l'outil sur Windows ou macOS de la manière habituelle.
Ce dont vous aurez besoin :
- Une instance de Linux en cours d'exécution qui prend en charge les packages d'instantanés
- Un utilisateur avec des privilèges sudo
Comment installer Multipass
Nous allons utiliser snap pour installer Multipass. Connectez-vous à votre machine Linux, ouvrez une fenêtre de terminal et exécutez la commande:
sudo snap install multipass --classic --stable
Le téléchargement et l'installation ne devraient pas prendre plus de quelques minutes, selon la vitesse de votre connexion réseau. Une fois le package snap installé, vous êtes prêt à travailler avec Multipass.
Comment lancer une machine virtuelle
La première chose que vous voudrez faire est de savoir quelles versions d'Ubuntu sont disponibles pour utilisation. Pour cela, lancez la commande:
multipass find
Vous devriez voir une liste de toutes les images Ubuntu disponibles.
gabriel@gabriel-Latitude-E6320:~$ multipass find
Image Aliases Version Description
snapcraft:core core16 20200221 Snapcraft builder for Core 16
snapcraft:core18 20200221 Snapcraft builder for Core 18
core core16 20200213 Ubuntu Core 16
core18 20200210 Ubuntu Core 18
16.04 xenial 20200218.1 Ubuntu 16.04 LTS
18.04 bionic,lts 20200218 Ubuntu 18.04 LTS
19.10 eoan 20200307 Ubuntu 19.10
daily:20.04 devel,focal 20200313 Ubuntu 20.04 LTS
Supposons que vous souhaitiez lancer une instance de l'image Ubuntu "daily" (dans ce cas, 20.04). Faites cela avec la commande:
multipass launch daily:20.04
Une fois l'instance lancée, elle signalera le succès et répertoriera le nom de l'image que vous avez lancée.
gabriel@gabriel-Latitude-E6320:~$ multipass launch daily:20.04
Launched: jaunty-arapaima
Vous pouvez ensuite vérifier qu'il fonctionne avec la commande:
multipass list
Vous devriez voir jaunty-arapaima répertorié comme Running.
gabriel@gabriel-Latitude-E6320:~$ multipass list
Name State IPv4 Image
primary Deleted -- Not Available
jaunty-arapaima Running 10.250.28.70 Ubuntu 20.04 LTS
Comment se connecter à une machine virtuelle en cours d'exécution
Maintenant que notre VM est en cours d'exécution, nous devons pouvoir nous y connecter (afin de pouvoir réellement l'utiliser). Pour ce faire, lancez la commande:
multipass shell jaunty-arapaima
À ce stade, vous vous trouverez à l'invite bash de votre VM Ubuntu nouvellement lancée.
Une fois connecté, vous pouvez commencer à installer les outils dont vous avez besoin ou passer directement au développement et aux tests. Lorsque vous avez terminé de travailler, quittez la machine virtuelle avec la commande:
exit
Vous pouvez ensuite arrêter et supprimer l'instance avec les commandes:
multipass stop jaunty-arapaima
Enfin, vous pouvez supprimer l'instance avec la commande:
multipass delete jaunty-arapaima
Et c'est tout ce qu'il y a à installer et à utiliser le nouveau gestionnaire de VM Multipass. Avec cet outil, vous pouvez perfectionner vos compétences de mise en réseau Linux, tester le développement et bien plus encore.
En savoir plus :
gabriel@gabriel-Latitude-E6320:~$ multipass info jaunty-arapaima
Name: jaunty-arapaima
State: Running
IPv4: 10.250.28.70
Release: Ubuntu Focal Fossa (development branch)
Image hash: 1e7d8ea02737 (Ubuntu 20.04 LTS)
Load: 0.12 0.03 0.01
Disk usage: 1.3G out of 4.7G
Memory usage: 128.6M out of 981.2M
K3s sur Multipass
J'ai immédiatement essayé d'y exécuter des commandes et j'ai également vérifié s'il ne s'agissait que de Docker.
gabriel@gabriel-Latitude-E6320:~$ multipass launch --name test
Launched: test
gabriel@gabriel-Latitude-E6320:~$ multipass exec test -- uname -a
Linux test 4.15.0-88-generic #88-Ubuntu SMP Tue Feb 11 20:11:34 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Obtenir un shell est simple, nous l'avons déjà vu plus haut :
gabriel@gabriel-Latitude-E6320:~$ multipass shell
Launched: primary
Mounted '/home/gabriel' into 'primary:Home'
Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-88-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information disabled due to load higher than 1.0
17 packages can be updated.
14 updates are security updates.
Cependant, cela a lancé une nouvelle instance appelée primary.
gabriel@gabriel-Latitude-E6320:~$ multipass list
Name State IPv4 Image
primary Running 10.250.28.112 Ubuntu 18.04 LTS
test Running 10.250.28.64 Ubuntu 18.04 LTS
Les instances semblent très rapides .. J'ai vérifié et elles allouent environ un Go de mémoire par défaut:
ubuntu@primary:~$ free -m
total used free shared buff/cache available
Mem: 985 77 508 0 398 765
Swap: 0 0 0
ubuntu@primary:~$ cat /proc/meminfo
MemTotal: 1008732 kB
MemFree: 521104 kB
Installer K3s
ubuntu@primary:~$ sudo su
root@primary:/home/ubuntu# curl -sfL https://get.k3s.io | sh -
[INFO] Finding latest release
[INFO] Using v1.17.3+k3s1 as release
[INFO] Downloading hash https://github.com/rancher/k3s/releases/download/v1.17.3+k3s1/sha256sum-amd64.txt
[INFO] Downloading binary https://github.com/rancher/k3s/releases/download/v1.17.3+k3s1/k3s
[INFO] Verifying binary download
[INFO] Installing k3s to /usr/local/bin/k3s
chcon: can't apply partial context to unlabeled file '/usr/local/bin/k3s'
[INFO] Creating /usr/local/bin/kubectl symlink to k3s
[INFO] Creating /usr/local/bin/crictl symlink to k3s
[INFO] Creating /usr/local/bin/ctr symlink to k3s
[INFO] Creating killall script /usr/local/bin/k3s-killall.sh
[INFO] Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO] env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO] systemd: Creating service file /etc/systemd/system/k3s.service
[INFO] systemd: Enabling k3s unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.
[INFO] systemd: Starting k3s
root@primary:/home/ubuntu# sudo kubectl get nodes
NAME STATUS ROLES AGE VERSION
primary Ready master 16h v1.17.3+k3s1
Pouvons-nous augmenter (mettre à l'échelle) notre cluster?
root@primary:/home/ubuntu# cat /var/lib/rancher/k3s/server/node-token
K10c8f95459ed749229e735597fcde533f2166808ee9deceb50ea7d5a1bf969d2f3::server:76f4979cba885c81bd84ffec2f44c2d4
Ajout d'un nouveau nœud…