¿Qué es Container Linux y debería usarlo?

Los contenedores son cada vez más populares. Container Linux, antes conocido como CoreOS, es un sistema operativo Linux diseñado para implementaciones en contenedores simples. Esta descripción general y práctica de Container Linux le dirá más.

Los contenedores son cada vez más populares.  Container Linux, antes conocido como CoreOS, es un sistema operativo Linux diseñado para implementaciones en contenedores simples.  Esta descripción general y práctica de Container Linux le dirá más.
Anuncio

Los sistemas operativos Linux vienen en una variedad de sabores. Mientras que los sistemas operativos Linux, como Ubuntu, son bastante generales, otros apuntan a un nicho. Está el Kali Linux orientado a la seguridad. Distribuciones livianas como Xubuntu e incluso Hannah Montana Linux (!). Para el uso de escritorio, un sistema operativo Linux vail funciona bien. Sin embargo, para tareas especializadas como ejecutar un servidor, es mejor encontrar una versión personalizada.

Los contenedores son cada vez más populares. Container Linux, antes conocido como CoreOS, es un sistema operativo Linux diseñado para implementaciones en contenedores simples. Es uno de los sistemas operativos Linux de nicho más nuevos Los sistemas operativos Linux más nuevos para cada nicho Los sistemas operativos Linux más nuevos para cada nicho Los sistemas operativos Linux se actualizan constantemente, y algunos son más sustanciales que otros. No estoy seguro si actualizar? Vea estos nuevos sistemas operativos Linux y vea si debe probarlos. Lee mas . Echa un vistazo a esta visión general y práctica en Container Linux.

Hands-On con Container Linux: Conocimiento de fondo

Antes de sumergirse en Container Linux, comencemos con una breve descripción de la arquitectura del servidor. Container Linux está diseñado para implementaciones en clúster. Un despliegue agrupado suena bastante complejo, pero es bastante simple. Esencialmente, un grupo de computadoras se compone de múltiples servidores que funcionan en conjunto. Por lo tanto, funcionan como una unidad o sistema en lugar de múltiple. Además, las computadoras en un clúster presentan nodos, o servidores, que realizan la misma función. Por lo tanto, un nodo es una sola máquina, mientras que un clúster es un grupo de servidores que funcionan en conjunto.

Las implementaciones más comunes de Container Linux se encuentran dentro de los entornos de clúster. La distribución conocida anteriormente como CoreOS incluso incluye los medios para hacer girar un clúster desde una sola máquina. La característica definitoria de Container Linux, sin embargo, es su dependencia de los contenedores.

A diferencia de un sistema operativo de escritorio tradicional, todas las aplicaciones se ejecutan en contenedores. Si bien tanto las máquinas virtuales (VM) como los contenedores usan métodos de virtualización, los contenedores difieren. A diferencia de las máquinas virtuales, los contenedores utilizan el mismo kernel del sistema operativo que la máquina host. Debido a que las aplicaciones en contenedores y la máquina host usan el mismo kernel, las implementaciones de contenedores se benefician de una mayor eficiencia. En una configuración de máquina virtual, cada VM ejecuta una aplicación más un sistema operativo invitado. Esto se ejecuta sobre el sistema operativo y el hardware del host.

En cambio, las implementaciones en contenedores ejecutan aplicaciones en sus propios contenedores además del software de virtualización. Docker sigue siendo el software contenedor más popular, aunque chroot, LXC y Linux-VServer están entre las alternativas de Docker.

Hands-On con Container Linux: ¿Por qué utilizar contenedores?

OK, entonces los contenedores son un método de virtualización. ¿Por qué optar por un ambiente contenedorizado? Por lo general, los contenedores ofrecen un rendimiento mejorado. Al evitar los sistemas operativos por separado y, en su lugar, utilizar un kernel compartido, maximiza la eficiencia de la CPU, el almacenamiento y la memoria.

Como no necesita ejecutar varias instancias del sistema operativo como lo haría en una configuración de máquina virtual, puede ejecutar más contenedores. Las mejoras de rendimiento derivan de la necesidad de un sistema operativo único. Del mismo modo, puede crear contenedores más rápido que en un entorno de máquina virtual. Por lo tanto, los contenedores son más adecuados para mantener la agilidad y permitir la entrega continua y la integración continua.

El desarrollo ágil se concentra en la iteración y el factorizar la imprevisibilidad. Puede leer el Manifiesto ágil para obtener más información sobre la filosofía ágil. Sin embargo, a pesar de las ventajas de los contenedores, no es un método de virtualización perfecto. Como los contenedores comparten el kernel del sistema operativo host, existe un riesgo de seguridad. Cualquier vulnerabilidad o incumplimiento que afecte a un contenedor obtiene acceso al sistema operativo. Pero hay una solución alternativa para ejecutar aplicaciones en contenedor en un sistema operativo dentro de una máquina virtual. Esto garantiza que el sistema operativo de la máquina host esté aislado del sistema operativo del host singular del contenedor.

