Від початківця до професіонала: Посібник для новачків зі створення Helm-діаграм

pic

Фото від Syed Hussaini на Unsplash

Вступ

Kubernetes справжньою революцією в оркестрації контейнерів, а Helm charts стали де-факто стандартом для керування додатками Kubernetes. Якщо ви новачок у Helm, цей посібник проведе вас через процес створення вашого власного Helm chart з нуля, і допоможе стати експертом!

Що таке Helm Chart?

Helm chart — це пакет попередньо налаштованих ресурсів Kubernetes. Він містить все необхідне для розгортання і керування додатком у Kubernetes, включаючи:

  • Шаблони: YAML маніфести, що визначають ресурси Kubernetes (наприклад, Deployments, Services тощо).
  • Значення: Параметри конфігурації для налаштування розгортання.
  • Метадані: Файли, які описують chart, такі як його ім'я та версія.

Попередні вимоги

  1. Kubernetes кластер: Переконайтесь, що у вас є доступ до працюючого кластера Kubernetes.
  2. kubectl встановлено: Для взаємодії з вашим кластером.
  3. Helm встановлено: Встановіть Helm, дотримуючись офіційної інструкції.

Крок 1: Створіть Helm Chart

Почніть з створення Helm chart за допомогою команди helm create:

helm create my-application

Це створить папку з назвою my-application з наступною структурою:

my-application/  
├── charts/  
├── templates/  
│ ├── deployment.yaml  
│ ├── service.yaml  
│ ├── ingress.yaml  
│ └── _helpers.tpl  
├── values.yaml  
├── Chart.yaml  
└── README.md

Крок 2: Зрозумійте структуру Chart

Chart.yaml

Цей файл визначає метадані вашого chart.

apiVersion: v2  
name: my-application  
description: Helm chart для Kubernetes  
version: 0.1.0

values.yaml

Це файл за замовчуванням для конфігурації вашого chart.
Користувачі можуть перекривати ці значення під час розгортання.

replicaCount: 2  
image:  
 repository: nginx  
 tag: "1.20"  
service:  
 type: ClusterIP  
 port: 80

templates/

Ця папка містить маніфести Kubernetes, що використовують шаблони Go для динамічної конфігурації.

Крок 3: Налаштуйте своє розгортання

Редагуйте файл templates/deployment.yaml, щоб визначити ресурс Deployment для вашого додатка:

apiVersion: apps/v1  
kind: Deployment  
metadata:  
 name: {{ .Release.Name }}-deployment  
 labels:  
 app: {{ .Chart.Name }}  
spec:  
 replicas: {{ .Values.replicaCount }}  
 selector:  
 matchLabels:  
 app: {{ .Chart.Name }}  
 template:  
 metadata:  
 labels:  
 app: {{ .Chart.Name }}  
 spec:  
 containers:  
 - name: {{ .Chart.Name }}  
 image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"  
 ports:  
 - containerPort: {{ .Values.service.port }}

Крок 4: Розгорніть свій Helm Chart

Щоб розгорнути chart у вашому кластері Kubernetes, використовуйте:

helm install my-release ./my-application

Перевірка розгортання

kubectl get pods

Перекриття значень за замовчуванням

Ви можете перекрити values.yaml, використовуючи параметр --set:

helm install my-release ./my-application --set replicaCount=3

Крок 5: Тестування та відлагодження

Переглянути статус релізу

helm status my-release

Сухий запуск

Використовуйте параметр --dry-run, щоб симулювати розгортання:

helm install my-release ./my-application --dry-run

Оновлення релізу

Оновіть свій chart і застосуйте зміни:

helm upgrade my-release ./my-application

Крок 6: Пакування та поширення

Пакування chart

Щоб упакувати ваш chart у файл .tgz:

helm package ./my-application

Хостинг вашого chart

Ви можете розмістити свій chart у репозиторії Helm, такому як GitHub Pages або Artifact Hub.

CLI команди

# Загальні команди  
helm help # Показати довідку для Helm  
helm version # Показати інформацію про версію Helm  

# Керування chart  
helm create  # Створити новий Helm chart  
helm lint  # Запустити лінтер для перевірки chart  
helm dependency update # Оновити залежності для chart  
helm dependency build # Перебудувати залежності для chart  
helm dependency list # Переглянути залежності chart  

# Керування репозиторієм  
helm repo add   # Додати репозиторій Helm  
helm repo list # Переглянути всі репозиторії Helm  
helm repo update # Оновити репозиторії Helm  
helm repo remove  # Видалити репозиторій Helm  
helm search hub  # Шукати chart на Artifact Hub  
helm search repo  # Шукати chart у репозиторіях Helm  

# Керування релізами  
helm install   # Встановити Helm chart  
helm upgrade   # Оновити реліз  
helm rollback   # Повернути реліз до попередньої версії  
helm uninstall  # Видалити реліз  
helm list # Переглянути всі релізи Helm  
helm status  # Показати статус релізу  
helm history  # Переглянути історію релізу  

# Рендеринг шаблонів  
helm template   [flags] # Рендерити шаблони chart локально  
helm get values  # Отримати значення релізу  
helm get manifest  # Отримати маніфест релізу  
helm get notes  # Отримати примітки релізу  

# Відлагодження та тестування  
helm test  [flags] # Запустити тести для релізу  
helm install --dry-run   # Симулювати установку без виконання  
helm upgrade --dry-run   # Симулювати оновлення без виконання  
helm get hooks  # Отримати hooks релізу  

# Пакування chart та публікація  
helm package  # Упакувати chart у файл .tgz  
helm push   # Завантажити упакований chart до репозиторію (потрібен плагін Helm)  
helm show chart  # Показати детальну інформацію про chart  
helm show values  # Показати значення за замовчуванням для chart  
helm show all  # Показати всю інформацію про chart  

# Очистка

helm delete  # Псевдонім для `uninstall`  
helm repo cleanup # Видалити старі кеш-файли з репозиторіїв  

# Керування плагінами  
helm plugin install  # Встановити плагін Helm  
helm plugin list # Переглянути встановлені плагіни Helm  
helm plugin update  # Оновити плагін Helm  
helm plugin uninstall  # Видалити плагін Helm




Перекладено з: [From Zero to Hero: A Beginner’s Guide to Creating Helm Charts](https://medium.com/@reach2shristi.81/from-zero-to-hero-a-beginners-guide-to-creating-helm-charts-c17d7048ce85)

Leave a Reply

Your email address will not be published. Required fields are marked *