Lanzamento de Bottlerocket 1.2, unha distribución baseada en contedores illados

Está dispoñible o lanzamento da distribución Linux Bottlerocket 1.2.0, desenvolvida coa participación de Amazon para o lanzamento eficiente e seguro de contedores illados. As ferramentas e compoñentes de control da distribución están escritos en Rust e distribúense baixo as licenzas MIT e Apache 2.0. Admite a execución de Bottlerocket en clusters de Amazon ECS, VMware e AWS EKS Kubernetes, así como a creación de compilacións e edicións personalizadas que permiten o uso de varias ferramentas de orquestración e tempo de execución para contedores.

A distribución proporciona unha imaxe do sistema indivisible actualizada atómica e automática que inclúe o núcleo de Linux e un ambiente mínimo do sistema, incluíndo só os compoñentes necesarios para executar os contedores. O ambiente inclúe o xestor de sistema systemd, a biblioteca Glibc, a ferramenta de compilación Buildroot, o cargador de arranque GRUB, o configurador de rede malvado, o tempo de execución containerd para contedores illados, a plataforma de orquestración de contedores Kubernetes, o aws-iam-authenticator e o Amazon. Agente ECS.

As ferramentas de orquestración de contedores veñen nun contedor de xestión separado que está activado de forma predeterminada e xestionado a través da API e do axente AWS SSM. A imaxe base carece de shell de comandos, servidor SSH e linguaxes interpretadas (por exemplo, sen Python ou Perl): as ferramentas administrativas e as ferramentas de depuración colócanse nun contedor de servizos separado, que está desactivado por defecto.

A diferenza fundamental con distribucións similares, como Fedora CoreOS, CentOS/Red Hat Atomic Host é o foco principal en proporcionar a máxima seguridade no contexto de reforzar a protección do sistema contra posibles ameazas, facendo máis difícil explotar as vulnerabilidades dos compoñentes do sistema operativo e aumentar o illamento dos contedores. . Os contedores créanse usando mecanismos estándar do núcleo de Linux: cgroups, namespaces e seccomp. Para un illamento adicional, a distribución usa SELinux en modo de "aplicación".

A partición raíz está montada de só lectura, e a partición de configuración /etc móntase en tmpfs e restablece o seu estado orixinal despois dun reinicio. Non se admite a modificación directa dos ficheiros do directorio /etc, como /etc/resolv.conf e /etc/containerd/config.toml. Para gardar a configuración de forma permanente, debes usar a API ou mover a funcionalidade a contedores separados. O módulo dm-verity úsase para verificar criptográficamente a integridade da partición raíz e, se se detecta un intento de modificar datos a nivel de dispositivo de bloque, o sistema reinicia.

A maioría dos compoñentes do sistema están escritos en Rust, que ofrece funcións seguras para a memoria para evitar vulnerabilidades causadas por accesos á memoria posteriores á liberación, desreferencias de punteiros nulos e desbordamentos do búfer. Cando se crea de forma predeterminada, os modos de compilación "-enable-default-pie" e "-enable-default-ssp" úsanse para activar a aleatorización do espazo de enderezos de ficheiros executables (PIE) e a protección contra desbordamentos de pila mediante a substitución canaria. Para paquetes escritos en C/C++, as marcas “-Wall”, “-Werror=format-security”, “-Wp,-D_FORTIFY_SOURCE=2”, “-Wp,-D_GLIBCXX_ASSERTIONS” e “-fstack-clash” son adicionalmente protección activada".

Na nova versión:

  • Engadido soporte para espellos de rexistro de imaxes de contedores.
  • Engadida a posibilidade de usar certificados autoasinados.
  • Opción engadida para configurar o nome de host.
  • Actualizouse a versión predeterminada do contedor administrativo.
  • Engadiuse a configuración de topologyManagerPolicy e topologyManagerScope para kubelet.
  • Engadido soporte para a compresión do núcleo usando o algoritmo zstd.
  • Ofrécese a posibilidade de cargar máquinas virtuais en VMware no formato OVA (Open Virtualization Format).
  • A versión de distribución aws-k8s-1.21 actualizouse con compatibilidade con Kubernetes 1.21. O soporte para aws-k8s-1.16 foi descontinuado.
  • Versións e dependencias de paquetes actualizadas para a linguaxe Rust.

Fonte: opennet.ru

Engadir un comentario