Helm چیست؟
مدیر بسته (Package Manager) رسمی Kubernetes؛ اپلیکیشنهای چند-منبعی (Deployment، Service، ConfigMap و ...) را بهصورت یک بسته نسخهبندیشده به نام Chart بستهبندی و نصب میکند.
چرا مهم است؟
استقرار یک اپلیکیشن واقعی روی Kubernetes معمولاً به دهها فایل YAML نیاز دارد؛ Helm این فایلها را در یک بسته قابلنصب و پارامتریک جمع میکند تا مثل نصب یک پکیج NuGet/npm عمل کند.
تعریف
Chart واحد بستهبندی Helm است: مجموعهای از Templateهای YAML بههمراه یک فایل values.yaml برای مقداردهی پارامترها (تعداد Replica، نسخه Image، تنظیمات محیط و ...).
دستورات رایج
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-redis bitnami/redis --set auth.enabled=false
helm upgrade my-redis bitnami/redis --set replica.replicaCount=3
helm rollback my-redis 1
helm uninstall my-redis
ساختار یک Chart سفارشی
my-chart/
Chart.yaml # متادیتای Chart (نام، نسخه)
values.yaml # مقادیر پیشفرض قابل بازنویسی
templates/
deployment.yaml
service.yaml
چرا Helm؟
- نصب/حذف کل اپلیکیشن با یک دستور، بهجای اعمال دستی چند فایل YAML
- Rollback ساده به نسخه قبلی در صورت بروز مشکل
- استفاده مجدد از Chart های آماده (Bitnami و ...) برای ابزارهایی مثل Redis، PostgreSQL، RabbitMQ
اشتباه رایج
❌ Hardcode کردن مقادیر محیطی (رمز عبور، آدرس دیتابیس) مستقیم داخل Template بهجای values.yaml — باعث میشود همان Chart برای محیطهای مختلف (Dev/Staging/Prod) قابل استفاده مجدد نباشد.
منبع و مطالعه بیشتر
خلاصه
Helm فایلهای YAML یک اپلیکیشن Kubernetes را در یک Chart قابلنصب و پارامتریک بستهبندی میکند و امکان Rollback ساده میدهد. مقادیر محیطی را همیشه در values.yaml نگه دارید، نه داخل Template. مرجع کامل: مستندات رسمی Helm.