La contenedorización también requiere que los contenedores usen el mismo sistema operativo. Con las máquinas virtuales, cada aplicación obtiene su propio sistema operativo. Por lo tanto, no puede ejecutar aplicaciones diseñadas para Windows Server en un entorno Linux contenedorizado y viceversa.

Hands-On con Container Linux: ¿Qué es Container Linux?

Actualización CoreOS Core

CoreOS, o Container Linux como se llama ahora, es un sistema operativo Linux de código abierto. Es una distribución ligera destinada a despliegues agrupados. Más específicamente, CoreOS se concentra en implementaciones simples, confiables y escalables. No encontrarás un administrador de paquetes. En cambio, Container Linux requiere que todas las aplicaciones se ejecuten dentro de contenedores. Container Linux usa Chrome OS como su base. Por lo tanto, Container Linux sigue siendo bastante liviano. Para probar, ejecuté el sistema operativo Linux anteriormente conocido como CoreOS en una máquina virtual en una vieja laptop HP Envy m6-1205dx AMD A10 con envejecimiento. El consumo de recursos del sistema se mantuvo bastante bajo.

Debido a que Container Linux evita varias características tradicionales del sistema operativo Linux de escritorio, mantiene la distribución ligera. A diferencia de un sistema operativo de escritorio, no encontrará un administrador de paquetes. En cambio, todas las aplicaciones se ejecutan como contenedores Docker. Esto hace que la portabilidad y el aislamiento del servicio. Si quieres un entorno de escritorio, no tienes suerte. Container Linux carece de una interfaz gráfica de usuario. En cambio, todo está basado en línea de comandos. El panel de CoreUpdate ofrece información sobre el estado de la máquina, los servicios en ejecución y el estado del clúster. Pero solo está disponible como componente en la suscripción a Premium Managed Linux.

Arquitectura de contenedor Linux

Container Linux es liviano y está diseñado para contener y agrupar. Como no hay un entorno de escritorio, las funciones de configuración son diferentes a las de un sistema operativo Linux como CentOS o Ubuntu. Tras el arranque inicial, Container Linux carga un archivo de configuración de nube. Necesitará ingresar información en cloud-config. Esto puede ser un poco complicado, especialmente para aquellos que no están familiarizados con Cloud-Config. Pero es un archivo esencial que le da a Container Linux la capacidad de cargar servicios esenciales, modificar parámetros y administrar clusters.

Además, los etcd y fleet permanecen integrales a Container Linux. Ambos servicios se inician al inicio por defecto. Además, al arrancar, el archivo de configuración de la nube le permite al host saber cómo unirse a un clúster existente. El daemon de etcd distribuye y almacena datos para hosts dentro de un clúster. Es esencial para mantener las configuraciones y el descubrimiento del servicio. El daemon de la fleet es similar a un init distribuido. Este demonio se vincula con el sistema init para los hosts en un clúster y se encarga de tareas como la programación del servicio.

Cada sistema en un clúster de fleet ejecuta solo un daemon fleetd . Este daemon asume dos responsabilidades principales que actúan como agente y motor. Como motor, el daemon realiza las decisiones de programación. Mientras que el lado del agente ejecuta unidades. En el clúster de la flota, etcd es el único almacén de datos. Dicha información, como la presencia del clúster, el estado de la unidad y los archivos de la unidad, se almacenan en el daemon de etc. Además, es el medio para la comunicación entre el agente de la flota y el motor.

Hands-On con Container Linux: ¿Quién debería usarlo?

Container Linux es gratis de descargar, liviano y bastante simple de instalar en una máquina virtual. Cualquiera que necesite implementaciones rápidas, escalables y en contenedores debe optar por Container Linux. En su mayoría, los administradores de sistemas y administradores de bases de datos se beneficiarán al máximo de Container Linux. Como Container Linux carece de un entorno de escritorio, es el más adecuado para la administración de clúster y en una configuración de servidor. Si está buscando un sistema operativo de servidor Linux, Container Linux es uno de los 12 mejores sistemas de distribución de servidores Linux y los mejores sistemas operativos de servidores Linux, y ¿quién debería utilizarlos? Los 12 mejores sistemas operativos de servidores Linux y quién debería usarlos ¿Cómo construir un servidor? Linux es ideal, normalmente ofrece permisos mejorados, mayor flexibilidad y estabilidad. ¿Pero cuál elegirías? Consulte los 12 mejores sistemas operativos de servidores Linux y quién debería usarlos. Leer más s.

