Рубрики
Uncategorized

6-минутное введение в руль

Упростите управление приложениями Kubernetes Фото Pexels.com после завершения 4-месячного перио … Tagged с Кубернетами, дежоптом, докером, начинающими.

Упростите управление приложениями Kubernetes

Фото Pexels.com.

После завершения 4-месячного периода в проекте клиента, который включал полную миграцию из «RAW» K8S-YAML-файлов на HELM-диаграммы, я полагал, что мне нужно поставить то, что я узнал в письменной форме для других, чтобы прочитать, и для Мне лучше учиться. Этот пост — маленький брат моего 8-минутного введения в Куберанес, убедитесь, что вы прочитаете это сначала, если вы еще не знакомы с основными концепциями K8S.

TL; доктор

Вы можете установить зависимости и проприетарное программное обеспечение на вашем кластере K8S простым: Helm Установите https://dev.to/prodopsio/an-8-minute-introduction-To-kubernetes-ii/mysql , есть сотни доступных установок, таких как этот, но вы также можете сделать это с Ваш собственный Продукт/Услуги!

Что такое руль?

  1. «A Helmsman или« Хелм »- это человек, который управляет кораблем, парусником, подводной лодкой, другими видами морского судна или космического корабля». — Википедия

  2. «Менеджер пакетов для Куберанес; Helm — лучший способ найти, поделиться и использовать программное обеспечение, построенное для Кубератесов». — Helm.sh.

Зачем нам это нужно?

Вопрос, который я спросил себя несколько раз, пытаясь понять, как эта волшебная установка вещь делает мою жизнь Kubernetes лучше. Ну, Helm позволяет вам привлечь, развернуть и управлять жизненным циклом приложений, как 3-й партийных продуктов, так и ваши собственные.

Больше не поддерживает случайные группы YAML-файлов (или очень длинных), описывающие стручки, реплики, наборы, сервисы, настройки RBAC и т. Д. С Helm есть структура и конвенция для программного пакета, который определяет слой yaml Шаблоны и другой слой, который меняет шаблоны под названием ценности . Значения — это вводится в шаблоны , таким образом, позволяя разделить конфигурацию и определение того, где возмоются изменения. Весь весь пакет называется « Helm Chart ».

По сути, вы создаете структурированные пакеты приложений, которые содержат все, что им нужно работать на кластере Kubernetes; в том числе зависимости Приложение требует.

Хелм — это CLI, Thilder — это его бэкэнд

Практически говоря, Helm — это инструмент CLI, который взаимодействует с его Backeng Server под названием «Ciller». Thilder обычно устанавливается, отправляя команду Helm init и живет в Kube-System пространство имен (если не указано иное). Он отвечает за развертывание диаграмм, запрошенных Helm.

Когда график установлен, Thilder создает «релиз» и начинает отслеживать его для изменений. Таким образом, Helm не только принимает участие в установке, но является фактическим инструментом развертывания, который управляет жизненным циклом приложений в кластере, используя выбросы диаграмм и их ревизии.

Хелм концепции |. Диаграмма

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

Корень диаграммы должен иметь только один файл с именем Chart.yaml условно. Он может необязательно (и по умолчанию, если вы используете GELM Create), есть еще несколько компонентов, на которых я буду разработать в ближайшее время, но во-первых, вот как выглядит типичная структура диаграммы:

    ├── Chart.yaml
    ├── templates
    │   ├── service.yaml
    │   └── replicaset.yaml
    ├── charts
    │   ├── nginx-ingress-1.1.2.tgz
    ├── requirements.lock
    ├── requirements.yaml
    └── values.yaml

В этом графике (давайте назовем это «Web-Ui»), есть шаблоны Сервис и Реплиз , который при установке HELM будет создан с помощью Значения.yaml Файл, который можно увидеть в нижней части списка. Кроме того, диаграмма Web-UI требует запуска Nginx, и поэтому nginx появляется как подкарт под диаграммы каталог. требования .YAML Является ли файл, описывающий фактическое требование и списки Nginx внутри. Файл блокировки, который также является частью пакета, создается, когда HELM устанавливает требования при команде с обновлением зависимости HELM.

А Chart.yaml. Это описание пакета и на самом деле единственный требуемый файл в нем есть только три требуемых записи: авивение , Имя и Версия Отказ Вот пример того, как было бы выглядеть: (Вы можете найти полный список вариантов и записей в диаграмме прямо здесь .)

    apiVersion: v1
    name: drone
    version: 1.0.0

Шаблоны

