Σαν λειτουργικό σύστημα το CoreOS προσφέρει μόνο την βασική λειτουργικότητα που απαιτείται για την υλοποίηση και την λειτουργία εφαρμογών μέσα σε δοχεία λογισμικού (software containers), μαζί με ενσωματωμένους μηχανισμούς για την ανακάλυψη υπηρεσιών (service discovery), και διαμοιρασμό ρυθμίσεων (configuration sharing).
Το CoreOS είναι ένα fork του Chrome OS, αυτό σημαίνει πως χρησιμοποιεί το Software Development Kit (SDK), που είναι ελεύθερα διαθέσιμο μέσα από το Chromium OS, σαν μια βάση, καθώς προσθέτει επιπλέον λειτουργικότητα, και ρύθμιση για να υποστηρίζει υλικό που υπάρχει στους εξυπηρετητές - διακομιστές.
Ο Ιούλιος του 2014 βρήκε το CoreOS σε ενεργή ανάπτυξη, κυρίως από τον Alex Polvi, Brandon Philips, και Michael Marineau, με τα βασικά του χαρακτηριστικά (εκτός από τα etcd και fleet), να είναι διαθέσιμα σαν μια σταθερή έκδοση (stable release).
Γενική επισκόπηση
Το CoreOS δεν προσφέρει διαχειριστή πακέτων (package manager), και απαιτεί από τις εφαρμογές να τρέχουν μέσα στα δικά τους δοχεία (containers), χρησιμοποιώντας το Docker, και τα από κάτω Linux Containers (LXC). Με αυτό τον τρόπο η διαίρεση των πόρων (resource partitioning), γίνεται διαμέσου απομονωμένων οντοτήτων της userspace (userspace instances). Αυτό παρά να χρησιμοποιεί έναν hypervisor που θα έδινε πλήρεις και ολοκληρωμένες εικονικές μηχανές. Αυτή η προσέγγιση εναποτίθεται στην λειτουργικότητα των cgroups του πυρήνα Linux, που προσφέρει απομόνωση της namespace (namespace isolation), και δυνατότητες στο να βάλουμε όρια και να απομονώνουμε τους πόρους του επεξεργαστή, της μνήμης, των μονάδων εισόδου εξόδου και λοιπά, των process groups.
To CoreOS χρησιμοποιεί το systemd σαν το πρωτεύον init του συστήματος, και μια πιο δεμένη ενσωμάτωση ανάμεσα σε αυτό, και στα διάφορα εσωτερικά μέρη του λειτουργικού (CoreOS internal parts).
To Updates Distribution
Για επιπρόσθετη ασφάλεια και αξιοπιστία των αναβαθμίσεων, το CoreOS αναθέτει στο FastPatch ένα σχήμα διπλού partition για το μόνο-ανάγνωσης σύστημα αρχείων ρίζας του, (read only root filesystem), αυτό σημαίνει πως οι αναβαθμίσεις του λειτουργικού συστήματος πραγματοποιούνται ως ολότητα και εγκαθίστανται σε μια παθητική δευτερεύουσα root partition. Αυτή γίνεται ενεργά μετά από επανεκκίνηση η kexec. Με αυτόν τον τρόπο εύκολα rollbacks σε γνωστές σταθερές εκδόσεις είναι εφικτά, το σύστημα ασφαλίζεται περισσότερο, και κάθε boot partition έχει περισσότερη ασφάλεια. Τα εγγράψιμα μέρη του συστήματος αρχείων αποθηκεύονται σε ξεχωριστή state partition η οποία αλλάζει χωρητικότητα αυτόματα για να πιάνει (όλο τον) ελεύθερο χώρο στο δίσκο σε κάθε επανεκκίνηση.
Το Updates Distribution System του CoreOS είναι βασισμένο στο σχέδιο της Google "Omaha", ανοικτού κώδικα, που προσφέρει έναν μηχανισμό για ρέουσες αναβαθμίσεις και το πρωτόκολλο request-responce που βασίζεται στην XML. Επιπρόσθετα το CoreOS δίνει το CoreUpdate, ένα dashboard που βασίζεται στον ιστό, για την διαχείριση των cluster-wide updates. Οι χειρισμοί διαμέσου του Core Update περιλαμβάνουν τον σχεδιασμό των μελών της συστοιχίας (cluster members assignement) σε διαφορετικές ομάδες που διαμοιράζονται πολιτικές αναβαθμίσεων, επαναθέαση των cluster-wide breakdowns διαφόρων εκδόσεων του CoreOS, το να σταματάνε η να ξεκινάνε αναβαθμίσεις, και να βλέπουν τα logs των αναβαθμίσεων.
Το CoreUpdate επίσης προσφέρει ένα API βασισμένο σε HTTP, που επιτρέπει την ενσωμάτωση μέσα σε utilities τρίτων κατασκευαστών, η σε υλοποιημένα συστήματα.
Η δομή της συστοιχίας
Το CoreOS προσφέρει το etcd έναν δαίμονα που τρέχει σε όλους τους υπολογιστές μιας συστοιχίας επιτρέποντας στα δεδομένα των ρυθμίσεων να διαμοιράζονται εύκολα, υλοποιώντας ένα configuration registry (μητρώο ρυθμίσεων). Αφού τα δεδομένα key-value που είναι αποθηκεμένα μέσα στο etcd είναι δυναμικά διανεμημένα, και γίνονται ρεπλίκες (replicated) με αυτοματοποιημένες γενικές εκλογές (automated master election), όλες οι αλλαγές καθρεφτίζονται και γνωστοποιούνται σε ολόκληρη την συστοιχία.
Πέρα από την διαχείριση των ρυθμίσεων (configuration management), το etcd επίσης δίνει και την ανακάλυψη των υπηρεσιών (service discovery), επιτρέποντας σε υλοποιημένες εφαρμογές να ανακοινώνουν τον εαυτό τους. Η επικοινωνία με το etcd πραγματοποιείται μέσα από ένα απλό API που χρησιμοποιεί εσωτερικά το JSON στην κορυφή του HTTP. Το API μπορεί να χρησιμοποιείται άμεσα (διαμέσου της curl για παράδειγμα), ή έμμεσα διαμέσου της etcdctl που είναι ένα utility γραμμής εντολών υποστηριζόμενο επίσης από το CoreOS.
To CoreOS επίσης δίνει τον fleet (στόλο), έναν δαίμονα διαχείρισης συστοιχίας που ελέγχει τις διαφορετικές οντότητες του systemd σε επίπεδο cluster wide. Χρησιμοποιώντας το fleet, το CoreOS δημιουργεί ένα διαμοιραζόμενο σύστημα init που συνδέει μαζί διαφορετικές systemd οντότητες, και μια υλοποίηση etcd εσωτερικά και σε ολόκληρη την συστοιχία.
Ο δαίμονας fleet επικοινωνεί με το systemd διαμέσου του D-bus. Χρησιμοποιώντας το fleet, επιτρέπει σε απλά ή πολλαπλά δοχεία (containers) να πραγματοποιούνται σε επίπεδο συστοιχίας με περισσότερες προχωρημένες επιλογές οι οποίες περιλαμβάνουν την εναλλακτικότητα (redundancy), την διαχείριση κατάρρευσης (failover), σε διαφορετικά μέλη της συστοιχίας (cluster members), εξαρτήσεις ανάμεσα σε δοχεία, και ομαδικές πραγματοποιήσεις των δοχείων (grouped deployment of containers). Ένα utility της γραμμής εντολών που λέγεται fleetctl χρησιμοποιείται για να ρυθμίζει και να παρακολουθεί αυτό το διαμοιραζόμενο init system εσωτερικά και να επικοινωνεί με την συστοιχία etcd.
Όταν χρησιμοποιείται τοπικά πάνω σε ένα μέλος της συστοιχίας τότε επικοινωνεί με την τοπική οντότητα etcd πάνω από το loopback interface, όταν χρησιμοποιείται σαν εξωτερικός host, το SSH tunneling χρησιμοποιείται με την ταυτοποίηση που δίνεται διαμέσου δημοσίων κλειδιών SSH (public SSH keys). Και τα δύο, ο etcd και fleet είναι γραμμένα στη γλώσσα Go, και δημοσιεύονται με άδεια Apache Licence 2.0.
Ανάπτυξη
Επιπρόσθετα με το να τρέχει σε εξειδικευμένο υλικό, όπου μπορεί πρωτεύοντος να εγκατασταθεί στον δίσκο η να εκκινεί εξ' αποστάσεως (remotely boot) διαμέσου PXE η iPXE, το CoreOS υποστηρίζει υλοποιήσεις διαφόρων πλατφορμών υλικού αυτές περιλαμβάνουν τις Amazon EC2, Digital Ocean, Compute Engine, Microsoft Azure, OpenStack, QEMU/KVM, Vagrant και VMware.
Δημοφιλία της διανομής
Αν και δεν μπορούμε να μιλήσουμε ακριβώς για "δημοφηλία" μιας και είναι πολύ εξειδικευμένη διανομή, το CoreOS βρίσκεται στην θέση 63 απο 100 στο distrowatch με 223 επισκέψεις ενδιαφέροντος την ημέρα, και τάση αύξησης.
Το CoreOS με λίγα λόγια
Οικογένεια: Unix-like
Κατάσταση: Κάτω απο ανάπτυξη
Μοντέλο: Ανοικτού κώδικα
Πρώτη έκδοση: 3 Οκτωβρίου 2013
Τελευταία έκδοση: 19 Οκτωβρίου 2014
Τελευταία επαναθέαση: Ομοίως
Στόχευση: Εξυπηρετητές και διακομιστές σε συστοιχία
Πυρήνας: Μονολιθικός Linux
Άδεια: Apache 2.0
H επίσημη ιστοσελίδα της διανομής:
- Κώδικας:
www.coreos.com
Ένα video γνωριμίας με το CoreOS
HashTags: N/A
Source: [Πρέπει να είστε εγγεγραμμένοι και συνδεδεμένοι για να δείτε αυτόν το σύνδεσμο.]