Jack Wallen prueba el último sistema operativo específico para contenedores, openSUSE Micro, y comparte sus pensamientos (buenos y malos) contigo.
openSUSE Micro es una nueva distribución de Linux orientada a alojar cargas de trabajo en contenedores con administración y parches automatizados. Con este sistema operativo de código abierto diseñado específicamente, tendrá un entorno diseñado específicamente para cargas de trabajo que se beneficiarían de las actualizaciones transaccionales. Esta distribución de lanzamiento continuo podría ser justo lo que su empresa necesita.
openSUSE Micro pretende ser predecible, escalable, confiable y flexible. Con esta nueva versión de las implementaciones en contenedores, no es necesario que aprenda un nuevo formato de paquete (ya que utiliza RPM estándar de openSUSE), no hay limitaciones de tamaño y se puede implementar de manera fácil y repetida.
Instalé openSUSE Micro para ver qué era qué. Mi impresión fue mixta, pero dado que esta plataforma es bastante nueva, eso es de esperar. Vamos a sumergirnos.
Funciones del sistema
Una de las primeras desviaciones de openSUSE normal que encontrará es la de los roles del sistema. Durante la instalación, puede elegir qué función desempeñará el sistema operativo. Sin embargo, a primera vista, esos roles son un poco confusos.
- MicroOS :Diseñado para sistemas de un solo propósito y optimizado para grandes despliegues. No proporciona ningún servicio por defecto. Esto instalará el sistema operativo sin un entorno de escritorio.
- Host de contenedor de MicroOS :Optimizado para contenedores e instala Podman. Esto también se instala sin un entorno de escritorio, pero instala todo lo necesario para implementar contenedores.
- MicroOS Desktop (GNOME) :Igual que MicroOS Container Host, solo que con un entorno de escritorio, actualizaciones y reversiones automáticas. Esta función del sistema es beta.
- MicroOS Desktop (KDE) :Igual que MicroOS Container Host, solo que con un entorno de escritorio, actualizaciones y reversiones automáticas. Este rol del sistema es alfa.
- MicroOS con certificación remota (agente) :Igual que MicroOS pero con agente de atestación remota. La atestación remota es un método en el que un host autentica configuraciones de hardware y software en un servidor remoto. Esto instala la parte del agente.
- MicroOS con certificación remota (verificador) :Igual que MicroOS pero con verificador de atestación remota. La atestación remota es un método en el que un host autentica configuraciones de hardware y software en un servidor remoto. Esto instala la parte del verificador.
Opté por instalar la función del sistema MicroOS Desktop (GNOME), principalmente para ver cómo le iba. La instalación no fue perfecta, ya que tuve que seguir presionando Reintentar ya que varios paquetes fallaron al instalarse en el primer intento.
Código abierto:Cobertura de lectura obligatoria
Al final, terminé con una instalación completa y funcional con un entorno de escritorio Vanilla GNOME. Debido a que instalé openSUSE Micro como una máquina virtual de VirtualBox, no pude instalar Guest Additions ni ejecutar la máquina virtual con un controlador de gráficos diferente, lo que significaba que la resolución del escritorio era bastante pequeña. Debido a esto, lo mejor que puedes hacer si planeas optar por la ruta virtual es instalar sin el entorno de escritorio.
Otro problema que descubrí desde el principio es que el sistema de archivos está montado como de solo lectura, por lo que instalar software no es una opción. Sin embargo, la buena noticia es que el uso de la biblioteca en tiempo de ejecución del contenedor Podman funciona exactamente como se esperaba.
Dejame explicar. El sistema de archivos de solo lectura se realiza intencionalmente por motivos de seguridad. Debe recordar que openSUSE Micro no está diseñado para usarse como un sistema operativo estándar, sino para implementaciones en contenedores y similares. Por eso, no debería necesitar montar el sistema de archivos en modo lectura/escritura. De hecho, no desea que el sistema de archivos se monte de ninguna otra forma que no sea de solo lectura. Entonces, desde el principio, me siento seguro con openSUSE Micro como plataforma para contenedores.
Pero hay una trampa. Prefiero administrar mis contenedores a través de una GUI, pero mi administrador de referencia, Portainer, aún no es compatible con Podman, y debido a que el sistema se inicia en modo de solo lectura, no pude instalar Cockpit. Hay una forma de evitar eso.
Una vez que haya arrancado openSUSE Micro, edite fstab con el comando:
vi /etc/fstab
Querrás buscar la línea que termina en ro
y cambia eso a rw
. Una vez que haya hecho eso, guarde el archivo, reinicie la máquina e instale Cockpit con soporte Podman usando el comando:
sudo zypper install cockpit cockpit-podman
Eso debería haber funcionado. Sin embargo, de manera similar a lo que experimenté durante la instalación del sistema operativo, el paquete cockpit-bridge no se pudo instalar sin ninguna indicación de por qué. No importa cómo intenté instalarlo, no funcionó.
Eso está bien porque puedo trabajar con Podman desde la línea de comandos. Además, realmente no desea instalar nada adicional en una plataforma orientada a implementaciones de contenedores escalables. Esto debe permanecer lo más mínimo posible. Mi único propósito era ver todo lo que podía hacer con openSUSE Micro. Entonces, en lugar de depender de una GUI, opté por probar una implementación rápida. No voy a mentir, Podman no es tan fácil de usar como Docker. Por ejemplo, puedo implementar un sitio de WordPress con facilidad usando Docker. Con Podman, no tanto.
Aun así, opté por hacer una implementación NGINX simple con Podman con los comandos:
podman pull docker.io/nginx
podman run -d --name docker-nginx -p 8080:80 docker.io/nginx
Ese despliegue se realizó sin problemas, pero es muy básico. Para llevar esto un paso más allá, implementé Joomla con Podman usando los siguientes comandos:
podman pod create --name mypod --publish 8080:80
podman run -dit --pod mypod -e MYSQL_DATABASE=joomla -e MYSQL_USER=joomlauser -e MYSQL_PASSWORD=joomlapassword -e MYSQL_ROOT_PASSWORD=rootpw --name mariadb docker.io/library/mariadb
podman run -dit --pod mypod -e JOOMLA_DB_HOST=127.0.0.1 -e JOOMLA_DB_USER=joomlauser -e JOOMLA_DB_PASSWORD=joomlapassword -e JOOMLA_DB_NAME=joomla --name joomla docker.io/library/joomla
Joomla estaba listo para la instalación de la GUI y funcionaba como un campeón. Me sorprendió la capacidad de respuesta de la implementación de Joomla, que es un testimonio del rendimiento de openSUSE Micro incluso con un escritorio instalado.
Al final, creo que openSUSE Micro es una excelente opción para aquellos que buscan implementar un sistema operativo diseñado específicamente para aplicaciones en contenedores. Es pequeño, extremadamente rápido y seguro.
Descarga una ISO de openSUSE Micro y pruébalo. Tengo la sensación de que podría convertirse en su plataforma preferida para la implementación de contenedores.