it-swarm-es.tech

¿Dónde puedo encontrar documentación LXD de buena calidad?

Mientras investiga y aprende más sobre Contenedores, Docker parece tener una excelente documentación y ejemplos de casos de uso con guías paso a paso. Mientras que, por otro lado, LXD tiene una simple guía de inicio. ¿Qué fuentes por ahí tendrían buena documentación sobre LXD que podría revisar?

4
Klyn

Lo mejor que puedo encontrar en este momento para aprender y adquirir experiencia con LXD es usar la demostración en línea.

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

La demostración lo guiará mientras crea, rompe y elimina un contenedor LXD. También puede instalar LXD y ejecutarlo localmente, pero tienen una nube VM que puede usar directamente desde el sitio.

Aparte de eso Excavar en las páginas de manual y usar --help mostrará información adicional.

Quizás una vez que LXD se desarrolle más y tenga una adopción más amplia, veremos una rica documentación publicada.

2
Klyn

LXC vs LXD

Las publicaciones de blog son agradables e informativas y buenas para leer para comenzar, pero una buena documentación no hacen una vez que haya comenzado. Si eres como yo, puedes ser bastante claro sobre la diferencia entre Docker y LXC/LXD después de leer solo algunas publicaciones de blog comúnmente encontradas sobre esto ... Pero la diferencia entre el proyecto LXC anterior y el nuevo proyecto LXD no estaba en todo claro para mí, y la mayoría de las páginas que encontré simplemente no hacen un buen trabajo al explicarlo de una manera que pueda entender. En su mayoría, intentan aclarar la confusión entre un contenedor de aplicaciones (Docker) y un contenedor del sistema operativo (LXC/LXD). Luego encontré esta publicación de blog: ¿Dónde encaja lxd

Como ya sabrán, todas estas herramientas (Docker/LXC/LXD) usan características comunes del núcleo, como espacios de nombres y grupos c, es solo una cuestión de cómo el espacio de usuario decide usarlas. Un resumen de la publicación anterior se centró en la evolución de LXC vs LXD, según mi entendimiento:

  • LXC fue creado originalmente para probar las nuevas características del kernel; como tal, era una mezcla de scripts de Shell y programas en C (todavía se usa hoy en día a través de las "viejas" herramientas de línea de comandos LXC).
  • Luego esto fue refactorizado en una biblioteca. Las herramientas de línea de comandos de espacio de usuario de LXC existentes usan esta biblioteca ahora.
  • LXD es una forma básica de interactuar con esta biblioteca que no está gravada por la compatibilidad con las antiguas herramientas de línea de comandos LXC. Por lo tanto, es más fácil de usar y más capaz.

Si alguien (como un mantenedor) ve algunos errores arriba, no dude en corregir mi respuesta. :)

Algunas notas sobre libvirt-lxc

Además, en caso de que esté considerando libvirt-lxc (por ejemplo, si ya está usando libvirt con KVM):

  • Red Hat desaprobó esto: https://access.redhat.com/articles/136515
  • Upstream dice que aún trabajarán en ello: https://www.redhat.com/archives/libvirt-users/2015-August/msg00026.html
  • Aunque libvirt-lxc tiene lxc en el nombre, en realidad no usa lxc y en su lugar usa directamente las características del núcleo. Así que no confunda este controlador libvirt con lxc a pesar de la confusión de nombres. Referencia: http://libvirt.org/drvlxc.html (Tenga en cuenta que creo que proxmox usa usa lxc adecuado, pero no las nuevas herramientas lxd).
  • Stéphane Graber sugiere que usar libvirt con contenedores no es adecuado, y que si bien alguien podría escribir un libvirt-lxd, piensa que también es un mal ajuste. En resumen: libvirt está diseñado para administrar máquinas virtuales y los contenedores no son máquinas virtuales, por lo que las cosas se complican y solo admite un denominador común de características. Referencia: https://lists.linuxcontainers.org/pipermail/lxc-devel/2014-November/010820.html
  • Para reforzar lo anterior, no es tan fácil crear nuevos contenedores con libvirt-lxc. Por ejemplo, debe darle una ruta a un rootfs EXISTENTE para un nuevo contenedor que desea crear, y no hay soporte en libvirt-lxc para girar eso. Eso te deja haciendo cosas como usar herramientas externas como lxc-create para crear un nuevo contenedor a partir de una plantilla, y luego hacer un nuevo contenedor libvirt-lxc usando ese directorio existente que acaba de crear, lo que me deja preguntando: "¿por qué preocuparse con libvirt-lxc en lugar de simplemente usar lxd directamente? "

Documentación LXD

Volviendo a su pregunta, he intentado reunir toda la documentación de referencia sobre LXD que pude encontrar. Hay una buena documentación aquí:

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

En particular:

  • configuration.md tiene una buena lista de referencia de posibles opciones de configuración.
  • imagehandling.md habla sobre cómo las imágenes del sistema operativo se almacenan en caché localmente.
  • lxd-ssl-authentication.md analiza la API REST y cómo está expuesta tanto en un socket UNIX local, como opcionalmente en HTTPS, y cómo se asegura.
  • storage-backends.md discute las limitaciones y la configuración de cada backend de almacenamiento.
  • userns-idmap.md lxd de manera predeterminada utiliza contenedores sin privilegios, lo que significa que el UID/GID del contenedor debe asignarse a un UID/GID del host; esto discute eso.
  • Gran parte de la documentación restante no es tan crítica de leer, o está más orientada a los desarrolladores.

Los enlaces anteriores son de la rama maestra de lxd aguas arriba, por lo que es posible que desee consultar el directorio doc para ver las fuentes del paquete que realmente ha instalado, por lo que no utiliza accidentalmente alguna característica nueva que aún no ha instalado.

Realmente no hay muchas páginas man, pero esto es lo que encontré incluido en los paquetes lxd y lxd-client:

  • LXC(1) - programa cliente para comunicarse con el demonio del servidor. Actualmente (5/14/2016) bastante inútil y poco informativo. Esperemos que en el futuro se pueda hacer una serie de páginas de manual para esta herramienta, al igual que las páginas de manual de btrfs.
  • LXD(1) - línea de comando del demonio del servidor.

Por supuesto, también está la página de guía del servidor: https://help.ubuntu.com/lts/serverguide/lxd.html

Finalmente, recuerde que lxd se basa en la biblioteca lxc (pero no en las antiguas herramientas de línea de comandos lxc). Esto significa que la configuración de lxc todavía se puede hacer directamente, p. usando la opción de configuración raw.lxc en lxd. Por lo tanto, es útil alguna referencia a la configuración de LXC subyacente, pero recuerde que debe evitarse si es posible para evitar un conflicto con LXD (por ejemplo, si establece el mismo elemento de configuración en LXD y LXC). Puede buscar en las páginas de manual para encontrarlas si es necesario: https://linuxcontainers.org/lxc/manpages/

4
James Johnston

También hay una gran serie de publicaciones de blog de Stéphane Graber, el líder técnico de LXD en Canonical Ltd, que se publican aquí:

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

y aquí:

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

3
Bjarni Jens