Рубрики
Uncategorized

Использование руля с Куберовщиком

Kubernetes — это мощная система оркестографии, однако, может быть очень трудно настроить ее развертывание … помечено Kubernetes, DevOps, Docker.

Kubernetes — это мощная система оркестографии, однако, это может быть очень трудно настроить процесс развертывания. Конкретные приложения могут помочь вам управлять несколькими независимыми ресурсами, такими как PODS, услуги, развертывание и наборы реплики. Тем не менее, каждый должен быть описан в файле ямля манифеста.

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

Хелм Является ли менеджер пакета с открытым исходным кодом для Kubernetes, который позволяет разработчикам и операторам пакет, настроить и развертывать приложения и услуги на кластерах Kubernetes легко. Он был вдохновлен домой для MacOS и теперь является частью фонда нативных вычислений облака.

В этой статье мы исследуем Helm 3.x, которая является новейшей версией на момент написания этой статьи.

Ищеты на Helm Hub для PostgreSQL из десятков различных репозиториев

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

Некоторые ключевые функции HELM включают :

  • Контроль для ролей доступа (RBAC)
  • Шаблоны Golang, которые позволяют работать с конфигурацией в виде текста
  • Scripts Lua для обработки конфигурации в качестве объекта
  • Система управления версиями развертывания

Шаблоны позволяют настроить свои развертывания, изменив несколько значений переменной, не изменяя шаблон напрямую. Пакеты Helm называются графики И они состоят из нескольких файлов конфигурации YAML и шаблонов, которые отображаются в файлах манифеста Kubernetes.

Базовый пакет (график) структура :

  • Chart.yaml — файл yaml, содержащий информацию о диаграмме
  • Лицензия (необязательно) — простой текстовый файл, содержащий лицензию на график
  • Readme.md (необязательно) — Человек-читаемый файл readme
  • Значения.yaml — Значения конфигурации по умолчанию для этого графика
  • values.schema.json (необязательно) — схема JSON для наложения структуры на файле ontents.yaml
  • Диаграммы/ — Определяет зависимости к диаграммам (рекомендуется использовать раздел зависимостей в Chart.yaml )
  • CRD/ — Пользовательские определения ресурсов
  • Шаблоны/ — каталог шаблонов, которые при сочетании со значениями будут генерировать действительные файлы манифеста Kubernetes

Шаблоны дают вам широкий спектр возможностей. Вы можете использовать переменные из контекста, применить различные функции (такие как «цитата», SHA256SUM), используют цитылы и условные случаи, а также импортируют другие файлы (также другие шаблоны или частичные).

  1. Как вы работаете Helm, хотя интерфейс командной строки (CLI), Шлем поиск Команда позволяет искать пакет по ключевым словам из репозиториев.

  2. Вы можете проверить Chart.yaml. , Значения.yaml и Readme.md для определенного пакета. вместе с созданием собственного диаграммы с Хелм создать <имя диаграммы> команда. Эта команда будет генерировать папку с указанным именем, в котором вы можете найти упомянутую структуру.

  3. Helm может установить обе папки, либо .tgz Архив. Создать .tgz. Из папки вашей пакеты используйте Peelm Package <Путь к папке> команда. Это создаст Пакет в вашем рабочем каталоге, используя имя и версию из метаданных, определенных в Chart.yaml файл.

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

  5. Вы также можете создать репозиторий с вашей машины с Хелм служить . Это в конечном итоге позволяет создать свой собственный корпоративный репозиторий или способствовать официальному устойчивому.

  6. Вы также можете позвонить в CELM Зависимости обновления <имя пакета> Команда, которая проверяет, что требуемые диаграммы, как выражены в Chart.yaml присутствуют в Диаграммы/ и находятся в приемлемой версии. Он дополнительно вытащит последние диаграммы, которые удовлетворяют зависимостям, и очищают старые зависимости.

  7. Кроме Диаграмма и Репозиторий Еще одна значительная концепция, которую вы должны знать, это Выпуск который является экземпляром диаграммы, работающего в кластере Kubernetes. Одна графика часто может быть установлена много раз в тот же кластер. И каждый раз, когда он установлен, создан новый релиз. Итак, вы можете иметь несколько PostgreSQL в том же кластере, в котором каждый выпуск будет иметь свое собственное имя выпуска. Вы можете подумать об этом, как «несколько контейнеров докеровки из одного изображения».

Источник: developer.ibm.com.

Клиент HELM используется для установки, обновления и создания графиков, а также компиляции и отправки их в API Kubernetes в приемлемой форме. Предыдущая версия имела архитектуру клиент-сервер, используя программу, запущенную на кластере с помощью Kubernetes, называемых Thilder. Это программное обеспечение отвечало за жизнь развертывания. Но этот подход привел к некоторым вопросам безопасности, которые являются одной из причин, по которым все функции теперь обрабатываются клиентом.

Установка HELM 3 заметно проще, чем предыдущая версия, поскольку необходимо установить только клиент. Он доступен для Windows, MacOS и Linux. Вы можете установить программу из двоичных выпусков, доморозков или через сконфигурированный скрипт установки.

1. ДЕТА НАЧАЛО С УСТАНОВКИ ХЛМ.

