Первоначально опубликовано на Неудача неизбежна Анкет
Kubernetes-это проект с открытым исходным кодом, который «контейнеры» и услуги «контейнеры» и управляет развертыванием и конфигурациями. Выпущенный Google в 2015 году, Kubernetes теперь поддерживается Облачный нативный вычислительный фундамент Анкет С момента своего выпуска он стал всемирным явлением. Большинство Облачные коренные компании Используйте его, поставщики SaaS предлагают коммерческие предварительные версии, и есть даже ежегодные Конвенция !
Что заставило Kubernetes стать такой фундаментальной услугой? Основным фактором является его возможности автоматизации. Kubernetes может автоматически вносить изменения в конфигурацию развернутых контейнеров или даже развернуть новые контейнеры на основе метрик, которые он отслеживает или запросы, сделанные инженерами. Наличие Kubernetes обрабатывает эти процессы, экономит время, устраняет труд и увеличивает последовательность.
Если эти преимущества звучат знакомым, это может быть потому, что они перекрываются с философией SRE. Но как вы включаете автоматизацию Kubernetes в свои методы SRE? В этом блоге мы объясним оператора Kubernetes — Kubernetes функционирует в основе индивидуальной автоматизации — и обсудим, как он может развивать ваше решение SRE.
В Операторы Kubernetes: Автоматизация платформы оркестровки контейнеров Авторы Джейсон Добис и Джошуа Вуд описывают оператора как «автоматизированного инженера по надежности сайта для своего применения». Учитывая многогранный опыт SRE и разнообразную рабочую нагрузку, это смелое заявление. Так что же может сделать оператор?
Операторы Kubernetes выполняют сложные задачи
Оператор может выполнять сложные задачи, чтобы достичь желаемых изменений в выходе приложения. Он может автоматически обрабатывать такие задачи, как:
- Развертывание приложений
- Обновление приложений для новых версий
- Преобразование настроек приложения
- Масштабирование приложений вверх и вниз в зависимости от использования
- Обработка сбоя
- Настройка мониторинга инфраструктуры
Без операторов Kubernetes инженеры должны были бы выполнить эти задачи. Автоматизация их экономит время и труд, и делает процедуры и результаты последовательными.
Kubernetes Операторы управляют пользовательскими ресурсами и приложениями, Kubernetes позволяет создавать и определять пользовательские ресурсы на основе конкретных приложений. Пользовательский ресурс — это объект данных, сгенерированный вашим приложением, содержащим метрики в состоянии приложения. Представьте, что у вас есть приложение, которое создает новые экземпляры сервера на основе использования. Вы можете определить свой пользовательский ресурс, чтобы проверить ОЗУ и Дисковое пространство для каждого нового экземпляра. Вы также можете определить пользовательский ресурс как цель, которую приложение пытается сопоставить. Оператор Kubernetes может затем управлять приложением для достижения целевого пользовательского ресурса; Если приложение раскручивает серверы с недостаточно ОЗУ или дисковым пространством, оператор может перенастроить настройки в соответствии с желаемой суммой.
Операторы Kubernetes принимают государственные решения
Оператор Kubernetes может изменить конфигурацию и использование приложения на основе вывода приложения. Это определяется пользовательскими ресурсами, определенными для этого приложения. Пользовательские ресурсы, показывающие желаемые государственные и пользовательские ресурсы, показывающие текущее состояние, образуя цикл. Оператор наблюдает за текущим состоянием, а затем предпринимает действия, которые заставят приложение производить желаемое состояние. После того, как действия выполняются, текущее состояние переоценивается, и петля начинается снова.
Например, пользовательский ресурс может определить желаемое состояние нового экземпляра сервера в качестве некоторого количества возможностей загрузки на основе его физических ресурсов. Затем оператор будет отрегулировать конфигурацию до тех пор, пока новые экземпляры не достигнут этих стандартов.
Если вы используете Kubernetes, вы обнаружите, что операторы строительства и реализации соответствуют вашим целям SRE.
Мониторинг оператора, SLIS и SLOS
При разработке пользовательского ресурса для вашего приложения вам необходимо выбрать, какие сигналы из вывода приложения будут контролироваться ресурсом, а какие нацеливаются на оператор. Это похоже на создание Slis и SLOS Анкет
Процесс определения метрик с наибольшим воздействием аналогичен операторам и SLIS. В учебнике Kubernetes Operators, Dobies и Wood предлагают сначала посмотреть на «Четыре золотых сигнала» (концепция из книги Google SRE ), чтобы определить, что должен контролировать оператор. Это:
- Задержка
- Движение
- Ошибки
- Создание насыщенных операторов для ваших приложений поможет вам понять, какие SLI и SLO должны быть установлены для них. Аналогичным образом, установка SLIS и SLO могут помочь вам понять, что должны отслеживать ваши операторы.
Вы можете заметить, что когда серверы перегружены, ваши клиенты недовольны доступностью приложения.
Вы можете установить пользовательский ресурс для мониторинга доступного дискового пространства. При оставшейся мощности 5% ваш пользовательский ресурс раскроет новые экземпляры сервера, предоставив вашим клиентам лучшее обслуживание. Ваш SLI будет основан на доступности и будет следить за пространством диска. Ваш SLO может диктовать, что вам нужно для достижения 99,9% доступности, чтобы ваши клиенты были счастливы, информируя точки вмешательства оператора.
Автоматизация развертывания приложений SRE
Ваша практика SRE будет включать приложения, развертываемые на регулярной основе для каждого нового экземпляра услуги. Например, вы можете развернуть приложение для мониторинга каждый раз, когда вы реализуете новую область системной архитектуры. Операторы Kubernetes могут ускорить и автоматизировать этот процесс. Для мониторинга Прометей оператор является одним из первых операторов, разработанных Kubernetes. Он автоматически развертывает и управляет новым экземпляром программного обеспечения для мониторинга с открытым исходным кодом Прометей на любые целевые кластеры.
SRE Tools представляют инвестиции в надежность. Время, затрачиваемое на их реализацию, оплачивается к тому времени, когда они экономят. Создание операторов — аналогичная инвестиция. Создавая операторов, вы экономите время на каждом развертывании. Кроме того, развертывания являются последовательными и надежными. Ваша практика SRE имеет меньше накладных расходов и может масштабироваться с вашей организацией.
Операторы и управление инцидентами
Операторы могут быть настроены, чтобы внести коррективы для обработки сбоя. Если пользовательский ресурс приложения варьируется от желаемого результата, оператор внесет изменения в компенсацию до тех пор, пока не будет достигнуто желаемое состояние. Причина изменения не имеет значения для оператора. Он работает только на основе текущих и желаемых состояний. Вам все равно нужно будет проработать ретроспективу инцидента, чтобы пузырьть факторы.
При разработке вашего плана реагирования на инцидент поведение ваших операторов может быть ценным ресурсом. Если вы знаете, что оператор автоматически попытается исправить поведение, вы можете включить это в свои ожидания и процедуры. Например, если у вас есть план реагирования на инцидент для перенасыщенных серверов, ваш оператор может раскрутить новые экземпляры сервера или реконфигурировать балансировку нагрузки. Ваш план реагирования примет это во внимание, сохранив вам некоторые шаги по устранению неполадок и позволяя вам сосредоточиться на исходной проблеме. Объединив операторов и Автоматизированные runbooks Вы можете минимизировать количество ручной эскалации и разрешить многие инциденты без вмешательства человека. Поскольку автоматизация является еще одной основной целью SRE, это еще один способ, которым операторы Kubernetes вписываются в вашу стратегию надежности.
По мере того, как вы перемещаете свои услуги на модель на основе контейнеров, а Kubernetes становится более фундаментальным для вашей практики DevOps, важно включить операторов в вашу стратегию надежности. Операторы позволяют вам расширять Kubernetes с помощью пользовательских ресурсов и ответов, что позволяет получить больше автоматизации и меньше труда.
Если вам понравился этот пост, проверьте эти ресурсы:
- Вебинар: современные метрики для понимания оперативного здоровья
- Как выбрать инструменты мониторинга для DevOps и SRE
- Как классифицировать инциденты
Оригинал: «https://dev.to/blameless/what-is-a-kubernetes-operator-and-why-it-matters-for-sre-2lkg»