Мы создаём 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-чарты нажатием одной кнопки, без использования командной строки.
Стоимость: бесплатно.
В следующем посте мы расскажем о продвинутых инструментах для разработчиков.