web-dev-qa-db-fra.com

Où puis-je trouver une bonne qualité de la documentation LXD

Tout en recherchant et en apprenant davantage sur les conteneurs, Docker semble disposer d’une excellente documentation et d’exemples de cas d’utilisation avec des guides étape par étape. D'autre part, LXD n'a qu'un simple guide de prise en main. Quelles sources auraient une bonne documentation sur LXD sur laquelle je pourrais me pencher?

4
Klyn

La meilleure chose que je puisse trouver maintenant pour apprendre et acquérir de l'expérience avec LXD est d'utiliser la démonstration en ligne.

https://linuxcontainers.org/lxd/try-it/

La démonstration vous guide lors de la création, de la suppression et de la suppression d'un conteneur LXD. Vous pouvez également simplement installer LXD et l’exécuter localement, mais ils ont un nuage VM que vous pouvez utiliser directement à partir du site.

Autre que cela, creuser dans les pages de manuel et utiliser --help affichera des informations supplémentaires.

Peut-être qu'une fois que LXD sera développé et adopté plus largement, nous verrons une documentation riche publiée.

2
Klyn

LXC vs LXD

Les articles de blog sont sympas, instructifs et bons à lire pour commencer, mais ils ne constituent pas une bonne documentation une fois que vous avez commencé. Si vous êtes comme moi, vous constaterez peut-être assez la différence entre Docker et LXC/LXD après avoir lu seulement quelques articles de blog couramment trouvés à ce sujet. Mais la différence entre l'ancien projet LXC et le nouveau projet LXD n'était pas tout est clair pour moi, et la plupart des pages que j'ai trouvées ne font pas un bon travail en l'expliquant d'une manière que je puisse comprendre. La plupart du temps, ils essaient de dissiper la confusion entre un conteneur d'application (Docker) et un conteneur de système d'exploitation (LXC/LXD). Ensuite, j'ai trouvé cet article de blog: Où se situe lxd

Comme vous le savez peut-être maintenant, tous ces outils (Docker/LXC/LXD) utilisent des fonctionnalités communes du noyau telles que les espaces de noms et les groupes de contrôle, il s’agit simplement de savoir comment l’espace utilisateur décide de les utiliser. Un résumé du post ci-dessus s'est concentré sur l'évolution de LXC par rapport à LXD, basé sur ma compréhension:

  • LXC a été créé à l'origine pour tester les nouvelles fonctionnalités du noyau; en tant que tel, il s’agissait d’un mélange de scripts Shell et de programmes C (toujours utilisés aujourd’hui via les "anciens" outils de ligne de commande LXC).
  • Ensuite, cela a été refactoré dans une bibliothèque. Les outils de ligne de commande existants de l'espace utilisateur LXC utilisent maintenant cette bibliothèque.
  • LXD est un moyen simple d’interfaçage avec cette bibliothèque qui n’est pas encombré par une compatibilité ascendante avec les anciens outils de ligne de commande LXC. Donc, c'est plus facile à utiliser et plus capable.

Si quelqu'un (comme un responsable) voit quelques erreurs ci-dessus, n'hésitez pas à corriger ma réponse. :)

Quelques notes sur libvirt-lxc

