- PVSM.RU - https://www.pvsm.ru -
Anthony Smith Images / Shutterstock.com
Мы создаём Kubernetes как облачный сервис и пристально следим за актуальными инструментами разработчиков контейнерных приложений. В этом посте мы расскажем про инструменты, которые сильно облегчают работу с развёртываниями Kubernetes и помогают построить CI/CD.
Набор ролей Ansible для развертывания и конфигурации Kubernetes. Kubespray работает на AWS, GCE, Azure, Mail.Ru Cloud Solutions, OpenStack и bare metal IaaS. Kubespray — проект с открытым исходным кодом и открытой разработкой, под капотом у него kubeadm.
Благодаря Kubespray, для создания ресурсов (виртуальных машин, сетей, балансировщиков и так далее) и оркестрации достаточно знать Ansible, другие инструменты не нужны. Если вы знакомы с Ansible, вам это может здорово помочь.
Стоимость: бесплатно
Средство дистрибуции Kubernetes начиная с версии 1.4. Помогает инициализировать кластеры Kubernetes в их лучших конфигурациях на имеющейся инфраструктуре.
Kubeadm не умеет динамически создавать необходимую инфраструктуру в облаке. Его главное достоинство в том, что он может запускать минимально жизнеспособные кластеры Kubernetes в любой среде. Однако надстройки и сетевые настройки не входят в поставку Kubeadm, так что вам придётся настроить всё вручную или использовать другие инструменты.
Стоимость: бесплатно
Помогает создавать, удалять, обновлять и поддерживать промышленные отказоустойчивые кластеры Kubernetes из командной строки. Этот инструмент официально поддерживает Amazon Web Services (AWS). Поддержка GCE находится на бета-этапе, а VMware vSphere — на альфа-этапе. Также планируется поддержка других платформ, включая OpenStack. Kops позволяет контролировать полный жизненный цикл кластера Kubernetes — от подготовки инфраструктуры до удаления кластера.
Стоимость: бесплатно.
Кластеры Kubernetes в виде облачного сервиса. С его помощью можно за несколько минут получить готовый к работе кластер без его настройки, а также обновить его до нужной версии. Кластеры легко масштабируются и работают на инфраструктуре Mail.Ru, которая заточена под высоконагруженные сервисы.
Стоимость зависит от конфигурации. Например, тестовая среда из двух нод и одного мастера стоит 3200₽ в месяц. Можно потестировать бесплатно.
Терминальная консоль для кластера Kubernetes, с помощью которой можно управлять кластером и отслеживать его статус в реальном времени через старый добрый интерфейс. Kubebox показывает, как задействованы ресурсы подов, мониторит кластер, показывает журналы контейнеров, и так далее. Ещё в нём можно легко перейти к нужному пространству имен и выполнить команду в нужном контейнере, чтобы быстро устранить неполадки или восстановить работу.
Стоимость: бесплатно.
Предоставляет UI для анализа производительности. Агрегирует и обобщает метрики из различных источников, показывает администраторам высокоуровневые аналитические данные. Kubedash использует в качестве источника данных Heapster, который запускается как сервис по умолчанию на всех кластерах Kubernetes и собирает показатели и аналитику в каждом контейнере.
Стоимость: бесплатно.
Опенсорсный UI для Kubernetes, который можно использовать вместо нативной консоли kubectl. Инструмент интересен не только разработчикам, но и менеджерам проектов, поскольку помогает мониторить проекты, запущенные в кластере Kubernetes, в интуитивно понятном интерфейсе. Инструмент позволяет управлять запущенными приложениями, интегрируется с CI/CD пайплайнами. Containerum UI будет особенно полезен тем, кто только осваивает Kubernetes.
Стоимость: бесплатно.
Небольшой bash-скрипт для агрегирования журналов многих подов в один поток. Исходная версия Kubetail не умеет фильтровать или выделять, но на Github есть отдельный форк, который умеет раскрашивает логи с помощью MultiTail.
Стоимость: бесплатно.
Инструмент для выявления неполадок и мониторинга кластеров Docker Swarm и Kubernetes. Weave Scope автоматически генерирует топологии приложений и архитектуры, чем помогает находить узкие места в работе приложений. Можно развернуть Weave Scope как standalone-приложение на локальном сервере или ноутбуке, либо использовать его в виде SaaS в облаке Weave Cloud. С помощью Weave Scope легко группировать, фильтровать и искать контейнеры по названиям, меткам, потреблению ресурсов. Неожиданно полезная функциональность: можно зайти на ноды Kubernetes под root-пользователем из веб-консоли, не имея доступа по ssh.
Стоимость: автономный режим — бесплатно; стандартная SaaS-версия — 30 $/мес. за ноду (30 дней trial); корпоративная версия — 150 $/мес. за ноду.
Опенсорсный инструмент для мониторинга и уведомлений, создателей которого вдохновил Google Borg Monitor. Prometheus позволяет создавать собственные метрики (есть интеграция со всеми популярными языками программирования), а также содержит большое количество готовых интеграций (exporters) с различными технологиями: PostgreSQL, MySQL, AWS Cloudwatch, ETCD и Kubernetes.
Prometheus де факто стал стандартом мониторинга для Kubernetes. Существует специальный Prometheus Operator [11], позволяющий создавать экземпляры Prometheus в кластерах Kubernetes, в том числе тесную интеграцию с Grafana и Alertmanager.
Стоимость: бесплатно
Оператор Kubernetes для Icinga [13]. Searchlight периодически запускает проверки на кластерах Kubernetes, и если что-то идёт не так, отправляет вам email, SMS или пишет в чат. Searchlight включает дефолтный комплект проверок специально для Kubernetes.
Searchlight расширяет возможности мониторинга Prometheus как внешняя служба black box-мониторинга и служит резервной системой в случае полного отказа внутренних систем.
Стоимость: бесплатно.
Read-only системная панель, которая может работать со многими кластерами Kubernetes. С помощью Kube-ops-view легко перемещаться между кластерами, отслеживать ноды и состояние подов. Kube-ops-view анимирует некоторые процессы, например, создание и уничтожение подов. В качестве источника данных инструмент также использует Heapster.
Стоимость: бесплатно.
Aquasec защищает установки Kubernetes в течение всего жизненного цикла. На каждом контейнере решение развёртывает выделенный агент, который работает как межсетевой экран и затыкает дырки в безопасности контейнера. Агент взаимодействует с центральной консолью управления Aquasec, которая управляет ограничениями безопасности. Также Aquasec помогает настроить гибкий пайплайн реализации механизмов обеспечения безопасности в облачных и локальных средах.
С Aquasec связан другой инструмент с открытым кодом — Kube-Bench, который проверяет среду Kubernetes по длинному списку тестов из документа CIS Kubernetes Benchmark.
Стоимость: $0,29 за сканирование.
Ещё один инструмент, который работает как облачный межсетевой экран для приложений (Cloud Native Application Firewall) и анализирует сетевой трафик между контейнерами и службами. Twistlock анализирует стандартное поведение контейнеров и генерирует правила на основе этого поведения, так что администраторам не приходится создавать правила вручную. Twistlock также поддерживает CIS Benchmark для Kubernetes, начиная с версии 2.2.
Стоимость: от $1700 за годовую лицензию, есть пробный период.
Компонент платформы Sysdig Container Intelligence, поставляется как отдельное решение. Обеспечивает видимость контейнеров и интегрируется с инструментами оркестрации, в том числе — Kubernetes, Docker, AWS ECS и Apache Mesos. Благодаря Sysdig Secure пользователь может внедрять service-aware политики, блокировать атаки, анализировать историю и отслеживать производительность кластера. Sysdig Secure доступно как облачное и on-premise приложение.
Стоимость: бесплатно для автономного использования. Цена версии Pro для облака и в виде софта зависит от конфигурации.
Служба, которая оценивает, насколько ресурсы Kubernetes задействуют возможности повышения безопасности. Kubesec.io проверяет соответствие конфигураций ресурсов лучшим практикам. Пользователь получает полный контроль и рекомендации по улучшению общей безопасности системы. На веб-сайте проекта — много ссылок на внешние источники по безопасности контейнеров и Kubernetes.
Стоимость: бесплатно
Очень простой, но невероятно мощный генератор алиасов для kubectl. Позволяет значительно быстрее писать команды для повседневного администрирования Kubernetes, предоставляя более 800 коротких алиасов на все случаи жизни.
Стоимость: бесплатно.
Панель для удаленного управления кластерами Kubernetes с мобильного устройства (Android и iOS). С Cabin можно управлять приложениями, масштабировать развёртывания и выявлять неисправности в кластере. Помогает операторам кластеров Kubernetes быстро реагировать на инциденты из любого места.
Стоимость: бесплатно.
Небольшая утилита с открытым кодом, которая дополняет функциональность Kubectl, позволяя легко переключать контекст и подключаться к нескольким кластерам Kubernetes одновременно. Kubens позволяет перемещаться между пространствами имен Kubernetes. Оба инструмента поддерживают автозаполнение в оболочках bash/zsh/fish.
Стоимость: бесплатно.
Помогает быстрее работать с kubectl. Обеспечивает автодополнение команд и предлагает варианты. Может даже искать и исправлять неправильно введённые команды. Kube-shell отображает in-line справку о выполняемых командах.
Стоимость: бесплатно.
Kail — сокращение от Kubernetes Tail. Этот инструмент работает с кластерами Kubernetes и помогает отслеживать логи Docker для нужных подов. Kail позволяет фильтровать поды по службам, развёртываниям, меткам и другим параметрам. Поды будут автоматически добавлены в журнал (или удалены оттуда) после запуска, если он соответствует критериям фильтрации.
Стоимость: бесплатно.
Самый популярный опенсорсный CI/CD-сервер в мире. Для него существует бесплатный плагин [25], позволяющий развёртывать приложения в Kubernetes, проводить их rolling updates (последовательные обновления с минимизацией даунтайма), а также осуществлять Green/Blue-развёртывание обновлений. В этом посте [26] приводится детальный сценарий такой конфигурации.
Стоимость: бесплатно.
Популярный CI/CD сервис от команды JetBrains. С этим плагином [28] можно использовать инфраструктуру кластера Kubernetes для запуска билд-агентов TeamCity. Плагин поддерживает TeamCity версии 2017.1.x и новее.
Стоимость: бесплатно до трёх билд-агентов и 100 билд-конфигураций. $299 за лицензию, дающую возможность использовать дополнительный билд-агент и 10 дополнительных билд-конфигураций.
Универсальный веб-интерфейс кластеров Kubernetes. С помощью этой нативной панели управления гораздо легче устранять неполадки и мониторить кластеры. Для доступа к панели нужно создать безопасный прокси-канал между вашей машиной и API-сервером Kubernetes. Нативная панель Kubernetes полагается на инструмент для сбора данных Heapster, так что он должен быть установлен в системе. Несмотря на то, что Heapster официально не рекомендуется к использованию (deprecated), полноценной альтернативы ему пока что не существует.
Стоимость: бесплатно.
Веб-интерфейс для каталога приложений в кластерах 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
Нажмите здесь для печати.