Air Pair presenta una excelente redacción sobre los incentivos de CoreOS. Este artículo menciona la alta disponibilidad, el mantenimiento del entorno de producción, el control de la versión del software y el etc como principales atractivos para el uso de Container Linux. En particular, también hay una comunidad de código abierto increíblemente dedicada. Container Linux está diseñado para usuarios experimentados de Linux. La documentación de ayuda, aunque integral, asume un grado moderado de familiaridad con Linux. Los usuarios principiantes y principiantes pueden tener algunos problemas con la instalación inicial.

Más específicamente, la configuración de la nube puede ser un desafío. En la sección de comentarios de un video de instalación de CoreOS, el usuario de YouTube Setyoso Nugroho declaró: "¡Buen tutorial! Muy confuso cuando se aprende la configuración del archivo # cloud-config en CoreOS. "Si bien la configuración no es terriblemente difícil, Container Linux asume una gran comprensión de las características de Linux como el editor VIM.

Hands-On con Container Linux: Cómo instalar

Hay muchos medios para instalar Container Linux. Según el sitio web de CoreOS, las plataformas oficiales incluyen Amazon EC2, Digital Ocean, Microsoft Azure, bare metal y OpenStack. Junto a los gustos de Oracle Linux, CentOS y Suse, CoreOS es uno de los pocos sistemas operativos Linux compatibles con Azure. ¿Después de todo, Microsoft Really Love Linux? ¿Microsoft realmente ama a Linux después de todo? Microsoft y Linux han tenido una relación tumultuosa. Con los años, los CEOs han expresado su deseo de que Linux desaparezca, pero en estos días la historia es diferente. ¿A Microsoft le gusta realmente Linux después de todo? Lee mas . Gracias a una comunidad vibrante, también se admiten plataformas como Packet, Rackspace, Brightbox, VirtualBox y VMware. Encontré que el método más fácil era instalar Container Linux en VirtualBox usando un archivo ISO. Aquí hay una guía rápida sobre cómo usar VirtualBox Cómo usar VirtualBox: Guía del usuario Cómo utilizar VirtualBox: Guía del usuario Con VirtualBox puede instalar y probar fácilmente varios sistemas operativos. Le mostraremos cómo configurar Windows 10 y Ubuntu Linux como una máquina virtual. Lee mas .

Configurando VirtualBox

Abra VirtualBox y se le pedirá un nombre de máquina virtual, tipo de sistema operativo y versión. Llamé a los míos simplemente como CoreOS. Para el tipo, seleccione Linux. Como versión, use Linux 2.6 / 3.x / 4 / x (64-bit). Haga clic en Siguiente.

Inicio de CoreOS

Ahora necesitarás asignar tu RAM. CoreOS sugiere un mínimo de 1024 MB de RAM.

CoreOS RAM

Después de seleccionar su RAM, necesitará agregar un disco duro virtual. Use la opción crear un disco duro virtual ahora.

Crear VHD CoreOS

En la siguiente pantalla, se le pedirá un tipo de archivo de disco duro. Seleccione VDI o imagen de disco de VirtualBox.

CoreOS VDI

Después de eso, configura tu espacio de almacenamiento. Recomiendo usar un archivo de disco duro asignado dinámicamente.

CoreOS Dynamic

A continuación, elija la ubicación y el tamaño del archivo. Dejé el CoreOS predeterminado como nombre y opté por un tamaño de datos de archivo de 8 GB.

Asignación de tamaño de archivo CoreOS

Con su máquina virtual CoreOS VirtualBox correctamente configurada, continúe y haga clic en el botón verde de Inicio.

Inicio de CoreOS

Una vez que haga clic en Inicio, deberá seleccionar un disco de inicio. Navega a la carpeta donde tienes tu CoreOS ISO y continúa.

Configurando Container Linux

Después de iniciar su CoreOS ISO, Container Linux comienza a cargarse. Eventualmente verás una línea que da tu versión de CoreOS y una línea de comando que dice:

 core@localhost 

Escribir:

 sudo openssl passwd -1>cloud-config-file 

CoreOS Passwd Config

La línea de comando presenta una advertencia que si no puede abrir el archivo de configuración. Ingrese su contraseña deseada y continúe. Luego ingrese:

 cat cloud-config-file 

CoreOS Cat Cloud Config

Esto devuelve una cadena larga y crea un nuevo archivo de configuración de la nube. Ahora abre la configuración de la nube en un editor visual:

 vi cloud-config-file 

CoreOS VI

