LXD

Tutoriel LXD

Tutoriel LXD

Les bases de LXD : qu'est-ce que c'est? Et comment l'utiliser?

La conteneurisation LXD n'a pas obtenu le devant de la scène que Docker, mais elle est en fait beaucoup plus proche de l'idée centrale de la virtualisation du système d'exploitation. Mais avant d'y arriver, parlons de la virtualisation contemporaine au niveau matériel.

Virtualisation matérielle

La manière traditionnelle avec laquelle VMware, VirtualBox, KVM et les technologies similaires fonctionnent est la suivante - Vous avez un ordinateur de qualité serveur, disons un processeur Xeon haut de gamme avec 512 Go de RAM, connu sous le nom de bare metal. Vous installez un système d'exploitation sur celui-ci, qui exécuterait ensuite VMware, Virtualbox ou KVM.

Ce sont divers hyperviseurs, et le système d'exploitation qui les exécute est le système d'exploitation hôte.

Maintenant, ce que propose l'hyperviseur est ceci - Il émule le processeur, les interfaces réseau, les disques de stockage, la mémoire, les E/S et d'autres ressources de sorte qu'un nouveau système d'exploitation puisse être installé sur cet ensemble de matériel virtuel. Ce nouveau système d'exploitation est le système d'exploitation invité et il fonctionne sur du matériel virtuel, comme il le ferait s'il était installé sur une machine physique, mais il y a un hic.

Si vous pensez « Mais émuler divers périphériques matériels à l'aide du matériel réel semble inefficace et lent." Vous avez tout à fait raison. La virtualisation au niveau matériel est lente et inefficace.

De plus, les systèmes d'exploitation eux-mêmes sont des maniaques du contrôle. Si vous allouez à un système d'exploitation invité 1 Go de RAM et 2 cœurs de processeur, il prendra volontiers toutes les ressources même si les applications qui s'y exécutent n'en utilisent qu'une fraction. Ces ressources ne seront pas disponibles pour que l'hyperviseur puisse les utiliser ailleurs.

Cela limite considérablement le nombre de machines virtuelles pouvant s'exécuter sur un hyperviseur. Si vous êtes un fournisseur d'hébergement cloud, cela signifie que votre résultat net va être durement touché.


La façon de faire des conteneurs

L'idée de matériel virtualisé est jetée par la fenêtre lorsque nous commençons à parler de conteneurs et en particulier de LXD. Au lieu d'émuler des ressources matérielles individuelles, nous essayons de virtualiser le système d'exploitation.

Lorsqu'un conteneur LX est lancé, l'OS s'offre (c'est-à-dire le noyau, les bibliothèques toutes les ressources dont il dispose) aux applications s'exécutant à l'intérieur du conteneur. Les utilisateurs et les applications à l'intérieur de ce conteneur ne seront pas au courant des applications et des packages s'exécutant en dehors de celui-ci, et vice versa.

En ce qui concerne l'allocation des ressources, vous pouvez simplement prendre note de ne pas autoriser un conteneur particulier à utiliser plus de, disons, 2 Go de RAM et 2 processeurs. De cette façon, lorsque les applications s'exécutant dans un conteneur ne font rien d'intensif, les ressources peuvent être allouées ailleurs sur l'environnement hôte.

Cependant, lorsque les applications s'exécutent sous une charge élevée, elles obtiennent les performances sans système d'exploitation!

L'inconvénient évident de ceci est que vous ne pouvez exécuter aucun système d'exploitation arbitraire en tant qu'invité. Parce que différents systèmes d'exploitation ont des architectures différentes. Heureusement pour les utilisateurs de GNU/Linux, le noyau Linux offre une compatibilité ABI si étroite que vous pouvez émuler différentes distributions sur le même noyau. Ainsi, vous pouvez exécuter des binaires CentOS et des applications Ubuntu sur le même métal uniquement dans des conteneurs différents.


Initialisation LXD

La conteneurisation LX est une technologie bien testée et robuste pour les systèmes d'exploitation basés sur Linux. Il a deux composants principaux, l'un est LXC qui gère les configurations de conteneur, les fichiers image, etc. et puis il y a LXD qui est le démon s'exécutant sur votre hôte garantissant que toutes les politiques définies pour la conteneurisation sont suivies.

