Изучение Helm Charts: подробное руководство с примерами кода

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

  1. Установка Helm:
    Для начала вам необходимо установить Helm на локальный компьютер. Вот пример установки Helm в Linux с помощью менеджера пакетов:
$ curl https://baltocdn.com/helm/signing.asc | sudo apt-key add -
$ sudo apt-get install apt-transport-https --yes
$ echo "deb https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
$ sudo apt-get update
$ sudo apt-get install helm
  1. Создание Helm-диаграммы.
    Чтобы создать новую Helm-диаграмму, вы можете использовать команду helm create. Это создаст базовую структуру диаграммы с файлами шаблонов для различных ресурсов Kubernetes. Вот пример:
$ helm create mychart
  1. Настройка диаграммы.
    После создания диаграммы вы можете настроить ее, изменив файлы шаблонов. Например, вы можете определить ресурсы развертывания, обслуживания и входа для вашего приложения. Вот пример базового файла deployment.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ .Chart.Name }}
spec:
  replicas: {{ .Values.replicaCount }}
  template:
    spec:
      containers:
        - name: {{ .Chart.Name }}
          image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
          ports:
            - containerPort: {{ .Values.service.port }}
  1. Упаковка и установка диаграммы.
    Чтобы упаковать диаграмму, вы можете использовать команду helm package. При этом будет создан файл .tgz, содержащий файлы диаграмм. Вот пример:
$ helm package mychart

Чтобы установить диаграмму в кластер Kubernetes, вы можете использовать команду helm install. Вот пример:

$ helm install myrelease mychart-0.1.0.tgz
  1. Обновление и откат.
    Helm позволяет обновить приложение до новой версии или выполнить откат к предыдущей версии. Вот команды для обновления и отката:

Обновление:

$ helm upgrade myrelease mychart-0.2.0.tgz

Откат:

$ helm rollback myrelease 1

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