Bottlerocket 1.1.0 llega con Kernel 5.10, SELinux, mejoras y mas

mayo 11, 2021 , 0 Comments

Bottlerocket

Se acaba de dar a conocer la liberación de la nueva versión de la distribución de Linux «Bottlerocket 1.1.0» la cual es desarrollada con la participación de Amazon para ejecutar contenedores aislados de manera eficiente y segura.

La distribución y los componentes de control están escritos en el lenguaje Rust y se distribuyen bajo las licencias MIT y Apache 2.0. Admite la ejecución de Bottlerocket en los clústeres de Amazon ECS y AWS EKS Kubernetes, así como la creación de versiones y revisiones personalizadas que permiten diferentes herramientas de tiempo de ejecución y orquestación de contenedores.

La distribución proporciona una imagen de sistema indivisible actualizada de forma automática y atómica que incluye el kernel de Linux y un entorno de sistema mínimo que incluye solo los componentes necesarios para ejecutar contenedores.

El entorno utiliza el gestor del sistema systemd, biblioteca Glibc, Buildroot, gestor de arranque GRUB, un runtime para containerd, contenedores de la plataforma Kubernetes, AWS-iam-autenticador y el agente de Amazon ECS.

Las herramientas de orquestación de contenedores se envían en un contenedor de administración separado que está habilitado de manera predeterminada y administrado a través de la API y el Agente de AWS SSM. La imagen base carece de un shell de comandos, servidor SSH e idiomas interpretados (por ejemplo, sin Python o Perl): las herramientas para el administrador y las herramientas de depuración se mueven a un contenedor de servicios separado, que está deshabilitado de manera predeterminada.

La diferencia clave con respecto a distribuciones similares como Fedora CoreOS, CentOS/Red Hat Atomic Host es el enfoque principal en proporcionar la máxima seguridad en el contexto de fortalecer el sistema contra posibles amenazas, lo que dificulta la explotación de vulnerabilidades en los componentes del sistema operativo y aumenta el aislamiento de contenedores. Los contenedores se crean utilizando los mecanismos estándar del kernel de Linux: cgroups, namespaces y seccomp.

La partición root se monta como de solo lectura y la partición de 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 permanentemente la configuración, usar la API o mover la funcionalidad a contenedores separados.

Principales novedades de Bottlerocket 1.1.0

En esta nueva versión de la distribución se ha incluido al kernel de Linux 5.10 con la finalidad de poder usarlo en nuevas variantes junto con las dos nuevas versiones de las distribuciones aws-k8s-1.20 y vmware-k8s-1.20 compatibles con Kubernetes 1.20.

En estas variantes, así como en la versión actualizada de aws-ecs-1, está involucrado un modo de bloqueo que está configurado en «integridad» de forma predeterminada (bloquea la capacidad de realizar cambios en el kernel en ejecución desde el espacio del usuario). Se eliminó el soporte para aws-k8s-1.15 basado en Kubernetes 1.15.

Además, Amazon ECS ahora admite el modo de red awsvpc, que le permite asignar interfaces de red y direcciones IP internas independientes para cada tarea.

Se agregaron configuraciones para administrar varias configuraciones de Kubernetes TLS bootstrap, incluidos QPS, límites de grupo y la configuración de Kubernetes cloudProvider para permitir el uso fuera de AWS.

En el contenedor de arranque se proporciona con SELinux para restringir el acceso a los datos del usuario, asi como una división a las reglas de política de SELinux para sujetos de confianza.

De los demás cambios que se destacan de la nueva version:

  • Ahora se puede hacer que Kubernetes cluster-dns-ip sea opcional para admitir el uso fuera de AWS
  • Se cambiaron los parámetros para respaldar un escaneo CIS saludable
  • Se añadió la utilidad resize2fs.
  • Se generó un ID de máquina estable para invitados de VMware y ARM KVM
  • Se habilitó el modo de bloqueo del kernel de «integridad» para la variante de vista previa de aws-ecs-1
  • Eliminar la anulación del tiempo de espera de inicio del servicio predeterminado
  • Evitar que los contenedores de arranque se reinicien
  • Nuevas reglas de udev para montar CD-ROM solo cuando hay medios presentes
  • Soporte para la región de AWS ap-noreste-3: Osaka
  •  URI de contenedor de pausa con variables de plantilla estándar
  • Capacidad poder obtener IP de DNS del clúster cuando esté disponible

Finalmente si estás interesado en poder conocer más al respecto sobre esta nueva versión liberada o estás interesado en la distribución, puedes consultar los detalles en el siguiente enlace.


Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.