Available ang Bottlerocket 1.8, isang pamamahagi batay sa mga nakahiwalay na lalagyan

Ang paglabas ng Bottlerocket 1.8.0 Linux distribution ay nai-publish, na binuo kasama ang partisipasyon ng Amazon upang epektibo at ligtas na magpatakbo ng mga nakahiwalay na lalagyan. Ang toolkit at mga bahagi ng kontrol ng pamamahagi ay nakasulat sa Rust at ipinamahagi sa ilalim ng mga lisensya ng MIT at Apache 2.0. Sinusuportahan nito ang pagpapatakbo ng Bottlerocket sa mga cluster ng Amazon ECS, VMware, at AWS EKS Kubernetes, pati na rin ang paglikha ng mga custom na build at edisyon na nagbibigay-daan para sa iba't ibang mga tool sa orkestrasyon at runtime para sa mga container.

Ang pamamahagi ay nagbibigay ng atomically at awtomatikong na-update na hindi mahahati na imahe ng system na kinabibilangan ng Linux kernel at isang minimal na kapaligiran ng system na kinabibilangan lamang ng mga sangkap na kailangan para magpatakbo ng mga container. Kasama sa kapaligiran ang systemd system manager, ang Glibc library, ang Buildroot build tool, ang GRUB bootloader, ang masamang network configurator, ang containerd isolated container runtime, ang Kubernetes container orchestration platform, ang aws-iam-authenticator, at ang Amazon ECS agent .

Ang mga tool sa orchestration ng container ay nasa isang hiwalay na lalagyan ng pamamahala na naka-enable bilang default at pinamamahalaan sa pamamagitan ng API at AWS SSM Agent. Ang batayang imahe ay walang command shell, isang SSH server, at mga na-interpret na wika (halimbawa, walang Python o Perl) - ang mga tool sa administratibo at pag-debug ay inililipat sa isang hiwalay na lalagyan ng serbisyo, na hindi pinagana bilang default.

Ang pangunahing pagkakaiba sa mga katulad na distribusyon gaya ng Fedora CoreOS, CentOS/Red Hat Atomic Host ay ang pangunahing pagtutok sa pagbibigay ng maximum na seguridad sa konteksto ng pagpapalakas ng proteksyon ng system laban sa mga posibleng banta, pagpapakumplikado sa pagsasamantala ng mga kahinaan sa mga bahagi ng OS at pagtaas ng pagkakahiwalay ng container. Ang mga lalagyan ay nilikha gamit ang mga regular na mekanismo ng Linux kernel - cgroups, namespaces at seccomp. Para sa karagdagang paghihiwalay, ang pamamahagi ay gumagamit ng SELinux sa "pagpapatupad" na mode.

Ang root partition ay naka-mount sa read-only na mode, at ang partition na may mga setting ng /etc ay naka-mount sa tmpfs at naibalik sa orihinal nitong estado pagkatapos ng restart. Ang direktang pagbabago ng mga file sa direktoryo ng /etc, gaya ng /etc/resolv.conf at /etc/containerd/config.toml, ay hindi suportado - upang permanenteng i-save ang mga setting, dapat mong gamitin ang API o ilipat ang functionality sa hiwalay na mga container. Para sa cryptographic na pag-verify ng integridad ng root partition, ginagamit ang dm-verity module, at kung may nakitang pagtatangkang baguhin ang data sa block device level, magre-reboot ang system.

Karamihan sa mga bahagi ng system ay nakasulat sa Rust, na nagbibigay ng mga tool na ligtas sa memorya upang maiwasan ang mga kahinaan na dulot ng pagtugon sa isang lugar ng memorya pagkatapos itong mapalaya, pag-derefer ng mga null pointer, at pag-overrun ng buffer. Kapag bumubuo, ang mga compilation mode na "--enable-default-pie" at "--enable-default-ssp" ay ginagamit bilang default para paganahin ang executable address space randomization (PIE) at proteksyon laban sa mga stack overflow sa pamamagitan ng canary label substitution. Para sa mga package na nakasulat sa C/C++, ang mga flag na "-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" at "-fstack-clash" kasama -proteksyon.

Sa bagong release:

  • Na-update ang mga nilalaman ng administrative at control container.
  • Ang runtime para sa mga nakahiwalay na container ay na-update sa container na 1.6.x branch.
  • Ang mga proseso sa background na nag-uugnay sa gawain ng mga lalagyan ay na-restart pagkatapos ng mga pagbabago sa tindahan ng sertipiko.
  • Ang kakayahang magtakda ng mga parameter ng boot ng kernel sa pamamagitan ng seksyong Boot Configuration ay ibinigay.
  • Pinagana ang pagbalewala sa mga walang laman na bloke kapag sinusuri ang integridad ng root partition gamit ang dm-verity.
  • Ibinigay ang kakayahang i-static na itali ang mga hostname sa /etc/hosts.
  • Ang kakayahang makabuo ng configuration ng network gamit ang netdog utility ay ibinigay (ang generate-net-config command ay naidagdag na).
  • Ang mga bagong opsyon sa pamamahagi na may suporta para sa Kubernetes 1.23 ay iminungkahi. Binawasan ang oras ng pagsisimula para sa mga pod sa Kubernetes sa pamamagitan ng hindi pagpapagana sa configMapAndSecretChangeDetectionStrategy mode. Nagdagdag ng mga bagong setting ng kubelet: provider-id at podPidsLimit.
  • Ang isang bagong pamamahagi ng 'aws-ecs-1-nvidia' para sa Amazon Elastic Container Service (Amazon ECS) ay iminungkahi at kasama ng mga driver ng NVIDIA.
  • Nagdagdag ng suporta para sa Microchip Smart Storage at MegaRAID SAS storage device. Pinalawak na suporta para sa mga Ethernet card batay sa Broadcom chips.
  • Mga na-update na bersyon ng mga pakete at dependency para sa mga wika ng Go at Rust, pati na rin ang mga bersyon ng mga pakete na may mga third-party na programa. Ang Bottlerocket SDK ay na-update sa bersyon 0.26.0.

Pinagmulan: opennet.ru

Magdagdag ng komento