bash master $ curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current                                 Dload  Upload   Total   Spent    Left  Speed100  6794  100  6794    0     0  25961      0 --:--:-- --:--:-- --:--:-- 25931Error: could not find tillerHelm v3.1.2 is available. Changing from version .Downloading https://get.helm.sh/helm-v3.1.2-linux-amd64.tar.gzPreparing to install helm into /usr/local/binhelm installed into /usr/local/bin/helm

2. Проверьте, если все установлено правильно.

master $ helm version --short
V3.1.2+gd878d4d

3. По умолчанию Helm не имеет соединения с любым из репозиториев. Давайте добавим соединение с наиболее распространенным Стабильный один. (Вы можете проверить все доступные репозитории Список Helm Reppo ).

master $ helm repo add stable 

https://kubernetes-charts.storage.googleapis.com/
"stable" has been added to your repositories

4. После добавления репозитория мы должны сообщить Helm обновлять. Текущее локальное состояние Helm хранится в вашей среде в доме.

master $ helm repo update

Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "stable" chart repository
Update Complete. ⎈ Happy Helming!⎈

Команда HELM по умолчанию для обнаружения хоста уже установлена в ~/.kube/config Отказ Существует способ изменить или переопределить хост, но это за пределами объема этого сценария.

master $ helm env

HELM_BIN="helm"
HELM_DEBUG="false"
HELM_KUBECONTEXT=""
HELM_NAMESPACE="default"
HELM_PLUGINS="/root/.local/share/helm/plugins"
HELM_REGISTRY_CONFIG="/root/.config/helm/registry.json"
HELM_REPOSITORY_CACHE="/root/.cache/helm/repository"
HELM_REPOSITORY_CONFIG="/root/.config/helm/repositories.yaml"

6. Поиск WordPress в Helm Hub

master $ helm search hub wordpress

URL                                                     CHART VERSION   APP VERSION     DESCRIPTION https://hub.helm.sh/charts/presslabs/wordpress-...      v0.8.4          v0.8.4          Presslabs WordPress Operator Helm Chart
https://hub.helm.sh/charts/presslabs/wordpress-...      v0.8.3          v0.8.3          A Helm chart for deploying a WordPress site on ...
https://hub.helm.sh/charts/bitnami/wordpress            9.0.3           5.3.2           Web publishing platform for building blogs and ...

А также поиск в наших репозиториях (у нас есть только стабильный на данный момент).

master $ helm search repo wordpress

NAME                    CHART VERSION   APP VERSION     DESCRIPTION
stable/wordpress        9.0.2           5.3.2           DEPRECATED Web publishing platform for building...

6. У нас упоминается ранее, вы можете осмотреть диаграмму. Например, давайте сделаем информацию от Chart.yaml для WordPress Диаграмма. Вы также можете проверить helm show readme стабильно/wordpress и Helm Показать ценности Стабильные/WordPress Отказ

master $ helm show chart stable/wordpress

apiVersion: v1
appVersion: 5.3.2
dependencies:
- condition: mariadb.enabled
  name: mariadb
  repository: https://kubernetes-charts.storage.googleapis.com/
  tags:
  - wordpress-database
  version: 7.x.xdeprecated: truedescription: DEPRECATED Web publishing platform for building blogs and websites.
home: http://www.wordpress.com/
icon: https://bitnami.com/assets/stacks/wordpress/img/wordpress-stack-220x234.png
keywords:- wordpress- cms
- blog
- http- web- application
- php
name: wordpress
sources:
- https://github.com/bitnami/bitnami-docker-wordpress
version: 9.0.2

7. Создайте пространство имен для WordPress и установите тестовую графику.

master $ kubectl create namespace wordpress

namespace/wordpress created
master $ helm install test-wordpress stable/wordpress --namespace wordpress

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

Вы также можете установить переменные, такие как:

helm install test-wordpress \
  --set wordpressUsername=admin \
  --set wordpressPassword=password \
  --set mariadb.mariadbRootPassword=secretpassword \
    stable/wordpress

8. Еже в настоящее время давайте убедимся, что все правильно развернуто:

Как видите, все было развернуто правильно.

Helm — популярный диспетчер пакетов с открытым исходным кодом, который предлагает пользователям более гибкий способ управления кластером Kubernetes. Вы можете либо создавать свои собственные или использовать публичные пакеты с собственных или внешних репозиториев. Каждый пакет довольно гибкий и, в большинстве случаев, все, что вам нужно, определяют правые постоянные, из которых шаблон будет скомпилирован в соответствии с вашими потребностями. Чтобы создать свой собственный график, вы можете использовать силу шаблонов и/или сценариев/или LUA. Каждое обновление создаст блок истории, к которому вы можете откат в любое время. С Helm у вас есть вся сила Куберанес. И, в итоге, Helm позволяет вам работать с ролью-доступом, поэтому вы можете управлять своим кластером в команде.

Это приводит нас к концу этой краткой статьи, объяснив основы и особенности руля. Мы надеемся, что вам понравилось и смог воспользоваться этим.

Оригинал: «https://dev.to/appfleet/using-helm-with-kubernetes-c5n»