Шаблоны являются необязательным подкаталогом в диаграмме. Они объединяют компоненты K8S, например Сервис, реплиз, развертывание и т. Д., Преобразуется в Шаблон Формат, к которым значения будут соответствовать, позже, сопоставляются. Давайте посмотрим частичный пример шаблона:

    apiVersion: apps/v1
    kind: DaemonSet
    metadata:
      name: {{ .Values.name }}
      labels:
        app: {{ .Values.name }}
        somelabel: {{ .Values.labels.somelabelkey }}

Ценности

Значения описаны в файле значений.yaml, который обязательно является структурой YAML, удерживающей значения, чтобы соответствовать шаблонам. Учитывая шаблон выше, файл сопоставления значения:

    name: web-ui
    labels:
      somelabelkey: somelabelvalue

Подразделение

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

Хелм концепции |. Репозиторий

Репозитории находятся в том, где гипты Helm проводятся и поддерживаются. По сути, это набор шаблонов и значений конфигурации, хранящиеся в виде кода (иногда упакованы в виде файла .tar.gz ). Когда у вас Helm установите стабильный/Redis по умолчанию, Helm тянется к Helm/Charts Reppo на Github , поиск под устойчивым деревом.

Посетите этот репо, и вы также найдете подкаталог инкубатора, где вы можете получить и установить инкубированные графики, которые еще не были помечены как готовые (стабильные). Это не значит, что вы не можете использовать их; Попробуйте представить их в кластере разработки и использовать их. Сообщество руля управляет строгими SEM-VR Руководящие принципы для версий, и даже самые маленькие изменения создают новую диаграмму выпуска. Вы можете быть уверены, что если определенная версия удаленного диаграмма работает одним способом, она никогда не нарушится на вас из синего.

Отличным примером использования другого репо, является диаграммы Elasticsearch Elastic, которая используется для обслуживания компанией в REPO HELM/CHARTS.

Эластика решила переместить свой продукт в свой Helm Repo, и получить последний официальный график, который вы можете сейчас Добавить Их репо к Хелюту от: Helm Reppo добавить упругий https://helm.elastic.co затем: helm установить - имейте elasticsearch эластичный/эластик

Хелм концепции |. Выпуск

Подумайте о выпуске как механизма для отслеживания установленных приложений на кластере K8S; Когда приложение устанавливается Helm, создается релиз. Вы можете создавать различные установки продукта, например, Redis и имеют два разных выпуска, созданные и отслеживаемые в кластере.

Выпуски могут быть отслеживаются с помощью Helm Ls, у каждого будет «пересмотр», который является терминологией версий релиза HELM; Если определенный релиз обновляется, например, добавление большего количества памяти для выпуска Redis, редакция будет увеличиваться. Хелм позволяет вращаться к определенной ревизии, что делает его практически менеджером для развертывания и обработчика статуса производства.

TLS.

Thilder и Helm нужны способ общаться. По умолчанию это соединение не очень безопасно, что означает, что если одна из конечных точек скомпрометирована или доступна скомпрометированной компонентом, трафик можно прочитать и проанализировать. Помимо обсуждения фактической поверхности атаки не защищает связь между системами, мы можем легко создать безопасное соединение TLS с использованием автоматически сгенерированного сертификата. Для того, чтобы сделать это Вот скрипт, который берет вас через процесс и может быть реализован где угодно.

Взносы

Вы можете оказаться (например, у меня есть) в новом требовании к способности или функции с официального диаграммы под github.com/helm/charts. , это вполне может быть ошибка (не так вряд ли с инкубаторами диаграммами). Поскольку Helm и его графики являются как проекты с открытым исходным кодом с сотнями участников, они интенсивно активны. Внесите изменения в нужную таблицу и откройте PR с вкладом, если все требования были сделаны и позаботьтесь о том, команда будет одобрить изменения в течение нескольких дней.

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

Вот и все.

Я надеюсь, что теперь вы понимаете Helm и почему это такая мощная система. Как это просто введение, учиться и «почувствовать» это, там нет идущих на интенсивную работу; Развертывание 3-го вечеринок и строительство ваших графиков.

Меня зовут Омер, и я инженер в Продро — Глобальная консультация, которая обеспечивает программное обеспечение в надежном, безопасном и простом виде, приняв культуру DevOps. Дайте мне знать свои мысли в комментариях ниже, или связаться со мной прямо в Twitter @ ОМЕРГСР . CLAP Если вам понравилось, это помогает мне сосредоточиться на моих будущих писаниях.

Оригинал: «https://dev.to/prodopsio/a-6-minute-introduction-to-helm-bc3»