company_banner

25 полезных инструментов Kubernetes: развёртывание и управление


    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-чарты нажатием одной кнопки, без использования командной строки.

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

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

    Mail.Ru Group

    870,33

    Строим Интернет

    Поделиться публикацией
    Комментарии 17
      0
      Kubedash вроде анонсировали EOL
        +1
        Да, но по факту его ещё много людей использует
        0

        Shameless plug: https://github.com/google/kasane — как замена/расширение helm, ksonnet, etc если приходится ставить вендорские yaml с некоторыми корректировками.

          +3
          я бы еще Rancher 2.0 указал — отичный вариант для управления и визуализации.
            0
            По ранчеру — оказалось, что у них свой инсталлятор есть github.com/rancher/rke
            Который ВРОДЕ как обходит kops/kubespray и прочие по ряду параметров.
            pxeno напишете про него?
              0
              Хорошая идея, попробуем включить в один из следующих обзоров.
            +1
            Containerum — посмотрел, не понравилось. К тому же разработчики — очень странные ребята.
            CI — не упомянут Gitlab-CI. Бесплатный (разумно), умеет сразу в kubernetes/GKE.
            Jenkins — лучше сразу Jenkins X
            Обязательно стоило отдельно рассказать про Service Mesh — Linked-Conduit и Istio.

            Не раскрыта тема деплоя в k8s: helm, kompose, Skaffold и пр.
            Не раскрыт вариант k8s для разрабов (minikube?)

            В развертывании тоже только упоминание MCS несет какую-то пользу. Но с тем же успехом можно использовать GKE — что может быть лучше куба от создателей куба?
              +1
              Обязательно стоило отдельно рассказать про Service Mesh — Linked-Conduit и Istio.
              Не раскрыта тема деплоя в k8s: helm, kompose, Skaffold и пр.
              Не раскрыт вариант k8s для разрабов (minikube?)

              Как уже писал Андрей в конце статьи, мы готовим 2ю часть этого обзора, где будут включены как вышеуказанные инструменты, так и еще 15 штук.
                0
                Ну, ок — с нетерпением ждем.
                0

                Статья в корпоративном блоге Mail.ru, если чт)

                0
                А что конкретно не понравилось в Containerum? И в чем, по-вашему, странность разработчиков?
                Если есть какие-то пожелания по платформе, рассмотрим и реализуем)
                  –1
                  А Вы точно уверены, что хотите почитать здесь, на хабре?
                  Как минимум могу сказать, что Константина Феофантова видел на Moscow Kubernetes Meetup #4. Дальше даже продолжать не хочу ;-)
                    0
                    Я буду рад конструктивному диалогу. Если Вам станет интересно продолжить общение, пишите в Telegram dmkrasnoff.
                  0
                  Kubespray, Kubeadm, Kops...Mail.Ru Cloud Solutions: Containers. What? Интересный ассоциативный ряд.
                    0
                    Не смогли себя родных не прорекламировать :-)
                      0
                      Да, но люди же тоже вроде не дураки.
                    0

                    Cabin уже умер, btw.

                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                    Самое читаемое