3 проекта с открытым исходным кодом, упрощающие Kubernetes

Kubernetes — решение проблем. Он позволяет запускать контейнеризированные приложения и масштабировать их без утопания в деталях. С ним просто балансировать нагрузку, сетевые контейнеры, обеспечивать высокую доступность для приложений и управлять обновлениями или откатами.

Но применение Kubernetes не лишено проблем. Запуск и использование Kubernetes требует работы, и многие задачи управления и обслуживания Kubernetes являются трудными.

Так как Kubernetes находится в активной стадии разработки, мы не можем ожидать от команды разработчиков немедленного решения проблем. К счастью, сообщество пользователей Kubernetes находит решения тех задач, на которых по той или иной причине команда не фокусировала внимание.

Здесь представлены три новых проекта, которые смогут сделать контейнерную оркестрацию менее узкой.

Heptio

Двое из создателей Kubernetes отказались от Google, чтобы сформировать Heptio. Эта компания заявила, что ее миссия — сделать Kubernetes проще в использовании, и сосредоточилась на поставке инструментария с открытым исходным кодом, предназначенного для расширения опыта работы с оригинальной версией Kubernetes.

Heptio уже поставил свои первые проекты: Heptio Ark и Heptio Sonobuoy. Ark — система аварийного восстановления для кластеров Kubernetes — способ мгновенного создания снимка, резервного копирования и восстановления приложений на основе контейнеров. Ark записывает состояние как объектов API Kubernetes, так и дисков Persistent Volume (PV). Пример по умолчанию позволяет работать с S3-совместимой службой хранения («Minio»), но Ark может использовать хранилище для всех основных облачных провайдеров — Amazon Web Services, Google Cloud Platform и Microsoft Azure.

Но Ark не может полностью решить проблему подъема и сдвига для перемещения существующего кластера Kubernetes между средами, поскольку не поддерживает миграцию постоянных хранилищ снимков между облачным провайдерами.

Другой проект — Sonobuoy — проверяет установку Kubernetes, чтобы удостовериться, что он может пройти тесты, используемые для сертификации выпусков версии Kubernetes.

Поставщики или пользователи часто изменяют развертывания Kubernetes, что потенциально делает их несовместимыми с обновлениями. Задача Sonobuoy — выяснить, в чем заключается несовместимость. Состояние кластера также может быть выгружено и использовано для диагностической отчетности, а тесты, выполняемые Sonobuoy, могут быть расширены с помощью архитектуры подключаемого модуля.

Однако Sonobuoy все еще находится на ранних стадиях разработки и не проверяет все проблемы, определенные в собственных тестах соответствия Kubernetes. Долгосрочный план заключается в том, чтобы держать его в тесной синхронизации с набором тестов, созданных основной командой Kubernetes.

Kubed

AppsCode, создатель совместной платформы кодирования для контейнеризованных приложений, недавно выпустил проект, который помогает заполнить многие пробелы в управлении кластером Kubernetes.

Kubed — сокращенное от «Kubernetes daemon», произносится как «Cube-dee»– объединяет множество полезных функций в один процесс демона. Kubed может выполнять периодические снимки кластера, предоставлять временное хранилище для удаленных объектов (в случае необходимости), выполнять автоматическую пересылку событий, доставлять уведомления по различным каналам и многое другое.
Kubernetes также может хранить данные журнала в экземплярах Elasticsearch или InfluxDB, но очистка старых данных является ответственностью пользователей. Функция janitors автоматизирует этот процесс, очищая данные журнала через определенный промежуток времени. Kubed еще не поддерживает возможность выполнения таких очисток, но вопрос добавления этой функции открыт.

Проект Kubed в настоящее время находится в альфа-состоянии. Для поддержки Kubernetes недавно был выпущен Custom Resource Definitions (CRDs) и сделан доступным Kubed API через сервер Kubernetes User API, чтобы позволить сопутствующим приложениям расширять собственный набор API.

Kubicorn

Проект Kubicorn направлен на то, чтобы помочь пользователям создавать инфраструктуру для Kubernetes на различных облачных сервисах и управлять ей. Подобно Puppet и другим современным средствам управления инфраструктурой, Kubicorn принял декларативную философию: пользователь описывает состояние, которое хочет видеть в своем кластере, и Kubicorn гарантирует, что состояние кластера будет синхронизироваться с этой целью.
Kubicorn предназначен для работы как автономного инструмента, так и библиотеки, которая может быть использована другими инструментами. Точно так же Kubicorn опирается на существующую оснастку в Kubernetes, такую как инструмент kubeadm. Таким образом, Kubicorn предназначен для дополнения существующих рабочих процессов, а не для их замещения.

Подход Kubicorn — использование снимков. Kubicorn позволяет пользователю определять состояние своего кластера, применять это состояние атомарно (если кластер не работает, он откатывается) и захватывать это состояние как моментальный снимок. Затем эти снимки можно использовать и для новых развертываний.
Обратите внимание, что Kubicorn не является официальным проектом Kubernetes по-прежнему считается экспериментальным и не может быть использован для производственных работ.