← Về danh sách bài học Bài 19/25

📦 Bài 19: Helm - Package Manager

⏱️ Thời gian: 25 phút | 📚 Độ khó: Trung bình

🎯 Sau bài học này, bạn sẽ:

1. Helm Là Gì?

Helm là package manager cho Kubernetes (như apt, npm). Đóng gói apps thành Charts.

💡 Lợi ích:
• Không viết YAML lặp đi lặp lại
• Versioning và rollback
• Share qua repositories
• Parameterize với values

2. Cài Đặt Helm

# macOS
brew install helm

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

# Verify
helm version

3. Helm Repositories

# Thêm repo
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx

# Update repos
helm repo update

# Tìm charts
helm search repo nginx
helm search hub prometheus

4. Install & Manage

# Install chart
helm install my-nginx bitnami/nginx

# Install với custom values
helm install my-nginx bitnami/nginx -f values.yaml
helm install my-nginx bitnami/nginx --set replicaCount=3

# Xem releases
helm list
helm status my-nginx

# Upgrade
helm upgrade my-nginx bitnami/nginx --set replicaCount=5

# Rollback
helm rollback my-nginx 1

# Uninstall
helm uninstall my-nginx

5. Custom Values

# values.yaml
replicaCount: 3
image:
  repository: nginx
  tag: "1.24"
service:
  type: LoadBalancer
  port: 80
resources:
  limits:
    cpu: 200m
    memory: 256Mi

6. Tạo Chart Riêng

# Scaffold chart mới
helm create my-app

# Cấu trúc
my-app/
├── Chart.yaml          # Metadata
├── values.yaml         # Default values
├── templates/
│   ├── deployment.yaml
│   ├── service.yaml
│   ├── ingress.yaml
│   └── _helpers.tpl
└── charts/             # Dependencies

📝 Tóm Tắt