LXD Descrito como el administrador de contenedores y máquinas virtuales de próxima generación, puede proporcionar una experiencia inmersiva para los sistemas Linux que se ejecutan en contenedores o como máquinas virtuales.
Proporciona imágenes para una gran cantidad de distribuciones de Linux y admite varios tipos de redes y backends de almacenamiento. También brinda la opción de instalar la imagen en una sola PC / computadora portátil o incluso en una instancia en la nube.
LXD Le permite administrar contenedores y máquinas virtuales de tres formas.Puedes usar Cliente LXC O herramientas de línea de comandos, API REST o incluso integración de terceros.
Tabla de Contenidos
Funciones LXD
Significativo LXD Las características incluyen:
- LXD está basado en imágenes y contiene imágenes adecuadas para múltiples distribuciones de Linux.
- Pone la seguridad como la máxima prioridad.
- Proporciona una API REST y una herramienta de línea de comandos lxc para interactuar con el contenedor.
- Brinda soporte para una amplia gama de backends de almacenamiento, volúmenes de almacenamiento y grupos de almacenamiento.
- La gestión de la red se logra mediante la creación de redes puenteadas y túneles entre hosts.
- Control avanzado de recursos como CPU, RAM, uso de disco, E / S de bloque y recursos del kernel.
- Flexible y escalable: puede implementar contenedores en su PC y configurar un clúster, que puede agregar miles de contenedores en cada nodo.
¿Qué es LXC?
No vayas con LeEco Herramientas de cliente de línea de comandos proporcionadas LXD, LXC (Contenedor de Linux) Es una popular tecnología de virtualización a nivel de sistema operativo que utiliza potentes API y otras herramientas para permitir a los usuarios crear y administrar sin problemas contenedores y máquinas virtuales en un solo host. Incluye plantillas, lenguajes de herramientas y enlaces de biblioteca.
Características de LXC
LXC Utilice las siguientes funciones del kernel para manejar el proceso:
- Espacio de nombres del kernel: pid, mount, uts network y user.
- CGroups (grupo de control).
- Chroots-Use pivot_root.
- Política de seccomp.
- Archivos de configuración de SELinux y Apparmor.
Linuxcontainers.org ¿Es el proyecto general detrás de los dos LXD y LXCSu objetivo es proporcionar una plataforma de distribución y proveedor neutral para la tecnología de contenedores de Linux.
Con esta introducción, ahora demostraremos cómo crear y administrar LXC Contenedores en distribuciones de Linux basadas en RHEL, por ejemplo CentOS, Rocky Linux, y Alma Linux.
Exigir
Un sistema operativo Linux que se ejecuta menos:
Paso 1: Configure SELinux en modo permisivo
Pronto comenzaremos a configurar SELinux Y déjelo suelto. Pero antes de hacer eso, actualice el paquete del sistema de la siguiente manera:
$ sudo dnf update
configurar SELinux Permitir, ejecutar el comando:
$ sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
Para que surta efecto, reinicie el servidor.
$ sudo reboot
Y confirma el estado SELinux.
$ getenforce
Paso 2: instalar el repositorio de EPEL
Epel Es desde Proyecto Fedora Proporciona un conjunto de paquetes de alta calidad. Red Hat Enterprise Linux Y otras distribuciones basadas en RHEL.
$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm OR $ sudo yum install epel-release

Paso 3: agregue los parámetros del kernel
Antes de instalar LXD, Se requieren algunos parámetros adicionales. Así que cambie al usuario root:
$ su -
Y agregue los siguientes parámetros.
$ grubby --args="user_namespace.enable=1" --update-kernel="$(grubby --default-kernel)" $ grubby --args="namespace.unpriv_enable=1" --update-kernel="$(grubby --default-kernel)" $ echo "user.max_user_namespaces=3883" | sudo tee -a /etc/sysctl.d/99-userns.conf

Después de configurar los parámetros, continúe y habilite Snap.
Paso 4: instala y habilita Snap
La forma más sencilla de instalar LXD existe RHEL 8 Es instalarlo como Romper paquete.Pero primero, instalemos Romper como sigue.
$ sudo dnf install snapd
Esto instalará Instantánea El demonio o servicio y otras dependencias de Python, como se muestra en la figura.

