Container Linux
Розробник | 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 — відкрита легковагова операційна система, базована на ядрі 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.
- ↑ а б Cade Metz (21 серпня 2013). Linux Hackers Rebuild Internet From Silicon Valley Garage. wired.com. Архів оригіналу за 26 березня 2014. Процитовано 13 лютого 2014.
- ↑ а б CoreOS – a new approach to Linux-based server systems. itnews2day.com. 22 серпня 2013. Архів оригіналу за 29 листопада 2014. Процитовано 26 березня 2014.
- ↑ CoreOS Pilot Agreement. coreos.com. 13 березня 2014. Архів оригіналу за 12 вересня 2014. Процитовано 26 березня 2014.
- ↑ etcd/LICENSE at master. coreos/etcd. github.com. 31 липня 2013. Архів оригіналу за 24 вересня 2019. Процитовано 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. Архів оригіналу за 23 лютого 2014. Процитовано 13 лютого 2014.
- Офіційний сайт
- CoreOS — Linux-система для великих серверних інсталяцій
- CoreOS documentation [Архівовано 5 вересня 2014 у Wayback Machine.]
- First Glimpse at CoreOS [Архівовано 3 вересня 2014 у Wayback Machine.]
- CoreOS source on GitHub [Архівовано 15 січня 2016 у Wayback Machine.]
- etcd source on GitHub [Архівовано 8 грудня 2020 у Wayback Machine.]
- fleet source on GitHub [Архівовано 19 лютого 2015 у Wayback Machine.]