رفتن به محتوا
بازگشت به وبلاگ
دواپس

Helm Charts: بسته‌بندی برنامه‌های Kubernetes

ایجاد، انتشار و مدیریت Helm Chart برای Kubernetes: Template، فایل‌های Values، Hook، وابستگی‌های Chart و مخازن خصوصی.

شهریور ۱۴۰۴
۱۴ دقیقه مطالعه

مقدمه

Helm مدیر بسته Kubernetes است. بدون Helm، استقرار حتی یک اپلیکیشن ساده نیازمند نگهداری دستی ده‌ها فایل YAML است. با Helm، chart (بسته) ایجاد می‌کنید که می‌توان آن را نسخه‌بندی، اشتراک‌گذاری و با یک دستور deploy کرد.

نصب و استفاده

BASH
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

# اضافه کردن مخزن
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update

# نصب Redis
helm install my-redis bitnami/redis --namespace databases --create-namespace

# ارتقا
helm upgrade my-redis bitnami/redis --reuse-values --set auth.password=newpass

# بازگشت به نسخه قبلی
helm rollback my-redis 1 -n databases

ایجاد Chart

BASH
helm create myapp
YAML
# values.yaml
replicaCount: 2

image:
  repository: company/myapp
  tag: ""

service:
  type: ClusterIP
  port: 8080

ingress:
  enabled: true
  hosts:
    - host: app.company.com
      paths:
        - path: /
          pathType: Prefix

استقرار محیط‌های مختلف

BASH
# Staging
helm upgrade --install myapp ./myapp   -f values.yaml -f values-staging.yaml   --namespace staging

# Production
helm upgrade --install myapp ./myapp   -f values.yaml -f values-production.yaml   --set image.tag=v3.5.2

دیباگ

BASH
# رندر بدون deploy
helm template myapp ./myapp -f values.yaml

# بررسی اعتبار
helm lint ./myapp

Helm chart ها استقرارهای Kubernetes را از حالت موقتی به release های قابل تکرار و کنترل‌شده با نسخه تبدیل می‌کنند.