Esto carga un archivo de configuración de nube que puede editar. CoreOS incluye un archivo de ejemplo de configuración de nube avanzada:

Ejemplo de configuración de nube de CoreOS

El mío se veía así:

 #cloud-config users: moe passwd: [SSL password] groups: - sudo - docker 

CoreOS Cloud Config Ex

Puede verificar su archivo de configuración de nube ingresando:

 cat cloud-config-file 

CoreOS Check Cloud Config

Esto devuelve su archivo de configuración. Si todo se ve bien, proceda con la instalación de CoreOS:

 sudo coreos-install -d /dev/sda -C stable -c cloud-config-file 

Final de instalación de CoreOS

Verás un mensaje que dice que CoreOS se está descargando, escribiendo y verificando. Tan pronto como eso termine, verá un mensaje que dice "¡éxito! CoreOS [versión] está instalado en / dev / sda. "

Éxito de CoreOS

Apague su máquina virtual CoreOS y luego vuelva a iniciarla. Cuando vuelva a iniciar, asegúrese de desmontar el CoreOS ISO o el CD en vivo se ejecutará nuevamente.

CoreOS se cargará y aparecerá un mensaje de inicio de sesión en la línea de comando:

 localhost login: 

Inicio de sesión final de CoreOS

Ingrese su nombre de usuario y contraseña. Esto cargará un mensaje que dice "Container Linux por CoreOS [versión]" y una nueva línea de comando.

Inicio de sesión final CoreOS

Hands-On con Container Linux: próximos pasos

Ahora que Container Linux by CoreOS está instalado correctamente, puede comenzar a configurar contenedores y clústeres. La documentación de CoreOS presenta una excelente guía de inicio rápido. Hay información sobre el descubrimiento de servicios usando etcd, así como una sección sobre administración de contenedores con Docker. Realicé algunas pruebas rápidas, como un tirón Docker "Hello World". Además, instalé una imagen de Plex Docker porque soy un gran aficionado al servidor de medios. Finalmente, configuré una flota para la administración del clúster.

Lo primero que debes hacer es configurar los componentes principales de Container Linux:

  • Etc
  • Estibador
  • Flota

Al configurar estos tres fundamentos principales, estará listo para el descubrimiento de servicios, la administración de clusters y la configuración de contenedores. Luego puede comenzar a contener aplicaciones y probar aplicaciones de escritorio en un contenedor Docker seguro Cómo probar de manera segura aplicaciones de escritorio en un contenedor seguro con Docker Cómo probar de manera segura aplicaciones de escritorio en un contenedor seguro con Docker Docker es una plataforma popular para desarrollar y probar aplicaciones basadas en servidor. ¿Pero sabía que también puede usarlo para ejecutar de forma segura nuevos programas en su escritorio? Lee mas .

Hands-On con Container Linux: Pensamientos finales

No uso contenedores a menudo, pero la implementación simplificada de Container Linux. La documentación es excelente con archivos de configuración de muestra. Tenga en cuenta que para los principiantes, varios tutoriales de instalación de video no oficiales facilitan las instalaciones de CoreOS. Mientras que CoreOS afirma que Container Linux es liviano, al principio era escéptico. Sin embargo, inventé Container Linux en una máquina virtual con un consumo de recursos bastante bajo. Y como quería probar si Container Linux era realmente liviano, utilicé mi vieja laptop HP y no encontré problemas.

Sin embargo, algunos pasos en la instalación inicial no son muy "amigables para principiantes". Instalar y configurar Container Linux requiere una sólida familiaridad con Linux. Cabe destacar que no probé el panel de CoreUpdate, que CoreOS ofrece como una función premium paga. Si bien no tengo problemas para usar la línea de comandos, un entorno gráfico para el monitoreo sería una buena adición.

Los administradores del sistema y los administradores de la base de datos se benefician más de Container Linux. Sin embargo, para los servidores domésticos, es un medio simple y liviano de crear un entorno agrupado. Además, con Container Linux puede hacer girar un clúster desde una sola máquina. Pero Container Linux es una gran introducción al trabajo con contenedores. Si está tratando de obtener más información sobre Docker y sus contenedores, Container Linux funciona muy bien en una máquina virtual y le ofrece todos los recursos que necesita para comenzar.

Es una excelente solución lista para usar para los novatos de contenedores además de los experimentados ingenieros, administradores de sistemas y administradores de bases de datos de DevOps. En definitiva, Container Linux by CoreOS es un medio simple de crear un entorno en contenedor escalable, eficiente y en contenedores.

¿Estás usando CoreOS? ¿Planeas? ¡Déjanos saber cómo estás contenedorizando en Linux en la sección de comentarios a continuación!

In this article