Рубрики
Uncategorized

Устранение неполадок Kubernetes Clusters в качестве разработчика с Komodor

Экосистема контейнера движется очень быстро, а новые инструменты разработаны специально для кластера Kubernetes … Помечено с Kubernetes, DevOps, CloudNative, Tooling.

Экосистема контейнера движется очень быстро, а новые инструменты, разработанные специально для кластеров Kubernetes, вводятся в очень быстром темпе. Несмотря на то, что несколько раз новый инструмент просто реализует известный механизм (уже присутствующий в мире виртуальной машины) с акцентом на контейнеры, время от времени мы видим инструменты, которые разработаны с нуля, а не адаптируют ранее существовавшую идею. Один такой инструмент — Комодор Анкет

Трудно описать Комодора в одном предложении, потому что он не похож ни на один другой существующий инструмент. Komodor — это инструмент для устранения неполадок Kubernetes, специально разработанный для разработчиков. Это интеллектуальная панель мониторинга, которая сочетает в себе живое представление о вашем кластере с несколькими интеграциями для других инструментов (таких как поставщики метриков), которые вы уже установили.

Цели Комодора сосредоточены на легком понимании того, что происходит на вашем кластере, что недавно изменилось, как это изменилось и кем. И под изменением мы подразумеваем всевозможные изменения, такие как новые развертывания, флаги функций, команды Adhoc Kubectl, проверки здоровья и все остальное, что влияет на ваш кластер.

Если вы во время инцидента (или даже при нормальных обстоятельствах), вы боролись с такими вопросами, как:

  • Что было в последний раз это приложение x было развернуто
  • Какие манифесты были изменены вчера в 17:00?
  • Как мне найти трубопровод CI, ответственный за приложение Y?
  • Кто изменил конфигурацию приложения z, которая является зависимостью вашего собственного приложения

Тогда Комодор здесь, чтобы помочь вам!

Предоставлять разработчикам информацию Они действительно нужны

Прежде чем погрузиться в особенности Komodor, важно понять мышление, стоящее за Komodor, поскольку это, по сути, инструмент, который не принадлежит к каким -либо существующим категориям инструментов.

Когда что -то пойдет не так в вашем кластере, ваш первый импульс — проверить ваше решение метрик. Объединенные метрики для вашего кластера — отличная практика, но этого недостаточно для устранения проблем (особенно если это 3,00 утра, и вы только что проснулись, глядя на кластер, с которым вы не знакомы).

Текущие метрические решения имеют некоторые общие характеристики:

  • Большинство из них были существующими инструментами, созданными для обнаженного металла и виртуальных машин, и просто адаптировали свои функциональные возможности для контейнеров со смешанным успехом
  • Они отлично рассказывают вам, что изменилось, но не почему и кем
  • Большую часть времени они предлагают много информации, которая не имеет отношения к всем случаям, и человек должен понимать, какая информация важна, а какая

Проблема также усугубляется тем фактом, что большинство существующих метрических решений нацелены на операторы:

Процесс устранения неполадок кластера Kubernetes в качестве разработчика особенно сложно с существующими инструментами. Как разработчик, вы не заботитесь о объемах настойчивости, ошибках DNS или с истекшими сертификатами. Эти проблемы обычно не решаются разработчиками в любом случае.

Разработчики, однако, заботятся:

  • Неудачные развертывания
  • Ошибки Потому что флаг функции был включен
  • Ошибки связи, которые были вызваны не самого развертывания, а зависимостью приложения, которое развертывается
  • Разбойник манифестные изменения, которые не происходят через CI/CD

Komodor Bridges этот пробел, предоставив вам инструмент специально для кластеров Kubernetes и, в частности, для всех, важных для разработчиков. Вы также можете использовать Komodor, если вы оператор и связать его с существующими инструментами.

Помощь разработчикам и операторам сотрудничать и обмениваться общим языком для решения проблем лежит в основе DevOps.

Как работает Комодор

Комодор предлагается в качестве гибридного приложения. Веб -интерфейс работает в облаке и управляется командой Komodor. Вам нужно установить в свой кластер Агент Komodor Как диаграмма руля, которая затем разжигает информацию с помощью облачного пользовательского интерфейса. Это означает, что общение для вашего кластера только общительное. Нет необходимости открывать какие -либо порты в вашем брандмауэре или изменять свой alluctlist с помощью определенных портовых диапазонов.

