Anthony Smith Images / Shutterstock.com

Мы создаём Kubernetes как облачный сервис и пристально следим за актуальными инструментами разработчиков контейнерных приложений. В этом посте мы расскажем про инструменты, которые сильно облегчают работу с развёртываниями Kubernetes и помогают построить CI/CD.

Развертывание кластера Kubernetes


Kubespray


Набор ролей Ansible для развертывания и конфигурации Kubernetes. Kubespray работает на AWS, GCE, Azure, Mail.Ru Cloud Solutions, OpenStack и bare metal IaaS. Kubespray — проект с открытым исходным кодом и открытой разработкой, под капотом у него kubeadm.

Благодаря Kubespray, для создания ресурсов (виртуальных машин, сетей, балансировщиков и так далее) и оркестрации достаточно знать Ansible, другие инструменты не нужны. Если вы знакомы с Ansible, вам это может здорово помочь.

Стоимость: бесплатно

Kubeadm


Средство дистрибуции Kubernetes начиная с версии 1.4. Помогает инициализировать кластеры Kubernetes в их лучших конфигурациях на имеющейся инфраструктуре.
Kubeadm не умеет динамически создавать необходимую инфраструктуру в облаке. Его главное достоинство в том, что он может запускать минимально жизнеспособные кластеры Kubernetes в любой среде. Однако надстройки и сетевые настройки не входят в поставку Kubeadm, так что вам придётся настроить всё вручную или использовать другие инструменты.

Стоимость: бесплатно

Kops


Помогает создавать, удалять, обновлять и поддерживать промышленные отказоустойчивые кластеры Kubernetes из командной строки. Этот инструмент официально поддерживает Amazon Web Services (AWS). Поддержка GCE находится на бета-этапе, а VMware vSphere — на альфа-этапе. Также планируется поддержка других платформ, включая OpenStack. Kops позволяет контролировать полный жизненный цикл кластера Kubernetes — от подготовки инфраструктуры до удаления кластера.

Стоимость: бесплатно.

Mail.Ru Cloud Solutions: Containers


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

Стоимость зависит от конфигурации. Например, тестовая среда из двух нод и одного мастера стоит 3200₽ в месяц. Можно потестировать бесплатно.

Мониторинг


Kubebox


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

Стоимость: бесплатно.

Kubedash


Предоставляет UI для анализа производительности. Агрегирует и обобщает метрики из различных источников, показывает администраторам высокоуровневые аналитические данные. Kubedash использует в качестве источника данных Heapster, который запускается как сервис по умолчанию на всех кластерах Kubernetes и собирает показатели и аналитику в каждом контейнере.

Стоимость: бесплатно.

Containerum


Опенсорсный UI для Kubernetes, который можно использовать вместо нативной консоли kubectl. Инструмент интересен не только разработчикам, но и менеджерам проектов, поскольку помогает мониторить проекты, запущенные в кластере Kubernetes, в интуитивно понятном интерфейсе. Инструмент позволяет управлять запущенными приложениями, интегрируется с CI/CD пайплайнами. Containerum UI будет особенно полезен тем, кто только осваивает Kubernetes.

Стоимость: бесплатно.

Kubetail


Небольшой bash-скрипт для агрегирования журналов многих подов в один поток. Исходная версия Kubetail не умеет фильтровать или выделять, но на Github есть отдельный форк, который умеет раскрашивает логи с помощью MultiTail.

Стоимость: бесплатно.

Weave Scope


Инструмент для выявления неполадок и мониторинга кластеров Docker Swarm и Kubernetes. Weave Scope автоматически генерирует топологии приложений и архитектуры, чем помогает находить узкие места в работе приложений. Можно развернуть Weave Scope как standalone-приложение на локальном сервере или ноутбуке, либо использовать его в виде SaaS в облаке Weave Cloud. С помощью Weave Scope легко группировать, фильтровать и искать контейнеры по названиям, меткам, потреблению ресурсов. Неожиданно полезная функциональность: можно зайти на ноды Kubernetes под root-пользователем из веб-консоли, не имея доступа по ssh.

Стоимость: автономный режим — бесплатно; стандартная SaaS-версия — 30 $/мес. за ноду (30 дней trial); корпоративная версия — 150 $/мес. за ноду.

Prometheus


Опенсорсный инструмент для мониторинга и уведомлений, создателей которого вдохновил Google Borg Monitor. Prometheus позволяет создавать собственные метрики (есть интеграция со всеми популярными языками программирования), а также содержит большое количество готовых интеграций (exporters) с различными технологиями: PostgreSQL, MySQL, AWS Cloudwatch, ETCD и Kubernetes.

Prometheus де факто стал стандартом мониторинга для Kubernetes. Существует специальный Prometheus Operator, позволяющий создавать экземпляры Prometheus в кластерах Kubernetes, в том числе тесную интеграцию с Grafana и Alertmanager.

Стоимость: бесплатно

Searchlight


Оператор Kubernetes для Icinga. Searchlight периодически запускает проверки на кластерах Kubernetes, и если что-то идёт не так, отправляет вам email, SMS или пишет в чат. Searchlight включает дефолтный комплект проверок специально для Kubernetes.

Searchlight расширяет возможности мониторинга Prometheus как внешняя служба black box-мониторинга и служит резервной системой в случае полного отказа внутренних систем.

