- PVSM.RU - https://www.pvsm.ru -

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

25 полезных инструментов Kubernetes: развёртывание и управление - 1
Anthony Smith Images / Shutterstock.com

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

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

Kubespray [1]

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

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

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

Kubeadm [2]

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

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

Kops [3]

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

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

Mail.Ru Cloud Solutions: Containers [4]

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

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

Мониторинг

Kubebox [5]

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

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

Kubedash [6]

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

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

Containerum [7]

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

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

Kubetail [8]

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

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

Weave Scope [9]

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

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

Prometheus [10]

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

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

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

Searchlight [12]

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

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

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

Kubernetes Operational View (Kube-ops-view) [14]

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

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

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

Aquasec [15]

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

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

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

Twistlock [16]

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

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

Sysdig Secure [17]

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

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

Kubesec.io [18]

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

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

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

kubectl-aliases [19]

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

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

Cabin [20]

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

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

Kubectx/Kubens [21]

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

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

Kube-shell [22]

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

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

Kail [23]

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

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

CI/CD Tools

Jenkins [24]

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

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

TeamCity [27]

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

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

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

Kubernetes Dashboard [29]

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

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

Kubeapps [30]

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

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

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

Автор: pxeno

Источник [31]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/oblachny-e-servisy/295053

Ссылки в тексте:

[1] Kubespray: https://github.com/kubernetes-incubator/kubespray

[2] Kubeadm: https://github.com/kubernetes/kubeadm

[3] Kops: https://github.com/kubernetes/kops

[4] Mail.Ru Cloud Solutions: Containers: https://mcs.mail.ru/containers

[5] Kubebox: https://github.com/astefanutti/kubebox

[6] Kubedash: https://github.com/kubernetes-retired/kubedash

[7] Containerum: https://containerum.com/software/

[8] Kubetail: https://github.com/johanhaleby/kubetailhttps://github.com/aks/kubetail

[9] Weave Scope: https://www.weave.works/oss/scope/

[10] Prometheus: https://github.com/prometheus/prometheus/blob/master/documentation/examples/prometheus-kubernetes.yml

[11] Prometheus Operator: https://github.com/flant/prometheus-operator

[12] Searchlight: https://github.com/appscode/searchlight

[13] Icinga: https://www.icinga.com/

[14] Kubernetes Operational View (Kube-ops-view): https://github.com/hjacobs/kube-ops-view

[15] Aquasec: https://www.aquasec.com/

[16] Twistlock: https://www.twistlock.com/

[17] Sysdig Secure: https://sysdig.com/product/secure/

[18] Kubesec.io: https://kubesec.io/

[19] kubectl-aliases: https://github.com/ahmetb/kubectl-aliases

[20] Cabin: https://github.com/bitnami-labs/cabin

[21] Kubectx/Kubens: https://github.com/ahmetb/kubectx

[22] Kube-shell: https://github.com/cloudnativelabs/kube-shell

[23] Kail: https://github.com/boz/kail

[24] Jenkins: https://jenkins.io/

[25] бесплатный плагин: https://plugins.jenkins.io/kubernetes-cd

[26] В этом посте: https://kubernetes.io/blog/2018/04/30/zero-downtime-deployment-kubernetes-jenkins/

[27] TeamCity: https://www.jetbrains.com/teamcity

[28] этим плагином: https://blog.jetbrains.com/teamcity/2017/10/teamcity-kubernetes-support-plugin/

[29] Kubernetes Dashboard: https://github.com/kubernetes/dashboard#kubernetes-dashboard

[30] Kubeapps: https://kubeapps.com/

[31] Источник: https://habr.com/post/425343/?utm_campaign=425343