Skip to main content

Prerequisites

Before you begin, ensure you have:
  • A running Kubernetes cluster (v1.19+)
  • kubectl configured to communicate with your cluster
  • Basic familiarity with Kubernetes concepts
You can use Minikube, kind, or any cloud-based Kubernetes service (GKE, EKS, AKS) for this quick start.

Step-by-Step Guide

1

Install Helm

If you don’t have Helm installed, install it using one of these methods:
brew install helm
Verify the installation:
helm version
You should see output showing Helm v3.x or later.
2

Add the Douban Repository

Add the Douban Helm Charts repository to your Helm installation:
helm repo add douban https://douban.github.io/charts/
You should see:
"douban" has been added to your repositories
Update your local repository cache:
helm repo update
3

Browse Available Charts

List all available charts from the Douban repository:
helm search repo douban
You’ll see output like:
NAME                    CHART VERSION   APP VERSION     DESCRIPTION
douban/nginx            0.4.1          1.16.0          A Helm chart for Kubernetes
douban/helpdesk         0.3.3          0.2.0           A Helm chart for Douban Helpdesk
douban/overlord         ...            ...             ...
4

Install Your First Chart

Let’s deploy an nginx web server using the nginx chart:
helm install my-nginx douban/nginx
my-nginx is the release name - you can choose any name you like. This name is used to manage the deployment later.
You should see output confirming the installation:
NAME: my-nginx
LAST DEPLOYED: Thu Mar  5 21:00:00 2026
NAMESPACE: default
STATUS: deployed
REVISION: 1
5

Verify the Deployment

Check that your pods are running:
kubectl get pods -l app.kubernetes.io/name=nginx
You should see:
NAME                        READY   STATUS    RESTARTS   AGE
my-nginx-5d4f8c7d9b-xyz12   1/1     Running   0          30s
Check the service:
kubectl get svc -l app.kubernetes.io/name=nginx
NAME       TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
my-nginx   ClusterIP   10.96.123.456   <none>        80/TCP    1m
6

Access Your Application

Port-forward to access nginx locally:
kubectl port-forward svc/my-nginx 8080:80
Open your browser to http://localhost:8080 to see the nginx welcome page.When done testing, press Ctrl+C to stop port-forwarding.

Customizing Your Deployment

You can customize the deployment by providing your own values. First, view the available configuration options:
helm show values douban/nginx
Create a custom values file my-values.yaml:
my-values.yaml
replicaCount: 3

resources:
  limits:
    cpu: 100m
    memory: 128Mi
  requests:
    cpu: 50m
    memory: 64Mi

service:
  type: LoadBalancer
  port: 80
Install with custom values:
helm install my-nginx douban/nginx -f my-values.yaml
Or override specific values inline:
helm install my-nginx douban/nginx --set replicaCount=3 --set service.type=LoadBalancer

Managing Your Release

View Release Status

helm status my-nginx

List All Releases

helm list

Upgrade a Release

After modifying your values:
helm upgrade my-nginx douban/nginx -f my-values.yaml

Rollback a Release

If something goes wrong:
helm rollback my-nginx

Uninstall a Release

When you’re done:
helm uninstall my-nginx

Real-World Example: Deploying Helpdesk

Let’s deploy the Douban Helpdesk application with custom configuration:
helm install my-helpdesk douban/helpdesk \
  --set image.tag=latest \
  --set ingress.enabled=true \
  --set ingress.hosts[0].host=helpdesk.example.com \
  --set ingress.hosts[0].paths[0].path=/ \
  --set ingress.hosts[0].paths[0].pathType=Prefix
This command:
  • Installs the helpdesk chart with release name my-helpdesk
  • Uses the latest image version
  • Enables ingress for external access
  • Configures the hostname as helpdesk.example.com

Troubleshooting

Installation Fails

Check Helm release status:
helm status my-nginx
View pod logs:
kubectl logs -l app.kubernetes.io/name=nginx

Pod Not Starting

Describe the pod to see events:
kubectl describe pod -l app.kubernetes.io/name=nginx

Chart Not Found

Update your repository cache:
helm repo update
helm search repo douban

Next Steps

Installation Guide

Learn about advanced installation options and patterns

Chart Documentation

Explore detailed documentation for each chart
For production deployments, always review the chart’s values.yaml file and configure appropriate resource limits, persistence, and monitoring.

Build docs developers (and LLMs) love