Revisión: Photon OS de VMware brilla para los contenedores Docker

Con el proyecto de código abierto Photon, VMware espera construir una comunidad en torno a la práctica de ejecutar aplicaciones en contenedores en entornos virtuales. Photon es un término general para múltiples proyectos que incluyen formas de implementar contenedores en una VM, utilizando Photon OS, así como formas de implementar contenedores como VM en la infraestructura de VMware.

Photon OS es un host contenedor de Linux de pequeño tamaño diseñado para ejecutarse en máquinas virtuales y ajustado para hipervisores VMware. VMware ciertamente ha adoptado el movimiento Docker a lo grande, y no solo en VMware. Puede ejecutar Photon OS en otros hipervisores, incluidos Google Compute Engine y Amazon EC2. Sin embargo, no puede instalar Photon OS en un servidor físico.

Photon OS no hace suposiciones sobre el conjunto de herramientas del contenedor, aunque Docker está instalado de forma predeterminada. Los administradores pueden colocar las herramientas de administración de contenedores de su elección sobre el sistema operativo base utilizando el administrador de paquetes Photon.

Administración del sistema Photon OS

En Photon OS, la administración de paquetes se realiza con TDNF (Tiny Dandified Yum), una creación de VMware de código abierto que ofrece administración de paquetes compatible con DNF sin la gran huella de Python de Yum.

VMware proporciona sus propios repositorios compatibles con Yum para administrar paquetes y firma paquetes con firmas GPG (GNU Privacy Guard). Esto ayuda a que el sistema sea seguro de forma predeterminada. La verificación de la firma se realiza automáticamente, por lo que los administradores del sistema o las secuencias de comandos no requieren pasos adicionales. Los repositorios de Photon OS están "seleccionados", así que no espere encontrar todos los paquetes disponibles para descargar.

Como Photon OS 1.0 Revisión 2 viene con una versión anterior de Docker, lo primero que quería hacer era probar una actualización. Esto fue sin problemas y, en cuestión de un minuto, todos mis contenedores se estaban ejecutando en la última versión de Docker.

Photon OS utiliza el sistema de inicio Systemd, por lo que los administradores tendrán que aprender ese tipo de gestión del sistema si aún no lo han hecho. La seguridad es un tema central y el sistema incluye SE Linux para mejorar el aislamiento de contenedores. Un firewall (iptables) está activado de manera predeterminada y los paquetes de interfaces externas (excepto el tráfico SSH) se eliminan, por lo que los administradores deberán agregar reglas para permitir el tráfico del mundo exterior.

En su mayoría, esta seguridad predeterminada no se interpuso, excepto cuando se realizó un cambio obligatorio en la contraseña de root desde la instalación limpia. Cualquier error arroja al usuario fuera del shell y vuelve a un indicador de inicio de sesión. Esta parte podría haber sido un poco más fácil de usar.

Instalación y configuración de Photon OS

Instalé Photon OS usando la máquina virtual descargable. Como era de esperar, esto fue sencillo en la configuración de mi VMware Workstation Pro. El sistema detectó la descarga, me preguntó si quería aceptar los parámetros de hardware y arrancó de inmediato. Photon OS también está disponible como ISO y como imágenes para las nubes de Amazon y Google. Después de iniciar sesión como root y configurar inicios de sesión sin contraseña, estaba listo y funcionando.

La instalación mínima, como otros hosts de contenedores de Linux, no contiene casi nada, ni siquiera sudo, aunque sí incluye SSH. Los administradores que implementen flotas de máquinas virtuales Photon OS querrán crear un script para la configuración y, para eso, Photon OS utiliza Cloud-Init, un conjunto de scripts y utilidades de Python para facilitar la implementación y la configuración de la nube.

Incluso para un sistema operativo para contenedores Docker, configurar Photon OS fue lo más fácil posible. Parece que hacer que Nginx se ejecute en un contenedor es el "Hola mundo" para Docker. Aquí está en Photon OS:

# systemctl start docker

# systemctl enable docker

# docker run –d –p 80:80 vmwarecna/nginx

Almacenamiento y redes de Photon OS

Gracias a la ejecución en un entorno de hardware virtualizado, los dispositivos de almacenamiento aparecen como hardware normal y las operaciones estándar del sistema de archivos están disponibles en Photon OS. Puede agregar un nuevo disco (virtual) a la máquina y montarlo donde sea necesario, como cualquier otro disco. El sistema de archivos Photon OS incluye Btrfs y Ext4. El sistema de archivos raíz predeterminado es Ext4. Los ejemplos de Btrfs son pocos y Ext4 parece predominar.

El almacenamiento remoto está a cargo de las utilidades Photon NFS. Ninguno de los otros Linux orientados a contenedores que he usado (Alpine, RancherOS, CoreOS y Atomic Host) incluía instrucciones para NFS, así que me alegré de ver que VMware documentó la práctica. NFS todavía está vivo y funcionando en entornos empresariales, y espero que el montaje de unidades NFS sea un caso de uso común para los usuarios de Photon OS.

La única opción de almacenamiento inusual en Photon OS es la elección de sistemas de archivos de solo lectura o de lectura y escritura, pero esto realmente depende del caso de uso, y me alegré de tener la opción.

La conexión en red en Photon OS utiliza las utilidades iproute2, aunque se incluyen los comandos tradicionales ipconfigy netstat. Las instalaciones de Photon OS no incluyen ninguna configuración de red de contenedores por defecto, pero muchas configuraciones populares están documentadas: Docker, Rocket, DCOS, etc. Desde una perspectiva de red, Photon OS es como cualquier otra versión de Linux y no hubo sorpresas.

Actualizaciones y degradaciones de Photon OS

Al igual que Atomic Host de Red Hat, Photon OS utiliza rpm-ostree como un sistema híbrido de gestión de imágenes / paquetes, con su propio servidor OSTree. Comprender los conjuntos de comandos, la terminología y las mejores prácticas rpm-ostree llevará algún tiempo a los administradores. Además de aprender un nuevo conjunto de comandos para aprender, los administradores deberán conocer los directorios de solo lectura y asegurarse de que las aplicaciones no escriban archivos en ellos. Por ejemplo, el directorio / usr es de solo lectura cuando se usa rpm-ostree. El perfil rpm-ostree es una opción de tiempo de instalación, por lo que los usuarios pueden seleccionar entre TDNF o rpm-ostree para la gestión de paquetes. La documentación es buena sobre este tema.

Al desarrollar Photon OS, VMware pudo eliminar todo tipo de módulos heredados del kernel de Linux. Dado que VMware controla todo el hardware y la pila del sistema operativo, también pudo ajustar los búferes, la contabilidad del tiempo y compilar indicadores para eliminar las redundancias entre el tiempo de ejecución del contenedor y el hipervisor. Para las organizaciones que invierten en la virtualización de VMware, el proyecto Photon debe estar en la parte superior de la lista para investigar.