Если вы искали мигрировать в контейнеры или уже запустите приложение, используя контейнеры, вы, вероятно, слышали о Куберате. Kubernetes — это программное обеспечение Orchestration, которое позволяет всевозможные потрясающие функциональные возможности уровня Enterprise Enterprise, такие как Fail-Over, Rolling Updates, Networking между распределенными узлами и т. Д. Во время этого письма усыновление Kubernetes стоит на 86%. Все ресурсы, необходимые для Orchestrate Приложение в Kubernetes, могут быть настроены с помощью файлов YAML. Helm — это программное обеспечение, которое обеспечивает возможность шаблона, распространять и даже развертывать развертывание этих файлов конфигурации приложения.
Шаблон хелма
В подавляющем большинстве случаев случая ваших файлов YAML, которые представляют ваши конфигурации Kubernetes, должны иметь разные значения в них между различными средами, которые необходимо развернуть ваше приложение. HELM предоставляет возможность определять файлы конфигурации Kubernetes в качестве шаблонов, которые могут быть использованы для создания полного вывода YAML на основе набора значений по умолчанию или пользовательских значений. Например, учитывая следующее развертывание:
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80
Наиболее распространенным случаем необходимости изменения значений является изменение тега изображения. Для этого примера мы также сделаем количество динамических реплик, на всякий случай, если нам не нужно много реплик в средах Dev или Test. Мы собираемся изменить развертывание к этому:
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: {{ .Values.replicas }} selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:{{ .Values.dockerTag }} ports: - containerPort: 80
Упаковка и распределение шлема
HELM предоставляет возможность упаковать, версию и распространять свои файлы конфигурации Kubernetes YAML в чем-то, называемом таблицей. График HELM состоит из всех шаблонов и значений по умолчанию, необходимых для оркестрата приложения в Kubernetes. Графики могут быть подталкиваются и потянуты в и из репозитория, похожих на репозитории Maven или Docker. Рулевой пакет
Команда создаст файл архива, который затем можно нажать на репозиторий диаграммы HELM. Затем эта диаграмма может быть вытянута и используется для развертывания приложения. Эти диаграммы также могут быть версификаты, поэтому, когда что-то изменяется в конфигурации Kubernetes вашего приложения, вы можете распространять это как новую версию вашей графики.
Управление развертыванием Helm
Графики могут быть установлены, модернизированы, возвращены или удалены из экземпляра Kubernetes через команды HELM. Метаданные установки обрабатываются внутри Helm, и каждое обновление вашей графики рассматривается как новый «релиз». Это означает, что вы можете отбросить релизы, просто выполняющие команду HELM, чтобы вернуть конфигурацию Kubernetes обратно в предыдущее состояние. Это особенно полезно, если вы обновляете свое приложение с изменением значения конфигурации, но фактическое содержимое диаграммы не изменилось.
Заключение
Если вы оформируете свое контейнерное приложение с Kubernetes, вы быстро понадобятся функции, такие как шаблоны и распространение и управление развертыванием. Helm легко предоставляет эти функции и также легко задокументированы с помощью примеров. Здесь гораздо более глубокая информация и документация о функциональности и особенностях Helm здесь — https://helm.sh/docs/
Оригинал: «https://dev.to/edlegaultle/introduction-to-helm-50jl»