Bottlerocket 1.7.0 llega con actualizaciones y solución a un error con los controladores Nvidia
Hace poco se dio a conocer el lanzamiento de la nueva versión de la distribución de Linux «Bottlerocket 1.7.0», desarrollada con la participación de Amazon, para ejecutar contenedores aislados de forma eficaz y segura.
Para quienes desconocen de Bottlerocket, deben saber que esta es una distribución que proporciona una imagen de sistema indivisible actualizada, atómica y automáticamente que incluye el kernel de Linux y un entorno de sistema mínimo que incluye solo los componentes necesarios para ejecutar contenedores.
Sobre Bottlerocket
El entorno utiliza el administrador del sistema systemd, la biblioteca Glibc, la herramienta de compilación Buildroot, el cargador de arranque GRUB, el tiempo de ejecución del contenedor aislado de contenedores, la plataforma de orquestación de contenedores de Kubernetes, el autenticador aws-iam y el agente de Amazon ECS.
Las herramientas de orquestación de contenedores vienen en un contenedor de administración independiente que está habilitado de forma predeterminada y se administra a través de la API y el agente de AWS SSM. La imagen base carece de un shell de comandos, un servidor SSH y lenguajes interpretados (por ejemplo, Python o Perl): las herramientas de administración y depuración se mueven a un contenedor de servicios separado , que está deshabilitado de forma predeterminada.
La diferencia clave con distribuciones similares como Fedora CoreOS, CentOS/Red Hat Atomic Host es el enfoque principal en brindar la máxima seguridad en el contexto de fortalecer la protección del sistema contra posibles amenazas, lo que complica la explotación de vulnerabilidades en los componentes del sistema operativo y aumenta el aislamiento del contenedor.
Los contenedores se crean utilizando los mecanismos habituales del kernel de Linux: cgroups, espacios de nombres y seccomp. Para un aislamiento adicional, la distribución usa SELinux en modo de «aplicación».
La partición root se monta en modo de solo lectura y la partición con la configuración /etc se monta en tmpfs y se restaura a su estado original después de reiniciar. No se admite la modificación directa de archivos en el directorio /etc, como /etc/resolv.conf y /etc/containerd/config.toml; para guardar la configuración de forma permanente, debe usar la API o mover la funcionalidad a contenedores separados.
Para la verificación criptográfica de la integridad de la partición raíz, se utiliza el módulo dm-verity y, si se detecta un intento de modificar los datos a nivel del dispositivo de bloque, el sistema se reinicia.
La mayoría de los componentes del sistema están escritos en Rust, que proporciona herramientas seguras para la memoria para evitar vulnerabilidades causadas por abordar un área de memoria después de que se haya liberado, desreferenciar punteros nulos y desbordamientos de búfer.
Al compilar, los modos de compilación «–enable-default-pie» y «–enable-default-ssp» se usan de forma predeterminada para habilitar la aleatorización del espacio de direcciones ejecutable ( PIE ) y la protección contra desbordamientos de pila a través de la sustitución de etiquetas canary.
¿Qué hay de nuevo en Bottlerocket 1.7.0?
En esta nueva versión que se presenta de la distribucion, uno de los cambios que se destaca es que al instalar paquetes RPM, se proporciona para generar una lista de programas en formato JSON y montarla en el contenedor del host como el archivo /var/lib/bottlerocket/inventory/application.json para obtener información sobre los paquetes disponibles.
Tambien se destaca en Bottlerocket 1.7.0 la actualización de los contenedores «admin» y «control», asi como tambien de las versiones de paquetes y dependencias para Go y Rust.
Por otra parte, se destacan las versiones actualizadas de paquetes con programas de terceros, ademas de que se corrigieron los problemas de configuración de tmpfilesd para kmod-5.10-nvidia y que al instalar tuftool, las versiones de dependencia están vinculadas.
Finalmente para quienes estén interesados en poder conocer más al respecto sobre esta distribución, deben saber que el kit de herramientas y los componentes de control de la distribución están escritos en Rust y se distribuyen bajo las licencias MIT y Apache 2.0.
Bottlerocket admite la ejecución de clústeres de Amazon ECS, VMware y AWS EKS Kubernetes, así como la creación de compilaciones y ediciones personalizadas que permiten diferentes orquestaciones y herramientas de tiempo de ejecución para contenedores.
Puedes consultar los detalles, en el siguiente enlace.