Il est installé par défaut sur Ubuntu Server 16.04 LTS, si vous utilisez la distribution de bureau, exécutez :

$ apt install lxd lxd-client

Une fois cela fait, il vous est demandé d'initialiser divers paramètres. La commande suivante vous les parcourrait :

$ lxd initialisation

Vous pouvez sélectionner les options par défaut à partir d'ici.  La chose la plus compliquée serait la configuration des interfaces réseau. Lorsqu'on lui a demandé la configuration du réseau LXD, sélectionnez l'option par défaut oui.

1 Répondez oui, à nouveau, lorsque vous êtes invité à définir le réseau

La fenêtre suivante demandera le nom de l'interface réseau (comme vu sur l'hôte), laissez-le à la valeur par défaut lxdbr0.

Le paramètre de sous-réseau IPv4 viendrait après cela. Cela permettrait à différents conteneurs LX de se parler comme s'il s'agissait d'ordinateurs différents sur un réseau local. Sélectionnez oui pour cela.

Ensuite, il y aura plusieurs 10.202.X.X adresses affichées chacune avec un rôle différent sur ce sous-réseau. Vous pouvez appuyer sur Entrée sans avoir besoin de modifier les options. Lorsqu'on vous demande la configuration NAT, sélectionnez Oui.

Cela permet à vos conteneurs de se connecter à Internet, en utilisant l'adresse IP publique de l'hôte, de la même manière que votre ordinateur portable et d'autres appareils le font via le routeur domestique (avec redirection de port).

La dernière option concernant le sous-réseau IPv6 est complètement facultative et je vous recommande de l'omettre pour l'instant. Dire non, lorsque vous y êtes invité pour les options IPv6.


Faire tourner les conteneurs

Pour exécuter une nouvelle instance de, disons, Ubuntu 16.04, exécutez la commande suivante :

$lxc lance ubuntu:16.04 nom_de_votre_conteneur

Comme c'est la première fois que vous exécutez un serveur Ubuntu, il faudra du temps pour récupérer l'image du conteneur à partir des référentiels distants. Une fois cela fait, vous pouvez voir les détails du conteneur lancé, en exécutant la commande :

liste $lxc

Dans cet exemple, le nom du conteneur est suite1.

Si vous voulez entrer dans le conteneur, exécutez la commande ;

$lxc exec name_of_your_container bash

Cela vous déposera dans le shell bash qui s'exécute à l'intérieur de ce conteneur. Cela sentirait et se sentirait comme une nouvelle installation d'Ubuntu 16.04 et vous pouvez librement installer des packages à l'intérieur et faire diverses expériences sans risquer votre installation principale.

Maintenant que vous avez le fichier image stocké localement sur votre système hôte, vous pouvez lancer des conteneurs Ubuntu très rapidement et les utiliser comme systèmes jetables.

Pour arrêter et supprimer un conteneur LX, exécutez ;

$lxc stop Container_name $lxc delete container_name 

Utilisez la commande de lancement lxc, comme vous l'avez fait la première fois pour lancer de nouveaux conteneurs.


Où aller en partant d'ici

Maintenant que vous connaissez l'architecture de LXD, vous voudrez peut-être commencer à explorer des sujets tels que la mise en réseau et le stockage pour les conteneurs et comment les configurer en fonction de votre charge de travail.

Vous voudrez peut-être également en savoir plus sur les principales différences entre Docker et LXD et sur ce qui pourrait mieux répondre à vos besoins. Si vous souhaitez utiliser ZFS comme backend de stockage (comme vous devriez!) vous voudrez peut-être consulter ce didacticiel sur les bases de ZFS.

Comment installer League Of Legends sur Ubuntu 14.04
Si vous êtes fan de League of Legends, alors c'est l'occasion pour vous de tester League of Legends. Notez que LOL est pris en charge sur PlayOnLinux ...
Installez le dernier jeu de stratégie OpenRA sur Ubuntu Linux
OpenRA est un moteur de jeu de stratégie en temps réel libre/gratuit qui recrée les premiers jeux Westwood comme le classique Command & Conquer: Red A...
Installez le dernier émulateur Dolphin pour Gamecube et Wii sur Linux
L'émulateur Dolphin vous permet de jouer aux jeux Gamecube et Wii de votre choix sur des ordinateurs personnels Linux (PC). Étant un émulateur de jeu...