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
Під час кожного запуску утиліта логує свої дії для збереження історії запусків. Інформація про останній запуск відображається на сторінці статусу.
Для моніторингу метрик пропонується використовувати Prometheus. Це зручно, коли необхідно виділити певні показники, наприклад, у разі встановлення попереджень, які спрацьовують після закінчення заданого періоду часу з моменту запуску.
Kube-applier — утиліта для управління кластерами Kubernetes, що дає змогу приділяти менше уваги розгортанню і сфокусуватися на написанні та налагодженні коду. Kubernetes і супутні утиліти детально вивчаємо в рамках курсу «DevOps з нуля»!