การเปิดตัวของ เวอร์ชันใหม่ของการแจกจ่าย Linux "Bottlerocket 1.1.0" ซึ่งเป็น พัฒนาโดยการมีส่วนร่วมของ Amazon เพื่อใช้งานตู้คอนเทนเนอร์แยกอย่างมีประสิทธิภาพและปลอดภัย
ส่วนประกอบการกระจายและการควบคุมเขียนด้วยภาษา Rust และจัดจำหน่ายภายใต้ใบอนุญาต MIT และ Apache 2.0 รองรับการเรียกใช้ Bottlerocket บนคลัสเตอร์ Amazon ECS และ AWS EKS Kubernetes ตลอดจนการกำหนดเวอร์ชันและการแพตช์ที่กำหนดเองซึ่งเปิดใช้งานการจัดระเบียบคอนเทนเนอร์และเครื่องมือรันไทม์ที่แตกต่างกัน
การกระจาย จัดเตรียมอิมเมจระบบที่แยกไม่ออกได้โดยอัตโนมัติและอัปเดตด้วยอะตอม ซึ่งรวมถึงเคอร์เนล Linux และสภาพแวดล้อมระบบขั้นต่ำที่มีเฉพาะส่วนประกอบที่จำเป็นในการรันคอนเทนเนอร์
สภาพแวดล้อม ใช้ตัวจัดการระบบ systemd, ไลบรารี Glibc, Buildroot, GRUB bootloader, รันไทม์สำหรับ containerd, คอนเทนเนอร์แพลตฟอร์ม Kubernetes, AWS-iam-authenticator และตัวแทน Amazon ECS
เครื่องมือจัดระเบียบคอนเทนเนอร์จัดส่งในคอนเทนเนอร์การจัดการแยกต่างหากที่เปิดใช้งานตามค่าเริ่มต้นและจัดการผ่าน AWS SSM Agent และ API. อิมเมจพื้นฐานไม่มีเชลล์คำสั่งเซิร์ฟเวอร์ SSH และภาษาที่ตีความ (ตัวอย่างเช่นไม่มี Python หรือ Perl) - เครื่องมือของผู้ดูแลระบบและเครื่องมือดีบักจะถูกย้ายไปยังที่เก็บบริการแยกต่างหากซึ่งจะถูกปิดใช้งานโดยค่าเริ่มต้น
ความแตกต่างที่สำคัญจากการแจกแจงที่คล้ายกัน เช่น Fedora CoreOS, CentOS / Red Hat Atomic Host เป็นจุดเน้นหลักในการให้ความปลอดภัยสูงสุด ในบริบทของการทำให้ระบบแข็งแกร่งขึ้นจากภัยคุกคามที่อาจเกิดขึ้นซึ่งทำให้ยากที่จะใช้ประโยชน์จากช่องโหว่ในส่วนประกอบของระบบปฏิบัติการและเพิ่มการแยกคอนเทนเนอร์ คอนเทนเนอร์ถูกสร้างขึ้นโดยใช้กลไกเคอร์เนล Linux มาตรฐาน: cgroups, namespaces และ seccomp
พาร์ติชันรูทติดตั้งแบบอ่านอย่างเดียว และพาร์ติชัน config / etc ถูกติดตั้งใน tmpfs และคืนค่าสู่สถานะดั้งเดิมหลังจากรีบูต ไม่รองรับการแก้ไขไฟล์ในไดเร็กทอรี / etc โดยตรงเช่น /etc/resolv.conf และ /etc/containerd/config.toml เพื่อบันทึกการตั้งค่าอย่างถาวรใช้ API หรือย้ายฟังก์ชันไปยังคอนเทนเนอร์แยกต่างหาก
คุณสมบัติใหม่หลักของ Bottlerocket 1.1.0
ในเวอร์ชันใหม่ของการแจกจ่ายนี้ รวมอยู่ในเคอร์เนลลินุกซ์ 5.10 เพื่อให้สามารถใช้งานได้ในตัวแปรใหม่ร่วมกับ n สองตัวเวอร์ชันใหม่ของการแจกแจง aws-k8s-1.20 และ vmware-k8s-1.20 เข้ากันได้กับ Kubernetes 1.20
ในรูปแบบเหล่านี้เช่นเดียวกับในเวอร์ชันอัปเดตของ aws-ecs-1 มีส่วนเกี่ยวข้องกับโหมดล็อคที่ตั้งค่าเป็น "ความสมบูรณ์" ตามค่าเริ่มต้น (บล็อกความสามารถในการเปลี่ยนแปลงเคอร์เนลที่รันจากพื้นที่ผู้ใช้) การสนับสนุน aws-k8s-1.15 ที่ใช้ Kubernetes 1.15 ถูกลบออกแล้ว
นอกจากนี้ ขณะนี้ Amazon ECS รองรับโหมดเครือข่าย awsvpc แล้วซึ่งช่วยให้คุณกำหนดที่อยู่ IP ภายในและอินเทอร์เฟซเครือข่ายที่เป็นอิสระสำหรับแต่ละงาน
เพิ่มการกำหนดค่าเพื่อจัดการการกำหนดค่า Kubernetes ต่างๆ TLS bootstrap รวมถึง QPS ขีด จำกัด ของกลุ่มและการตั้งค่า Kubernetes cloudProvider เพื่ออนุญาตให้ใช้ภายนอก AWS
ในคอนเทนเนอร์สำหรับบูตมีให้มาพร้อมกับ SELinux เพื่อ จำกัด การเข้าถึงข้อมูลผู้ใช้ตลอดจนการแบ่งกฎนโยบาย SELinux สำหรับหัวข้อที่เชื่อถือได้
การเปลี่ยนแปลงอื่น ๆ ที่โดดเด่นจากเวอร์ชันใหม่:
- ขณะนี้คลัสเตอร์ Kubernetes-dns-ip เป็นทางเลือกเพื่อรองรับการใช้งานภายนอก AWS ได้แล้ว
- เปลี่ยนพารามิเตอร์เพื่อรองรับการสแกน CIS ที่มีประสิทธิภาพ
- เพิ่มยูทิลิตี้ resize2fs
- ID เครื่องที่เสถียรสร้างขึ้นสำหรับแขก VMware และ ARM KVM
- เปิดใช้งานโหมดการล็อกเคอร์เนลของ "ความสมบูรณ์" สำหรับตัวแปรแสดงตัวอย่างของ aws-ecs-1
- ลบการลบล้างการหมดเวลาเริ่มต้นบริการเริ่มต้น
- ป้องกันไม่ให้บูตคอนเทนเนอร์รีสตาร์ท
- กฎ udev ใหม่สำหรับการติดตั้งซีดีรอมเมื่อมีสื่อเท่านั้น
- ภูมิภาค AWS รองรับ ap-Northeast-3: Osaka
- หยุด URI คอนเทนเนอร์ชั่วคราวด้วยตัวแปรเทมเพลตมาตรฐาน
- ความสามารถในการรับ DNS IP จากคลัสเตอร์เมื่อมี
สุดท้ายนี้หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับเวอร์ชันที่ออกใหม่นี้หรือสนใจในการจัดจำหน่ายคุณสามารถปรึกษาได้ที่ รายละเอียดตามลิงค์ต่อไปนี้