Как только ваш агент будет успешно установлен, ваша панель панели будет автоматически заполнена. С этого момента Komodor контролирует несколько событий в вашем кластере, и веб -интерфейс обновляется в режиме реального времени.

В настоящее время Komodor поддерживает развертывания, Daemonsets и Statefulsets. На левой боковой панели есть список всех ваших пространств имен вместе с некоторой дополнительной информацией, как мы увидим позже.

Поддержка пользовательских CRDS — это то, что может произойти в будущем.

Использование временной шкалы Komodor

В основе Комодора лежит временная шкала события. Если вы нажмете на любую службу/развертывание со своей панели инструментов, вы увидите полную временную шкалу для этой услуги (с момента, когда агент Komodor был установлен, конечно)

График является одним из основных преимуществ для Комодора, потому что он отражает все события, которые влияют на ваше применение. Из коробки Komodor контролирует ваше заявление на перезапуск, изменения реплик, явные изменения, изменения состояния здоровья и так далее. Добавляя дополнительные интеграции, вы также можете добавить в события временной шкалы от внешних поставщиков (например, получить оповещения от Graphana, New Relic или DataDog).

Прелесть этого механизма заключается в том, что Комодор может понять все события, которые произошли в вашем применении независимо от их источника. Это в отличие от других инструментов Kubernetes, которые знают только о их собственных событиях и не имеют полной картины того, что изменилось, когда.

В качестве примера для одного приложения может произойти следующее:

  • Изображение развертывания было модернизировано вашей системой CI/CD
  • Autoscaler POD изменил количество реплик, чтобы лучше обрабатывать трафик
  • Предупреждение была создана новой реликвией
  • Системный администратор изменил вручную манифест через kubectl

Комодор собирает все эти события и представит их в одном и том же графике в хронологическом порядке. Это дает вам отличное представление о том, что происходит с одним сервисом без необходимости прыгать между различными приложениями и мониторингами.

Последний случай очень важен, так как это означает, что Комодор поймает даже изменения ADHOC, выполненные вручную в кластере (например, с редактированием kubectl).

В приведенном ниже примере я вручную изменил реплики с kubectl без развертывания новой версии через CI/CD. Комодор не только идентифицирует манифест и отмечает его как «изменения реплики» на временной шкале, но и дает мне подробную разницу в том, что изменилось.

Обнаружение изменений ручной конфигурации очень важно, поскольку они могут нести ответственность за неудачные развертывания (хорошо известное явление дрейфа конфигурации). Несколько раз после неудачного разработчика развертывания будет тратить время, подумав о проблемах с их кодом, в то время как в действительности проблема заключалась в том, что кто-то изменил кластер или приложение необоснованным образом.

С Komodor теперь можно увидеть как запланированные, так и незапланированные изменения в одном и том же трубопроводе.

Соотношение событий между соответствующими услугами

Посмотреть на каждую услугу самостоятельно предлагает отличное понимание того, что ваше приложение всегда делает. Тем не менее, истинная сила Komodor становится более очевидной, когда вы выбираете несколько служб либо из одного и тех же пространств имен, либо из разных пространств имен.

Затем Комодор сделает умное слияние всех событий и представит вам единый график с событиями всех выбранных услуг (все еще в хронологическом порядке среди них).

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

Если вы когда -либо были на вызове, вы можете распознать следующий сценарий:

  1. Вы страдаете в 3,00 утра утра, чтобы решить проблему с приложением A — это приложение, с которым вы уже знакомы
  2. Вы проверяете свои панели мониторинга и понимаете, что развертывание не произошло для приложения А на прошлой неделе. Затем вы начинаете искать изменения конфигурации, и в вашей истории GIT говорится, что в последнее время не было внесено никаких изменений конфигурации.
  3. Получение намека на то, что другой зависимой услугой может быть проблема, которую вы начинаете рассматривать другие зависимые проекты B, C, D и т. Д., Который является трудоемким процессом
  4. Поскольку вы не знакомы с зависимым процессом, вам нужно спросить других людей (и, возможно, разбудить их), чтобы увидеть, была ли их конфигурация изменена или нет. Вы также тратите дополнительное время, чтобы проверить трубопроводы CI/CD для этих услуг.
  5. Этот процесс может продолжаться более глубоко (то есть проверить транзитивные зависимости ваших зависимостей)
  6. В конце концов, вы обнаружите, что ранее в тот день администратор SYS от неродственной команды сделал ручное изменение (не записано с помощью CI/CD) в зависимой службе, которая привела к тому, что ваше приложение не удалось в течение следующих часов.

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

