Prerequisites
Before installing any Douban Helm Charts, ensure your environment meets these requirements:
Required Components
Kubernetes Cluster Version 1.19 or higher running and accessible
Helm Version 3.0 or higher installed locally
kubectl Configured to communicate with your cluster
Cluster Permissions Sufficient RBAC permissions to create resources
Verify Your Setup
Check your Kubernetes cluster:
kubectl cluster-info
kubectl version --short
Check your Helm installation:
Expected output:
version.BuildInfo{Version:"v3.14.0", GitCommit:"...", GitTreeState:"clean", GoVersion:"go1.21.5"}
Helm v2 is no longer supported. Ensure you’re using Helm v3 or later.
Installing Helm
If you don’t have Helm installed, follow these platform-specific instructions:
Using Homebrew: Verify installation: Using the installation script: curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
Or using package managers: curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
sudo apt-get install apt-transport-https --yes
echo "deb [arch=$( dpkg --print-architecture ) signed-by=/usr/share/keyrings/helm.gpg] 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
Using Chocolatey: choco install kubernetes - helm
Using Scoop: Or download the binary from GitHub Releases .
Repository Setup
Adding the Douban Repository
Add the Douban Helm Charts repository:
helm repo add douban https://douban.github.io/charts/
Successful output:
"douban" has been added to your repositories
Updating Repository Cache
Update your local cache to fetch the latest chart versions:
Output:
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "douban" chart repository
Update Complete. Happy Helming!
Run helm repo update regularly to ensure you have access to the latest chart versions.
Verifying Repository Configuration
List all configured repositories:
Expected output:
NAME URL
douban https://douban.github.io/charts/
Browsing Available Charts
List All Douban Charts
Output:
NAME CHART VERSION APP VERSION DESCRIPTION
douban/aliyun-exporter 0.1.0 1.0.0 Aliyun CloudMonitor exporter for Prometheus
douban/helpdesk 0.3.3 0.2.0 A Helm chart for Douban Helpdesk
douban/nginx 0.4.1 1.16.0 A Helm chart for Kubernetes
douban/overlord 0.1.0 1.0.0 Distributed caching service
...
Search for Specific Charts
Search by keyword:
helm search repo douban/nginx
Search across all versions:
helm search repo douban/nginx --versions
View chart metadata:
helm show chart douban/nginx
View default values:
helm show values douban/nginx
View full chart information:
helm show all douban/nginx
Installing Charts
Basic Installation
Install a chart with default values:
helm install [RELEASE_NAME] douban/[CHART_NAME]
Example:
helm install my-nginx douban/nginx
Installation with Custom Values
Using a Values File
Create a custom values file custom-values.yaml:
replicaCount : 3
image :
repository : nginx
tag : "1.25.0"
pullPolicy : IfNotPresent
resources :
limits :
cpu : 200m
memory : 256Mi
requests :
cpu : 100m
memory : 128Mi
service :
type : ClusterIP
port : 80
autoscaling :
enabled : true
minReplicas : 2
maxReplicas : 10
targetCPUUtilizationPercentage : 70
Install with custom values:
helm install my-nginx douban/nginx -f custom-values.yaml
Using —set Flags
Override specific values inline:
helm install my-nginx douban/nginx \
--set replicaCount= 3 \
--set image.tag= 1.25.0 \
--set resources.requests.memory=128Mi
Combining Multiple Values Files
helm install my-nginx douban/nginx \
-f base-values.yaml \
-f production-values.yaml \
--set service.type=LoadBalancer
Values are merged in order. Later values override earlier ones: file1 < file2 < —set flags
Installation Options
Install in a Specific Namespace
helm install my-nginx douban/nginx --namespace production --create-namespace
Dry Run (Preview Installation)
See what would be installed without actually installing:
helm install my-nginx douban/nginx --dry-run --debug
Wait for Resources to be Ready
helm install my-nginx douban/nginx --wait --timeout 5m
Generate Kubernetes Manifests
Generate YAML without installing:
helm template my-nginx douban/nginx > nginx-manifests.yaml
Common Installation Patterns
Pattern 1: Web Application with Ingress
replicaCount : 2
image :
repository : nginx
tag : "1.25.0"
ingress :
enabled : true
className : nginx
annotations :
cert-manager.io/cluster-issuer : letsencrypt-prod
hosts :
- host : app.example.com
paths :
- path : /
pathType : Prefix
tls :
- secretName : app-tls
hosts :
- app.example.com
resources :
limits :
cpu : 500m
memory : 512Mi
requests :
cpu : 250m
memory : 256Mi
helm install web-app douban/nginx -f web-app-values.yaml
Pattern 2: Application with Monitoring
monitored-app-values.yaml
replicaCount : 3
serviceMonitor :
enabled : true
prometheusRule :
enabled : true
additionalLabels :
release : prometheus-operator
rules :
- alert : HighErrorRate
expr : rate(http_requests_total{status=~"5.."}[5m]) > 0.05
annotations :
summary : High HTTP error rate detected
helm install monitored-app douban/nginx -f monitored-app-values.yaml
Pattern 3: High-Availability Deployment
replicaCount : 5
autoscaling :
enabled : true
minReplicas : 3
maxReplicas : 20
targetCPUUtilizationPercentage : 60
targetMemoryUtilizationPercentage : 80
affinity :
podAntiAffinity :
preferredDuringSchedulingIgnoredDuringExecution :
- weight : 100
podAffinityTerm :
labelSelector :
matchExpressions :
- key : app.kubernetes.io/name
operator : In
values :
- nginx
topologyKey : kubernetes.io/hostname
resources :
limits :
cpu : 1000m
memory : 1Gi
requests :
cpu : 500m
memory : 512Mi
helm install ha-app douban/nginx -f ha-values.yaml
Upgrading Charts
Basic Upgrade
Upgrade to the latest chart version:
helm upgrade my-nginx douban/nginx
Upgrade with New Values
helm upgrade my-nginx douban/nginx -f updated-values.yaml
Upgrade to Specific Chart Version
helm upgrade my-nginx douban/nginx --version 0.4.1
Upgrade with Rollback on Failure
helm upgrade my-nginx douban/nginx --atomic --timeout 5m
The --atomic flag automatically rolls back changes if the upgrade fails.
Reuse Values from Previous Release
helm upgrade my-nginx douban/nginx --reuse-values
View Upgrade Diff
Before upgrading, see what would change:
helm diff upgrade my-nginx douban/nginx -f new-values.yaml
Managing Releases
List Releases
List all releases in current namespace:
List releases across all namespaces:
helm list --all-namespaces
Include uninstalled and failed releases:
View Release Status
View Release History
Output:
REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION
1 Thu Mar 5 10:00:00 2026 superseded nginx-0.4.0 1.16.0 Install complete
2 Thu Mar 5 11:00:00 2026 deployed nginx-0.4.1 1.16.0 Upgrade complete
Get Release Values
View values used in current release:
View all values (including defaults):
helm get values my-nginx --all
Get Release Manifest
View rendered Kubernetes manifests:
helm get manifest my-nginx
Rolling Back Releases
Rollback to Previous Revision
Rollback to Specific Revision
Rollback with Wait
helm rollback my-nginx --wait --timeout 5m
Uninstalling Charts
Basic Uninstall
Uninstall with Release History Retention
Keep release history for potential rollback:
helm uninstall my-nginx --keep-history
Uninstall from Specific Namespace
helm uninstall my-nginx --namespace production
Advanced Topics
Using Chart Dependencies
Some charts may have dependencies. Install with dependency update:
helm dependency update douban/helpdesk
helm install my-helpdesk douban/helpdesk
Working with Chart Repositories
Remove a repository:
Re-add after removal:
helm repo add douban https://douban.github.io/charts/
Debugging Failed Installations
Enable debug output:
helm install my-nginx douban/nginx --debug
View pod logs:
kubectl logs -l app.kubernetes.io/name=nginx
Describe failing resources:
kubectl describe pod -l app.kubernetes.io/name=nginx
Best Practices
Version Pinning Always specify chart versions in production: helm install my-app douban/nginx --version 0.4.1
Values Management Use values files for configuration management and version control: helm install my-app douban/nginx -f prod-values.yaml
Dry Run Testing Always test before applying to production: helm upgrade my-app douban/nginx --dry-run --debug
Namespace Isolation Use separate namespaces for different environments: helm install my-app douban/nginx -n production
Resource Management
Always set resource limits and requests:
resources :
limits :
cpu : 500m
memory : 512Mi
requests :
cpu : 250m
memory : 256Mi
Monitoring Integration
Enable monitoring for production deployments:
serviceMonitor :
enabled : true
prometheusRule :
enabled : true
Troubleshooting
Chart Not Found
helm repo update
helm search repo douban
Installation Timeout
Increase timeout:
helm install my-nginx douban/nginx --timeout 10m
Resource Conflicts
Check existing resources:
kubectl get all -l app.kubernetes.io/name=nginx
Permission Denied
Verify RBAC permissions:
kubectl auth can-i create deployments
kubectl auth can-i create services
Next Steps
Chart Documentation Explore detailed documentation for each available chart
Configuration Reference Learn about advanced configuration options