GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Introducción a los contenedores LXD en Ubuntu 16.04

¿Por qué LXD?

No es ningún secreto que los contenedores están de moda en este momento en el mundo de Linux. Se están convirtiendo rápidamente en la columna vertebral de la nube y están haciendo realidad los sueños de DevOps. Aun así, a primera vista, parece un poco redundante que Canonical desarrolle un nuevo sistema de contenedores para Ubuntu en un mundo fácilmente dominado por Docker. Entonces, ¿por qué, entonces, lo hicieron? Para llenar un término medio entre las máquinas virtuales tradicionales y Docker. Canonical lo dijo ellos mismos:"Al combinar la velocidad y la densidad de los contenedores con la seguridad de las máquinas virtuales tradicionales, LXD de Canonical es la próxima generación de hipervisor de contenedores para Linux". No solo eso, sino que los contenedores Docker se pueden ejecutar dentro de contenedores LXD, lo que agrega otra dimensión a las posibles configuraciones de contenedores.

LXD es una mejora del hipervisor de contenedores LXC Linux existente con su propio conjunto de herramientas, que comparte una relación similar con el proyecto original como lo hace Ubuntu con Debian con el objetivo de tomar el excelente software existente y optimizarlo para un uso más fácil. En la última versión de Ubuntu LTS de Canonical, 16.04, LXD está bien integrado y es fácil de usar con herramientas de CLI claras y concisas que facilitan la creación y administración de contenedores.

Configuración inicial

Comenzar con LXD en Ubuntu 16.04 es lo más sencillo que se podría esperar. Canonical condensó la instalación en un solo paquete, lo que la convierte en una instalación con un solo comando. Un simple sudo apt-get install lxd obtendrá todo lo necesario para empezar.



Para agregar al usuario al grupo 'lxd' para poder ejecutar los comandos necesarios sin reiniciar, ejecute newgrp lxd . Después de eso, todo estará claro para continuar con la configuración del hipervisor LXD. Ejecutando sudo lxd init comienza el proceso de configuración.


El proceso de configuración inicial consta de una serie de indicaciones de la línea de comandos que solicitan la información básica necesaria para configurar el hipervisor LXD. El proceso es muy sencillo y solicita información como el tipo de almacenamiento, la dirección IP, el número de puerto, la contraseña y si la conexión está puenteada o no.



Después de esa serie de indicaciones, la configuración cambia a una interfaz basada en texto con una serie de preguntas sobre la configuración de red del hipervisor LXD. El proceso crea redes IPv4 e IPv6 puenteadas completas con subredes personalizadas y DHCP. De esta forma, LXD actúa como un enrutador virtual para todos los contenedores implementados en él y proporciona un único punto de configuración para estas redes virtuales.

Claramente, este es uno de esos momentos en los que LXD brilla como una solución de "lo mejor de ambos mundos". Por supuesto, también es bueno que Canonical proporcione un menú de configuración de estilo Debian para guiar el proceso y hacerlo casi sin pensar. Una vez que finaliza la configuración, vuelve a la línea de comando y proporciona un mensaje corto que dice que se ha realizado correctamente.


Imágenes y contenedores LXD

Configuración de un contenedor

Al igual que Docker, LXD se basa en imágenes. Proporciona tres opciones principales para la obtención de imágenes; importaciones remotas, integradas y locales. Hay varias fuentes remotas que vienen con LXD listas para usar, así como las fuentes locales. Para ver qué fuentes están disponibles, simplemente ejecute lxc remote list , y se le presentará una tabla de línea de comando conveniente que muestra información sobre las fuentes disponibles actualmente.



Para los propósitos de este artículo, las fuentes locales parecían ser la mejor y más fácil opción. Se proporcionan imágenes limpias de Ubuntu que constituyen un excelente punto de partida para cualquier implementación. Este es otro de esos momentos de "lo mejor de ambos mundos". En lugar de tener un contenedor simplificado adaptado para ejecutar una sola aplicación, los contenedores LXD están más cerca de una máquina virtual completa.

Vienen completos con acceso a la línea de comandos e incluso la capacidad de instalar paquetes. Al mismo tiempo, LXD proporciona excelentes herramientas de línea de comandos para administrar contenedores e incluso enviar y recibir archivos desde y hacia ellos. Para activar un contenedor de Ubuntu 16.04, simplemente ejecute lxc launch ubuntu:16.04 name-of-container . LXD buscará la imagen, creará un contenedor e iniciará el contenedor.


Trabajar con contenedores LXD

Es fácil verificar el estado del contenedor con lxc list . Iniciar y detener contenedores es igual de fácil con lxc stop name-of-container y lxc start name-of-container .



Uno de los claros beneficios de LXD sobre los contenedores tradicionales como Docker es la capacidad de editar contenedores en ejecución y actualizarlos en lugar de empaquetar un contenedor, implementarlo y dejarlo solo. Si se trata de pasar archivos entre el sistema host y los contenedores, LXD tiene comandos push y pull que permiten pasar archivos de un lado a otro. Si se necesita algo más complicado, LXD proporciona una excelente herramienta de línea de comandos para acceder a contenedores en ejecución y obtener un shell completo. Para obtener acceso al shell de una ejecución de contenedor, lxc exec name-of-container -- /bin/bash .



En el caparazón del contenedor hay un sistema de archivos completo de Linux, y la línea de comando tiene acceso a las herramientas que se incluyeron con la imagen o que se instalaron en los contenedores más adelante. Esto permite que los contenedores LXD ejecuten actualizaciones y múltiples aplicaciones, incluido Docker. De esta forma, un ingeniero de DevOps podría implementar un contenedor LXD que ejecuta una base de datos y un servidor web, así como Docker con varias aplicaciones web que se ejecutan en contenedores Docker.
Por supuesto, esa es solo una de muchas posibilidades, pero el aspecto clave aquí es que LXD agrega otra capa a la ecuación y brinda más flexibilidad al configurar una pila de software.

Conclusión

Está claro, incluso desde esta prueba más básica con LXD, que Canonical cumplió su objetivo al crear un punto medio claro entre la virtualización completa de Linux y los contenedores Docker. LXD es una herramienta que los ingenieros de DevOps deberían considerar seriamente agregar a su caja de herramientas.


Ubuntu
  1. Comenzando con Zsh

  2. Comenzando con ls

  3. Primeros pasos con PostgreSQL en Linux

  4. Primeros pasos con Multipass:ejecución de máquinas virtuales con Ubuntu

  5. ¿Cómo empezar con Juju?

Primeros pasos con el sistema de archivos ZFS en Ubuntu 19.10

Primeros pasos con cPanel

Tutorial de introducción a Azure Docker

Cómo:Introducción a Ubuntu 14.04 LTS con LAMP

Cómo:Introducción a Ubuntu 14.04 LTS con LEMP

Cómo:Introducción a los contenedores de Windows y Docker