De même, si vous envisagez _libvirt-lxc_ (par exemple, si vous utilisez déjà libvirt avec KVM):

  • Red Hat a déconseillé cela: https://access.redhat.com/articles/136515
  • Upstream dit qu'ils continueront à travailler dessus: https://www.redhat.com/archives/libvirt-users/2015-August/msg00026.html
  • Même si _libvirt-lxc_ a lxc dans le nom, , il n’utilise pas réellement lxc mais utilise directement le caractéristiques du noyau. Donc, ne confondez pas ce pilote libvirt avec lxc malgré la confusion des noms. Référence: http://libvirt.org/drvlxc.html (Notez que je pense que proxmox utilise utilise lxc convenable, mais pas les plus récents lxd outils).
  • Stéphane Graber suggère que l’utilisation de libvirt avec des conteneurs est un piètre ajustement et que, bien que quelqu'un puisse éventuellement écrire un _libvirt-lxd_, il le pense également. En résumé: libvirt est conçu pour gérer les ordinateurs virtuels et les conteneurs ne sont pas des ordinateurs virtuels. Ainsi, les choses se compliquent et vous ne prenez en charge qu'un dénominateur commun de fonctionnalités. Référence: https://lists.linuxcontainers.org/pipermail/lxc-devel/2014-November/010820.html
  • Pour renforcer l’ancien, il n’est pas facile de créer de nouveaux conteneurs avec _libvirt-lxc_. Par exemple, vous devez lui donner un chemin d'accès à un rootfs EXISTANT pour un nouveau conteneur que vous souhaitez créer, et _libvirt-lxc_ ne prend pas en charge le développement de ce dernier. Vous devez donc utiliser des outils externes tels que _lxc-create_ pour créer un nouveau conteneur à partir d'un modèle, puis créer un nouveau conteneur _libvirt-lxc_ en utilisant le répertoire existant que vous venez de créer, ce qui me laisse poser la question suivante: " pourquoi se mêler de _libvirt-lxc_ au lieu d’utiliser lxd directement? "

Documentation LXD

Pour revenir à votre question, j'ai essayé de rassembler toute la documentation de référence sur LXD que j'ai pu trouver. Il y a une bonne documentation ici:

https://github.com/lxc/lxd/tree/master/doc

En particulier:

  • configuration.md possède une liste de références Nice des options de configuration possibles.
  • imagehandling.md explique comment les images du système d'exploitation sont mises en cache localement.
  • lxd-ssl-authentication.md discute de l'API REST et de la façon dont elle est exposée à la fois sur un socket UNIX local et éventuellement sur HTTPS et sur la manière dont cela est sécurisé.
  • storage-backends.md explique les limites et la configuration de chaque système de stockage.
  • userns-idmap.md Par défaut, lxd utilise des conteneurs sans privilège, ce qui signifie que le conteneur UID/GID doit être mappé sur un hôte UID/GID. cela discute cela.
  • Une grande partie de la documentation restante n'est pas aussi critique à lire ou est davantage destinée aux développeurs.

Les liens ci-dessus proviennent de la branche principale de lxd en amont. Vous pouvez donc consulter le répertoire doc pour connaître les sources du paquet que vous avez réellement installé. Ainsi, vous n'utiliserez pas accidentellement une nouvelle fonctionnalité Je n'ai pas encore installé.

Il n'y a pas vraiment beaucoup de pages de manuel, mais voici ce que j'ai trouvé inclus dans les packages lxd et _lxd-client_:

  • LXC(1) - programme client permettant de communiquer avec le démon du serveur. Actuellement (14/05/2016) plutôt inutile et peu informatif. Espérons qu'à l'avenir, une série de pages de manuel puisse être créée pour cet outil, un peu comme la page de manuel btrfs.
  • LXD(1) - ligne de commande du démon de serveur.

Bien sûr, il y a aussi la page du guide du serveur: https://help.ubuntu.com/lts/serverguide/lxd.html

Enfin, rappelez-vous que lxd est basé sur la bibliothèque lxc (mais pas sur les anciens outils de ligne de commande lxc). Cela signifie que la configuration de lxc peut toujours être effectuée directement, par exemple. en utilisant l'option de configuration _raw.lxc_ dans lxd. Par conséquent, il est utile de faire référence à la configuration LXC sous-jacente, mais rappelez-vous que cela devrait être évité si possible pour éviter un conflit avec LXD (par exemple, si vous définissez le même élément de configuration dans LXD et LXC). Vous pouvez creuser dans les pages de manuel pour les trouver si nécessaire: https://linuxcontainers.org/lxc/manpages/

4
James Johnston

Stéphane Graber, le responsable technique de LXD chez Canonical Ltd, a également publié une série d'articles sur son blog:

https://www.stgraber.org/2016/03/11/lxd-2-0-blog-post-series-012/

et ici:

http://insights.ubuntu.com/2016/03/14/the-lxd-2-0-story-prologue/

3
Bjarni Jens