| Розробник | Alex Polvi, Brandon Philips, Michael Marineau[1][2] та інші |
|---|---|
| Родина ОС | Unix-подібна |
| Робочий стан | у розробці |
| Вихідна модель | відкрите програмне забезпечення |
| Випущено у виробництво | 3 жовтня2013 |
| Останній випуск | 2135.5.0 /2 липня,2019; 6 років тому (2019-07-02) |
| Цільовий ринок | сервери і кластери |
| Типядра | монолітне (ядро Linux) |
| Ліцензія | Apache License 2.0[3][4] |
| coreos.com | |
CoreOS —відкрита легковаговаопераційна система, базована наядрі Linux і побудована для забезпечення інфраструктури масового розгортаннясерверних ікластерних систем, і націлена на автоматизацію, просте розгортання застосунків, безпеку, надійність і масштабованість. Як операційна система CoreOS забезпечує тільки мінімальну функціональність, потрібну для розгортання застосунків усередені програмних контейнерів, разом з вбудованими механізмами для відкриття служб та спільного конфігурування.[5][1][2][6]
Напрацювання проекту поширюються підліцензією Apache 2.0.
CoreOS, не схожа на традиційніLinux-дистрибутиви, є відгалуженням (форком)Chrome OS, використовуючи її як основу для додавання нової функціональності.
Система містить тільки мінімальний набір компонентів, достатній для виконання ізольованих контейнерів (cgroups +namespaces), які в свою чергу містять довільну начинку для запуску необхідних сервернихзастосунків. По суті, до складу базової системи входить тількиядро Linux, системний менеджерsystemd і ряд службових сервісів для управління конфігурацією і установки оновлень. Готові базові образи CoreOS підготовлені для запуску c використанням PXE-завантаження,Amazon EC2,Google Compute Engine,OpenStack,VirtualBox,VMware,Vagrant іQEMU/KVM.
Системний розділ монтується в режимі тільки для читання і не змінюється в процесі роботи. Для установки оновлень використовується підхід ChromeOS, при якому одночасно створюється два дискових розділи. Один з розділів є активним, а другий використовується для копіювання оновлення, після установки якого активним стає другий розділ, а перший залишається для установки наступного оновлення і надає можливість швидкої відміни змін. Таким чином, при кожному оновленні розділи міняються місцями. Оновлення можуть встановлюватися автоматично, за аналогією з ChromeOS. За задумом розробників, оновлення серверів на базі CoreOS повинно проводитися так само просто, як в даний час здійснюється оновленнябраузерів.
Замість традиційнихпакетних менеджерів пропонується використовувати попередньо ізольовані контейнери, що містять всі необхідні компоненти для виконання того чи іншого серверного застосунку. Упаковка застосунків у довільні відокремлені контейнери дозволяє не замислюватися про особливості базової ОС і вільно переносити контейнери від однієї ОС до іншої і з сервера на сервер. Як система керування контейнерами підтримуєтьсяDocker, що надає засоби для автоматизації створення ізольованих оточень для запуску довільнихпроцесів і можливості з перенесення і клонування оточень на інші сервери. При цьому Docker не є обов'язковим. Присутня також можливість створення контейнерів вручну або використання вже готових образів, придатних для використання з інструментомLXC.
Іншою особливістю CoreOS є засоби автоматичного визначення доступних сервісів, використання єдиної конфігурації для групи серверів та об'єднання набору серверів у взаємозалежні кластерні системи. Для обміну та управління конфігурацією використовується система etcd, що розвивається спеціально для CoreOS. Код etcd написаний на мовіGo і поширюється під ліцензією Apache. Etcd являє собою високонадійне сховище параметрів конфігурації у формі ключ/значення. Для доступу до конфігурації надається простий інтерфейс, заснований на використанніHTTP іJSON (запити можуть відправлятися за допомогою утилітиcurl або спеціальної утиліти etcdctl). Автентифікація виконується на основіSSL-ключів. Сховище конфігурації і логи реплікуються на всі вузли і підтримуються в синхронізованому стані з використанням протоколу Raft.