GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Premiers pas avec les conteneurs LXD sur Ubuntu 16.04

Pourquoi LXD ?

Ce n'est un secret pour personne que les conteneurs sont en vogue en ce moment dans le monde Linux. Ils deviennent rapidement l'épine dorsale du Cloud et réalisent les rêves DevOps. Même ainsi, à première vue, il semble un peu redondant pour Canonical de développer un nouveau système de conteneurs pour Ubuntu dans un monde facilement dominé par Docker. Alors pourquoi l'ont-ils fait ? Pour combler un juste milieu entre les machines virtuelles traditionnelles et Docker. Canonical l'a dit lui-même :« En combinant la vitesse et la densité des conteneurs avec la sécurité des machines virtuelles traditionnelles, LXD de Canonical est la prochaine génération d'hyperviseur de conteneurs pour Linux. Non seulement cela, mais les conteneurs Docker peuvent être exécutés dans des conteneurs LXD, ajoutant une autre dimension aux configurations de conteneur potentielles.

LXD est une amélioration de l'hyperviseur de conteneur Linux LXC existant avec son propre ensemble d'outils, partageant une relation similaire avec le projet original comme Ubuntu le fait avec Debian dans le but de prendre d'excellents logiciels existants et de les rationaliser pour une utilisation plus facile. Sur la dernière version d'Ubuntu LTS de Canonical, 16.04, LXD est bien intégré et facile à utiliser avec des outils CLI clairs et concis qui rendent la création et la gestion de conteneurs transparentes.

Configuration initiale

Démarrer avec LXD sur Ubuntu 16.04 est aussi facile que prévu. Canonical a condensé l'installation en un seul package, ce qui en fait une installation en une seule commande. Un simple sudo apt-get install lxd obtiendra tout le nécessaire pour commencer.



Afin d'ajouter l'utilisateur au groupe 'lxd' afin de pouvoir exécuter les commandes nécessaires sans redémarrage, exécutez newgrp lxd . Après cela, tout sera clair pour procéder à la configuration de l'hyperviseur LXD. Exécution de sudo lxd init commence le processus de configuration.


Le processus de configuration initial consiste en une série d'invites de ligne de commande demandant des informations de base nécessaires pour configurer l'hyperviseur LXD. Le processus est très simple et demande des informations telles que le type de stockage, l'adresse IP, le numéro de port, le mot de passe et si la connexion est pontée ou non.



Après cette série d'invites, la configuration passe à une interface textuelle avec une série de questions sur la configuration réseau de l'hyperviseur LXD. Le processus crée des réseaux pontés IPv4 et IPv6 complets avec des sous-réseaux personnalisés et DHCP. De cette façon, LXD agit comme un routeur virtuel pour tous les conteneurs qui y sont déployés et fournit un point de configuration unique pour ces réseaux virtuels.

De toute évidence, c'est l'un de ces moments où LXD brille comme une solution "le meilleur des deux mondes". Bien sûr, il est également agréable que Canonical fournisse un menu de configuration de style Debian pour parcourir le processus et le rendre presque insensé. Une fois la configuration terminée, il revient à la ligne de commande et fournit un court message indiquant qu'il a réussi.


Images et conteneurs LXD

Configurer un conteneur

Comme Docker, LXD est basé sur l'image. Il fournit trois options principales pour obtenir des images; importations distantes, intégrées et locales. Il existe plusieurs sources distantes fournies avec LXD ainsi que les sources locales. Pour voir quelles sources sont disponibles, lancez simplement lxc remote list , et vous serez présenté avec un tableau de ligne de commande pratique affichant des informations sur les sources actuellement disponibles.



Pour les besoins de cet article, les sources locales semblaient être la meilleure et la plus simple option. Il existe des images Ubuntu propres fournies qui constituent un excellent point de départ pour tout déploiement. C'est un autre de ces moments "le meilleur des deux mondes". Au lieu d'avoir un conteneur dépouillé adapté à l'exécution d'une seule application, les conteneurs LXD sont plus proches d'une machine virtuelle à part entière.

Ils sont livrés avec un accès à la ligne de commande et même la possibilité d'installer des packages. Dans le même temps, LXD fournit d'excellents outils de ligne de commande pour gérer les conteneurs et même pousser et extraire des fichiers vers et depuis ceux-ci. Pour lancer un conteneur Ubuntu 16.04, exécutez simplement lxc launch ubuntu:16.04 name-of-container . LXD va récupérer l'image, créer un conteneur et démarrer le conteneur.


Travailler avec les conteneurs LXD

Il est facile de vérifier l'état du conteneur avec lxc list . Démarrer et arrêter des conteneurs est tout aussi simple avec lxc stop name-of-container et lxc start name-of-container .



L'un des avantages évidents de LXD par rapport aux conteneurs traditionnels comme Docker est la possibilité de modifier les conteneurs en cours d'exécution et de les mettre à jour plutôt que d'emballer un conteneur, de le déployer et de le laisser seul. S'il s'agit de transmettre des fichiers entre le système hôte et les conteneurs, LXD dispose de commandes push et pull qui permettent de transmettre des fichiers dans les deux sens. Si quelque chose de plus complexe est nécessaire, LXD fournit un excellent outil de ligne de commande pour accéder aux conteneurs en cours d'exécution et obtenir un shell complet. Afin d'accéder au shell d'un conteneur, exécutez lxc exec name-of-container -- /bin/bash .



Dans le shell du conteneur, il y a un système de fichiers Linux complet, et la ligne de commande a accès aux outils fournis avec l'image ou installés ultérieurement sur les conteneurs. Cela permet aux conteneurs LXD d'exécuter des mises à jour et plusieurs applications, y compris Docker. De cette façon, un ingénieur DevOps pourrait déployer un conteneur LXD exécutant une base de données et un serveur Web ainsi que Docker avec plusieurs applications Web s'exécutant dans des conteneurs Docker.
Bien sûr, ce n'est qu'une des nombreuses possibilités, mais l'aspect clé ici est que LXD ajoute une autre couche à l'équation et offre plus de flexibilité lors de la configuration d'une pile logicielle.

Conclusion

Il ressort même de cet essai le plus élémentaire avec LXD que Canonical a atteint son objectif en créant un juste milieu entre la virtualisation Linux complète et les conteneurs Docker. LXD est un outil que les ingénieurs DevOps devraient sérieusement envisager d'ajouter à leur boîte à outils.


Ubuntu
  1. Premiers pas avec Zsh

  2. Démarrer avec ls

  3. Premiers pas avec PostgreSQL sous Linux

  4. Premiers pas avec Multipass - Exécution de machines virtuelles Ubuntu

  5. Conteneurs LXD et mise en réseau avec IP statique

Premiers pas avec le système de fichiers ZFS sur Ubuntu 19.10

Premiers pas avec cPanel

Tutoriel de démarrage avec Azure Docker

Comment :démarrer avec Ubuntu 14.04 LTS avec LAMP

Comment :démarrer avec Ubuntu 14.04 LTS avec LEMP

Comment :démarrer avec les conteneurs Windows et Docker