Αμαζόνα
Το Bottlerocket (παρεμπιπτόντως, το όνομα που δόθηκε στους μικρούς αυτοσχέδιους πυραύλους μαύρης σκόνης) δεν είναι το πρώτο λειτουργικό σύστημα για κοντέινερ, αλλά είναι πιθανό να γίνει ευρέως διαδεδομένο χάρη στην προεπιλεγμένη ενσωμάτωση με τις υπηρεσίες AWS. Παρόλο που το σύστημα εστιάζει στο cloud του Amazon, ο ανοιχτός κώδικας του επιτρέπει να δημιουργηθεί οπουδήποτε: τοπικά σε διακομιστή, σε Raspberry Pi, σε οποιοδήποτε ανταγωνιστικό cloud, ακόμη και σε περιβάλλον χωρίς κοντέινερ.
Αυτή είναι μια απολύτως άξια αντικατάσταση της διανομής CoreOS που έθαψε η Red Hat.
Στην πραγματικότητα, το τμήμα Amazon Web Services διαθέτει ήδη το Amazon Linux, το οποίο πρόσφατα κυκλοφόρησε στη δεύτερη έκδοσή του: είναι μια διανομή γενικής χρήσης που μπορεί να εκτελεστεί σε κοντέινερ Docker ή με το Linux KVM, το Microsoft Hyper-V και το VMware Υπερεπόπτες ESXi. Βελτιστοποιήθηκε για να εκτελείται στο σύννεφο AWS, αλλά με την κυκλοφορία του Bottlerocket, όλοι ενθαρρύνονται να αναβαθμίσουν σε ένα νέο σύστημα που είναι πιο ασφαλές, σύγχρονο και χρησιμοποιεί λιγότερους πόρους.
Η AWS ανακοίνωσε το Bottlerocket
Ακραίος μινιμαλισμός
Το Linux έχει αφαιρεθεί από όλα όσα δεν χρειάζονται για την εκτέλεση κοντέινερ. Αυτός ο σχεδιασμός, σύμφωνα με την εταιρεία, μειώνει την επιφάνεια επίθεσης.
Αυτό σημαίνει ότι λιγότερα πακέτα εγκαθίστανται στο βασικό σύστημα, γεγονός που διευκολύνει τη συντήρηση και την ενημέρωση του λειτουργικού συστήματος και επίσης μειώνει την πιθανότητα προβλημάτων λόγω εξαρτήσεων, μειώνοντας τη χρήση πόρων. Βασικά, όλα εδώ λειτουργούν μέσα σε ξεχωριστά δοχεία και το υποκείμενο σύστημα είναι πρακτικά γυμνό.
Η Amazon έχει επίσης αφαιρέσει όλα τα κελύφη και τους διερμηνείς, εξαλείφοντας τον κίνδυνο χρήσης τους ή τυχαίας κλιμάκωσης των προνομίων από τους χρήστες. Για λόγους μινιμαλισμού και ασφάλειας, η βασική εικόνα δεν περιλαμβάνει κέλυφος εντολών, διακομιστή SSH ή ερμηνευμένες γλώσσες όπως η Python. Τα εργαλεία διαχειριστή τοποθετούνται σε ξεχωριστό κοντέινερ υπηρεσιών, το οποίο είναι απενεργοποιημένο από προεπιλογή.
Η διαχείριση του συστήματος γίνεται με δύο τρόπους: μέσω του API και της ενορχήστρωσης.
Αντί για έναν διαχειριστή πακέτων που ενημερώνει μεμονωμένα κομμάτια λογισμικού, το Bottlerocket κατεβάζει μια πλήρη εικόνα συστήματος αρχείων και κάνει επανεκκίνηση σε αυτό. Εάν μια φόρτωση αποτύχει, επανέρχεται αυτόματα και μια αποτυχία φόρτου εργασίας μπορεί να προκαλέσει μη αυτόματη επαναφορά (εντολή μέσω API).
Δομή /etc
προσαρτημένο με το σύστημα αρχείων στη μνήμη RAM /etc
δεν υποστηρίζεται: για να αποθηκεύσετε τις ρυθμίσεις θα πρέπει να χρησιμοποιήσετε το API ή να μετακινήσετε τη λειτουργικότητα σε ξεχωριστά κοντέινερ.
Σχέδιο ενημέρωσης API
Ασφάλεια
Τα κοντέινερ δημιουργούνται από τυπικούς μηχανισμούς του πυρήνα Linux - cgroups, namespace και seccomp, και χρησιμοποιούνται ως σύστημα ελέγχου υποχρεωτικής πρόσβασης, δηλαδή για πρόσθετη απομόνωση
Από προεπιλογή, οι πολιτικές είναι ενεργοποιημένες για κοινή χρήση πόρων μεταξύ κοντέινερ και πυρήνα. Τα δυαδικά αρχεία προστατεύονται με σημαίες για να εμποδίζουν τους χρήστες ή τα προγράμματα να τα εκτελούν. Και αν κάποιος φτάσει στο σύστημα αρχείων, το Bottlerocket προσφέρει ένα εργαλείο για τον έλεγχο και την παρακολούθηση τυχόν αλλαγών που έγιναν.
Η λειτουργία "επαληθευμένη εκκίνηση" υλοποιείται μέσω της λειτουργίας συσκευής-mapper-verity (
Υπάρχει επίσης ένα φίλτρο στο σύστημα
Μοντέλο Εκτέλεσης
Ορισμένο από τον χρήστη
Σύνταξη
Ασφάλεια
Λειτουργία αποτυχίας
Πρόσβαση σε πόρους
Χρήστης
την εργασία
да
οποιαδήποτε
δικαιώματα χρήστη
διακοπή εκτέλεσης
κλήση συστήματος, σφάλμα
Ο πυρήνας
την εργασία
όχι
στατικός
όχι
πανικός πυρήνα
прямой
BPF
συμβάν
да
JIT, CO-RE
επαλήθευση, JIT
μήνυμα λάθους
περιορισμένους βοηθούς
Πώς διαφέρει το BPF από τον κώδικα σε επίπεδο κανονικού χρήστη ή πυρήνα
Η AWS είπε ότι η Bottlerocket "χρησιμοποιεί ένα μοντέλο λειτουργίας που ενισχύει περαιτέρω την ασφάλεια αποτρέποντας τις συνδέσεις με διακομιστές παραγωγής με δικαιώματα διαχειριστή" και είναι "κατάλληλο για μεγάλα κατανεμημένα συστήματα όπου ο έλεγχος σε κάθε μεμονωμένο κεντρικό υπολογιστή είναι περιορισμένος".
Παρέχεται ένα κοντέινερ διαχειριστή για τους διαχειριστές συστήματος. Αλλά το AWS δεν πιστεύει ότι ένας διαχειριστής θα χρειάζεται συχνά να εργάζεται μέσα στο Bottlerocket: "Η πράξη της σύνδεσης σε μια ξεχωριστή παρουσία του Bottlerocket προορίζεται για σπάνιες λειτουργίες: προηγμένο εντοπισμό σφαλμάτων και αντιμετώπιση προβλημάτων."
Γλώσσα σκουριάς
Τα όργανα του λειτουργικού συστήματος στην κορυφή του πυρήνα είναι κυρίως γραμμένα σε Rust. Αυτή η γλώσσα είναι από τη φύση της
Οι σημαίες εφαρμόζονται από προεπιλογή κατά την κατασκευή --enable-default-pie
и --enable-default-ssp
για να ενεργοποιήσετε την τυχαιοποίηση του χώρου διευθύνσεων των εκτελέσιμων αρχείων (
Για πακέτα C/C++, περιλαμβάνονται πρόσθετες σημαίες -Wall
, -Werror=format-security
, -Wp,-D_FORTIFY_SOURCE=2
, -Wp,-D_GLIBCXX_ASSERTIONS
и -fstack-clash-protection
.
Εκτός από το Rust και το C/C++, ορισμένα πακέτα είναι γραμμένα στο Go.
Ενοποίηση με υπηρεσίες AWS
Η διαφορά από παρόμοια λειτουργικά συστήματα κοντέινερ είναι ότι η Amazon έχει βελτιστοποιήσει το Bottlerocket ώστε να λειτουργεί σε AWS και να ενσωματώνεται με άλλες υπηρεσίες AWS.
Ο πιο δημοφιλής ενορχηστρωτής κοντέινερ είναι ο Kubernetes, επομένως η AWS εισήγαγε την ενοποίηση με τη δική της Υπηρεσία Enterprise Kubernetes (EKS). Τα εργαλεία ενορχήστρωσης διατίθενται σε ξεχωριστό δοχείο ελέγχου
Θα είναι ενδιαφέρον να δούμε αν η Bottlerocket απογειωθεί, δεδομένης της αποτυχίας κάποιων παρόμοιων πρωτοβουλιών στο παρελθόν. Για παράδειγμα, το PhotonOS από τη Vmware αποδείχθηκε ότι δεν είχε διεκδικηθεί και η RedHat αγόρασε το CoreOS και
Η ενσωμάτωση του Bottlerocket στις υπηρεσίες AWS κάνει αυτό το σύστημα μοναδικό με τον δικό του τρόπο. Αυτός είναι ίσως ο κύριος λόγος για τον οποίο ορισμένοι χρήστες μπορεί να προτιμούν το Bottlerocket έναντι άλλων διανομών όπως το CoreOS ή το Alpine. Το σύστημα έχει σχεδιαστεί αρχικά για να λειτουργεί με EKS και ECS, αλλά επαναλαμβάνουμε ότι αυτό δεν είναι απαραίτητο. Πρώτον, το Bottlerocket μπορεί
Ο πηγαίος κώδικας Bottlerocket δημοσιεύεται στο GitHub με την άδεια Apache 2.0. Οι προγραμματιστές έχουν ήδη
Σχετικά με τα Δικαιώματα Διαφήμισης
VDSina προσφέρει
Πηγή: www.habr.com