CoreOS
CoreOS — відкрита легковагова операційна система, базована на ядрі Linux і побудована для забезпечення інфраструктури масового розгортання серверних і кластерних систем, і націлена на автоматизацію, просте розгортання застосунків, безпеку, надійність і масштабованість. Як операційна система CoreOS забезпечує тільки мінімальну функціональність, потрібну для розгортання застосунків усередені програмних контейнерів, разом з вбудованими механізмами для відкриття служб та спільного конфігурування.[5][1][2][6]
| |
Розробник | Alex Polvi, Brandon Philips, Michael Marineau[1][2] та інші |
---|---|
Родина ОС | Unix-подібна |
Стан проєкту | у розробці |
Модель коду | відкрите програмне забезпечення |
Початковий випуск | 3 жовтня 2013 |
Останній стабільний випуск | 2135.5.0/ 2 липня, 2019 |
Ринкова ніша | сервери і кластери |
Тип ядра | монолітне (ядро Linux) |
Ліцензія | Apache License 2.0[3][4] |
Вебсайт | coreos.com |
CoreOS у Вікісховищі |
Напрацювання проекту поширюються під ліцензією 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.
Виноски
- Cade Metz (21 серпня 2013). Linux Hackers Rebuild Internet From Silicon Valley Garage. wired.com. Процитовано 13 лютого 2014.
- CoreOS – a new approach to Linux-based server systems. itnews2day.com. 22 серпня 2013. Процитовано 26 березня 2014.
- CoreOS Pilot Agreement. coreos.com. 13 березня 2014. Архів оригіналу за 12 вересня 2014. Процитовано 26 березня 2014.
- etcd/LICENSE at master. coreos/etcd. github.com. 31 липня 2013. Процитовано 26 березня 2014.
- Libby Clark (9 вересня 2013). Brandon Philips: How the CoreOS Linux Distro Uses Cgroups. linux.com. Архів оригіналу за 22 лютого 2014. Процитовано 13 лютого 2014.
- Using CoreOS. CoreOS documentation. coreos.com. Процитовано 13 лютого 2014.