Después de instalar snap, continúe y habilite la Romper Toma de comunicación.
$ sudo systemctl enable --now snapd.socket
Además, habilite el soporte clásico creando un enlace simbólico desde / var / lib / snapd / snap llegar /Roto.
$ sudo ln -s /var/lib/snapd/snap /snap
renovar Romper Ruta, reinicia el sistema.
$ sudo reboot
Paso 5: Instale LXD Containerization Manager
Hay dos formas de instalar LXD A partir de una Romper. Puede instalar la última versión de LXD como muestra la imagen.
$ sudo snap install —-classic lxd

O puede instalar la última versión estable Servicio a largo plazo La versión es la siguiente:
$ sudo snap install lxd --channel=4.0/stable
Para poder ejecutar LeEco Comando sin cambiar al usuario sudo, agregue el usuario actualmente conectado a lxd grupo.
$ sudo usermod -aG lxd $USER
Verifique que el usuario se haya agregado a lxd agrupar enumerando todos los grupos a los que pertenece el usuario.
$ groups tecmint

A continuación, corre Nuevo grupo El comando es el siguiente.
$ newgrp lxd
Este comando cambia el ID de grupo actual durante la sesión de inicio de sesión.Establece la ID del grupo actual como un grupo con nombre lxd.
Paso 6: inicializar el entorno LXD
Antes de empezar a crear y gestionar LXD Contenedor, necesitamos inicializar LXD Ejecute el entorno de comandos.
$ lxc init
A continuación, encontrará una serie de indicaciones que le permitirán configurar su entorno. El valor predeterminado funciona bien, pero puede especificar sus propias preferencias como desee.
Creamos un grupo de almacenamiento llamado Fondo de tecnología y lvm Opción como backend.

para probar LXD En el entorno que acaba de configurar, puede utilizar muchos comandos. Por ejemplo, para mostrar el archivo de configuración LXD predeterminado, ejecute:
$ lxc profile show default

Mostrar adaptador de red y IPv4 y IPv6 Dirección, ejecute:
$ lxc network list

Puede limitar aún más el alcance y mostrar información relevante Nombre del archivo La interfaz es la siguiente.
$ lxc network show lxdbr0

También puede verificar el grupo de almacenamiento.
$ lxc storage list

Además, puede obtener información compleja y detallada sobre el grupo de almacenamiento.
$ lxc storage show tec-pool

Ejecuciones de lista LeEco Contenedor, ejecute el comando:
$ lxc list
Actualmente, no tenemos contenedores en ejecución. Entonces obtendrá una tabla vacía con solo etiquetas de columna.

Paso 7: enumere las imágenes de contenedores LXC prediseñadas
Al igual que Peón, Esta LXC La plataforma proporciona un repositorio de imágenes prediseñadas a partir de las cuales puede crear contenedores. Para enumerar todas las imágenes prediseñadas para todos los sistemas operativos (incluidas las máquinas virtuales), ejecute el siguiente comando:
$ lxc image list images:
Esto llena todos los sistemas operativos con una gran cantidad de imágenes de contenedor y máquinas virtuales. Para limitarse a una distribución de Linux específica, use la siguiente sintaxis:
$ lxc image list images: grep -i os-type
Por ejemplo, para buscar imágenes disponibles Rocky Linux, Ejecute el comando:
$ lxc image list images: grep -i rocky

Si usted está buscando Debian Imagen, comando de ejecución:
$ lxc image list images: grep -i debian

Paso 8: Inicie el contenedor LXC
desenrollar LeEco Contenedor, use la sintaxis:
$ lxc launch images:{distro}/{version}/{arch} {container-name-here}
Aquí, comenzaremos con 2 contenedores: tec-container1 desde Debian 10 y tec-container2 desde Rocky Linux 8.
$ lxc launch images:debian/10/amd64 tec-container1 $ lxc launch images:rockylinux/8/amd64 tec-container2

Lista LeEco Contenedor, ejecuta el comando:
$ lxc list
La salida muestra mucha información sobre el contenedor. Esto incluye el nombre del contenedor, el estado (en ejecución o detenido), las direcciones IPv4 e IPv6, el tipo (contenedor o máquina virtual) y algunas instantáneas.

Para enumerar solo los contenedores en ejecución, ejecute el siguiente comando:
$ lxc list | grep -i running
De manera similar, para contenedores detenidos, ejecute:
$ lxc list | grep -i stopped