Вы можете сделать этот процесс еще проще, если вы поможете Комодору понять, что «связанные услуги» означает для вас. Несмотря на то, что вы всегда можете выбрать дополнительные услуги, которые вы считаете связанными, Komodor имеет собственную интеграцию для Kiali/Istio и Datadog, которые автоматически будут рассматривать сетевые зависимости между службами и понимают все зависимости между вашими услугами.

Аннотация ваших приложений с помощью дополнительных метаданных

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

Но как насчет изменений приложений? В большинстве случаев (особенно если вы следуете за Gitops), исходный код приложения находится в отдельном репозитории GIT, который не имеет ничего общего с хранилищем, который удерживает ваши манифесты.

Комодор имеет нативную интеграцию с GitHub в виде дополнительных аннотаций. Аннотируя ваши развертывания дополнительной информацией для репозиториев GIT, которые включают ваше приложение, Komodor может общаться с GitHub и представлять вам DIFF как для кода приложения, так и для манифестов. Это огромное преимущество, когда дело доходит до устранения неполадок, так как вы можете следовать как инфраструктуре, так и кода, все сразу.

Вот пример аннотаций.

apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    app.komodor.com/app: https://github.com/kostis-codefresh/gitops-app-source-code
    app.komodor.com/app.ref: refs/heads/dummy
    app.komodor.com/deploy.job.jenkins: https://codefresh.io
    app.komodor.com/infra: kostis-codefresh/gitops-kubernetes-configuration
    app.komodor.com/infra.ref: refs/heads/master
    app.komodor.com/pipelines: https://github.com/kostis-codefresh/gitops-pipelines
    app.komodor.com/pipelines.ref: HEAD

И вот дополнительная информация в пользовательском интерфейсе

Обратите внимание, что информация GitHub является лишь одним из примеров аннотаций, которые вы можете добавить в свой сервис. Комодор поддерживает другие виды аннотаций, такие как ссылки на ваши метрики, ваш поставщик предупреждений, ваш трубопровод CI, ваш пьесы и так далее.

Это означает, что с Komodor вы можете легко исследовать кластер, с которым вы не знакомы. И вместо того, чтобы охотиться на информацию в слабых каналах или вики компании (или, что еще хуже, разбудить людей в середине инцидента), у вас есть вся информация прямо в Комодоре.

Если вы думаете, что видели этот тип аннотации, прежде чем вы не ошибаетесь. Они также используются Посол Для создания портала разработчиков. Прямо сейчас Komodor представляет свои собственные аннотации, но в будущем было бы здорово, если бы у нас был общий стандарт для этого типа информации.

Восстановление после инцидентов с Komodor

Я надеюсь, что теперь у вас есть хорошее представление о том, что предлагает Комодор. Это не замена для ваших метрик или оповещений. Это дополняет их оба, предлагая унифицированную панель панели для вашего кластера с информацией, которая вам нужна специально для приложений Kubernetes:

  1. Обзор всех услуг и их здоровья
  2. Комплексная временная шкала для всех событий, которые повлияли на ваш сервис (даже изменения ADHOC)
  3. Способ сгруппировать связанные с собой услуги и объединить их временные шкалы вместе
  4. Информация об изменениях инфраструктуры и кода приложения на одной панели инструментов
  5. Способ добавить дополнительные аннотации в ваши услуги для удобных ссылок на CI, Playbooks, метрики и т. Д.

Комодор изменит способ управления инцидентами, и в зависимости от количества усилий, которые вы придают ему (особенно с внешними интеграциями), вы можете значительно сократить количество потраченных впустую времени в поисках информации во время инцидента.

Чтобы начать исследовать Комодора и изменить способ, которым вы устраняете устранение неполадок, посетите приложения Kubernetes https://komodor.com/

Оригинал: «https://dev.to/codefreshio/troubleshooting-kubernetes-clusters-as-a-developer-with-komodor-16fo»