Стоимость: бесплатно.

Kubernetes Operational View (Kube-ops-view)


Read-only системная панель, которая может работать со многими кластерами Kubernetes. С помощью Kube-ops-view легко перемещаться между кластерами, отслеживать ноды и состояние подов. Kube-ops-view анимирует некоторые процессы, например, создание и уничтожение подов. В качестве источника данных инструмент также использует Heapster.

Стоимость: бесплатно.

Безопасность


Aquasec


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

С Aquasec связан другой инструмент с открытым кодом — Kube-Bench, который проверяет среду Kubernetes по длинному списку тестов из документа CIS Kubernetes Benchmark.

Стоимость: $0,29 за сканирование.

Twistlock


Ещё один инструмент, который работает как облачный межсетевой экран для приложений (Cloud Native Application Firewall) и анализирует сетевой трафик между контейнерами и службами. Twistlock анализирует стандартное поведение контейнеров и генерирует правила на основе этого поведения, так что администраторам не приходится создавать правила вручную. Twistlock также поддерживает CIS Benchmark для Kubernetes, начиная с версии 2.2.

Стоимость: от $1700 за годовую лицензию, есть пробный период.

Sysdig Secure


Компонент платформы Sysdig Container Intelligence, поставляется как отдельное решение. Обеспечивает видимость контейнеров и интегрируется с инструментами оркестрации, в том числе — Kubernetes, Docker, AWS ECS и Apache Mesos. Благодаря Sysdig Secure пользователь может внедрять service-aware политики, блокировать атаки, анализировать историю и отслеживать производительность кластера. Sysdig Secure доступно как облачное и on-premise приложение.

Стоимость: бесплатно для автономного использования. Цена версии Pro для облака и в виде софта зависит от конфигурации.

Kubesec.io


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

Стоимость: бесплатно

Полезные утилиты


kubectl-aliases


Очень простой, но невероятно мощный генератор алиасов для kubectl. Позволяет значительно быстрее писать команды для повседневного администрирования Kubernetes, предоставляя более 800 коротких алиасов на все случаи жизни.

Стоимость: бесплатно.

Cabin


Панель для удаленного управления кластерами Kubernetes с мобильного устройства (Android и iOS). С Cabin можно управлять приложениями, масштабировать развёртывания и выявлять неисправности в кластере. Помогает операторам кластеров Kubernetes быстро реагировать на инциденты из любого места.

Стоимость: бесплатно.

Kubectx/Kubens


Небольшая утилита с открытым кодом, которая дополняет функциональность Kubectl, позволяя легко переключать контекст и подключаться к нескольким кластерам Kubernetes одновременно. Kubens позволяет перемещаться между пространствами имен Kubernetes. Оба инструмента поддерживают автозаполнение в оболочках bash/zsh/fish.

Стоимость: бесплатно.

Kube-shell


Помогает быстрее работать с kubectl. Обеспечивает автодополнение команд и предлагает варианты. Может даже искать и исправлять неправильно введённые команды. Kube-shell отображает in-line справку о выполняемых командах.

Стоимость: бесплатно.

Kail


Kail — сокращение от Kubernetes Tail. Этот инструмент работает с кластерами Kubernetes и помогает отслеживать логи Docker для нужных подов. Kail позволяет фильтровать поды по службам, развёртываниям, меткам и другим параметрам. Поды будут автоматически добавлены в журнал (или удалены оттуда) после запуска, если он соответствует критериям фильтрации.

Стоимость: бесплатно.

CI/CD Tools


Jenkins


Самый популярный опенсорсный CI/CD-сервер в мире. Для него существует бесплатный плагин, позволяющий развёртывать приложения в Kubernetes, проводить их rolling updates (последовательные обновления с минимизацией даунтайма), а также осуществлять Green/Blue-развёртывание обновлений. В этом посте приводится детальный сценарий такой конфигурации.

Стоимость: бесплатно.

TeamCity


Популярный CI/CD сервис от команды JetBrains. С этим плагином можно использовать инфраструктуру кластера Kubernetes для запуска билд-агентов TeamCity. Плагин поддерживает TeamCity версии 2017.1.x и новее.

Стоимость: бесплатно до трёх билд-агентов и 100 билд-конфигураций. $299 за лицензию, дающую возможность использовать дополнительный билд-агент и 10 дополнительных билд-конфигураций.

Визуализация и контроль


Kubernetes Dashboard


Универсальный веб-интерфейс кластеров Kubernetes. С помощью этой нативной панели управления гораздо легче устранять неполадки и мониторить кластеры. Для доступа к панели нужно создать безопасный прокси-канал между вашей машиной и API-сервером Kubernetes. Нативная панель Kubernetes полагается на инструмент для сбора данных Heapster, так что он должен быть установлен в системе. Несмотря на то, что Heapster официально не рекомендуется к использованию (deprecated), полноценной альтернативы ему пока что не существует.

Стоимость: бесплатно.

Kubeapps


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

Стоимость: бесплатно.

В следующем посте мы расскажем о продвинутых инструментах для разработчиков.

Что еще почитать:

1. Как CarPrice стал самой цифровой компанией российского авторынка.
2. Как собрать гибридное облако с помощью Kubernetes, которое может заменить DBaaS.
3. Как устроен Kubernetes as a Service на платформе Mail.ru Cloud Solutions.