Puede utilizar los siguientes comandos para sondear la información y las métricas del contenedor, como los procesos en ejecución, la utilización de la CPU y la memoria, el ancho de banda, etc.
$ lxc info tec-container1

Paso 9: Obtenga acceso de Shell al contenedor LXC
Puede usar la siguiente sintaxis para obtener acceso de bash al contenedor:
$ lxc exec container-name name-of-the-shell
Obtenga acceso al caparazón tec-container1, Ejecutaremos el comando:
$ lxc exec tec-container1 bash
Después de obtener acceso al shell, puede comenzar a interactuar con el contenedor como usuario root ejecutando comandos de shell comunes (incluida la actualización del sistema), como se muestra a continuación:
$ apt update

Para salir del contenedor, ejecute el siguiente comando:
$ exit
Alternativamente, puede usar el siguiente formato para ejecutar comandos directamente en el contenedor sin acceso al shell:
$ lxc exec container-name command
Por ejemplo, puede ejecutar los siguientes comandos para actualizar la lista de paquetes, verificar la versión del sistema operativo que se ejecuta en el contenedor Debian y verificar la fecha.
$ lxc exec tec-container1 apt update $ lxc exec tec-container1 cat /etc/debian_version $ lxc exec tec-container1 date

Paso 10: Tire / empuje el archivo al contenedor LXC
Otra operación que puede realizar es transferir archivos dentro y fuera del contenedor.Para demostrar esto, estaremos LXD Contenedor y navega hasta él.
# mkdir data && cd data
A continuación, crearemos un archivo de muestra y agregaremos algunos datos.Para ello, crearemos un archivo de muestra. empuje editar
# vim file1.txt
A continuación, ingresaremos un texto de muestra y guardaremos el archivo.
Hello World, Welcome to LXD containers.
Para extraer archivos del contenedor al sistema host local, usaremos la siguiente sintaxis:
$ lxc file pull {container-name}/{path/to/file} {/path/to/local/dest}
En este caso, el comando será:
$ lxc file pull tec-container2/root/data/file1.txt /home/tecmint

Para enviar o copiar archivos desde un directorio local al contenedor, use la siguiente sintaxis:
$ lxc file push {/path/to/file} {container-nane} /path/to/dest/dir/
En este caso, tenemos un archivo de muestra llamado Archivo 2.txt Se copia a / Raíz / datos / En el camino tec-container2 envase.
$ lxc file push /home/tecmint/file2.txt tec-container2/root/data/
Para confirmar la existencia del archivo en el contenedor, ejecutaremos:
$ lxc exec tec-container2 ls /root/data

Paso 11: detener / iniciar / reiniciar y eliminar el contenedor LXC
junto con LeEco Utilidad de línea de comandos, puede realizar tareas de administración de contenedores como detener, iniciar, reiniciar y eliminar contenedores.
Detener uno LeEco Contenedor, use la sintaxis:
$ lxc stop container-name
Por ejemplo, detén tec-container1, Ejecutaremos el comando:
$ lxc stop tec-container1

puesta en marcha LeEco Contenedor, use la sintaxis:
$ lxc start container-name
Por ejemplo, para empezar tec-container1, Ejecutaremos:
$ lxc start tec-container1

Reiniciar ambos LeEco Contenedor, ejecutaremos el comando:
$ lxc restart tec-container1 $ lxc restart tec-container2

Eliminar uno LeEco Contenedor, primero debe detener el contenedor y luego eliminarlo. Por ejemplo, para eliminar, ejecutaremos el siguiente comando:
$ lxc stop tec-container1 $ lxc delete tec-container1
Alternativamente, puede combinar estos dos comandos como se muestra en la figura.
$ lxc stop tec-container1 && lxc delete tec-container1

Paso 12: Obtenga ayuda sobre las opciones de línea de comando de LXC
Obtenga ayuda sobre otras opciones de comando proporcionadas por LXC, Simplemente ejecute el siguiente comando:
$ lxc --help OR $ lxc command --help e.g $ lxc file --help

en conclusión
Eso es una investigación en profundidad LXD Contenedor y como usar LeEco Utilidad de línea de comandos. Creemos que esta guía le resultó útil.
.