Kube-applier — корисна утиліта для Kubernetes

Kubernetes — проєкт з відкритим вихідним кодом, створений для управління кластером контейнерів Linux як єдиною системою. Сьогодні активно розробляються інструменти, які спрощують управління кластерами і відкривають нові можливості. Один із таких інструментів — Kube-applier, який ми зараз розглянемо.

Загальна інформація

Проєкт представлений у квітні 2017 року розробниками системи зберігання та управління контентом Box. ПЗ запускається як сервіс у Kubernetes, бере конфігураційні файли з Git-репозиторію і безперервно застосовує їх до контейнерів у кластері Kubernetes. Хоч би в який час відбувалися зміни у файлах, вони автоматично довантажуються з репозиторію і застосовуються до контейнерів. Зміни можуть набувати чинності за розкладом або запитом.

Перенесення декларативної моделі на Kubernetes

У декларативній моделі всі конфігураційні файли можна перевіряти в системі контролю версій. Це дозволяє робити огляд коду конфігурації, щоб уникнути проблем, і забезпечує аудит, якщо щось все одно зламається. 

З командою apply керування об’єктами Kubernetes стає набагато простішим. Можна підтримувати набір конфігураційних файлів, кожен з яких містить один або декілька об’єктів, і використовувати команду apply для узгодження фактичних об’єктів у кластері зі станом, описаним у файлах.

Проте однієї команди apply зазвичай недостатньо. 

Автоматизація процесу apply

Kube-applier перевіряє віддалений Git-репозиторій на наявність нових комітів, а потім запускає kubectl apply для кожного файлу на кластері Kubernetes, роблячи розгортання таким же простим, як і внесення змін у файл. 

Зазвичай команди розробки використовують безліч сервісів у різних кластерах та середовищах. Проте можна централізувати всі конфігураційні файли в одному репозиторії, розділеному на підкаталоги для кожного кластера. Зі свого боку Kube-applier дозволяє вибрати «root» у будь-якому каталозі в Git-репозиторії, тому можна запустити екземпляр kube-applier на кожному кластері та вказати йому на потрібний підкаталог.

Кожен новий коміт запускає «прогін» послідовних команд apply для всіх конфігураційних файлів у цільовому каталозі. Kube-applier також виконує періодичні запуски кожні 5 хвилин, навіть якщо немає нових комітів, щоб переконатися, що кластер залишається синхронізованим з вмістом репозиторію.

Логування Kube-applier

Під час кожного запуску утиліта логує свої дії для збереження історії запусків. Інформація про останній запуск відображається на сторінці статусу.

Kube-applier

Для моніторингу метрик пропонується використовувати Prometheus. Це зручно, коли необхідно виділити певні показники, наприклад, у разі встановлення попереджень, які спрацьовують після закінчення заданого періоду часу з моменту запуску.

Kube-applier — утиліта для управління кластерами Kubernetes, що дає змогу приділяти менше уваги розгортанню і сфокусуватися на написанні та налагодженні коду. Kubernetes і супутні утиліти детально вивчаємо в рамках курсу «DevOps з нуля»!

Залишити відповідь

Дякуємо, що поділились