Ubuntu 26.04

Kubernetes : Install Helm2026/05/13

 

Install Helm which helps to manage Kubernetes applications.

In this example, a Kubernetes cluster is configured using four nodes as follows.

+----------------------+   +----------------------+
|  [ ctrl.srv.world ]  |   |   [ dlp.srv.world ]  |
|     Manager Node     |   |     Control Plane    |
+-----------+----------+   +-----------+----------+
        eth0|10.0.0.25             eth0|10.0.0.30
            |                          |
------------+--------------------------+-----------
            |                          |
        eth0|10.0.0.51             eth0|10.0.0.52
+-----------+----------+   +-----------+----------+
| [ node01.srv.world ] |   | [ node02.srv.world ] |
|     Worker Node#1    |   |     Worker Node#2    |
+----------------------+   +----------------------+

[1] Install Helm.
root@ctrl:~#
apt -y install git
root@ctrl:~#
curl -O https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
root@ctrl:~#
bash ./get-helm-3

Downloading https://get.helm.sh/helm-v3.20.2-linux-amd64.tar.gz
Verifying checksum... Done.
Preparing to install helm into /usr/local/bin
helm installed into /usr/local/bin/helm

root@ctrl:~#
helm version

version.BuildInfo{Version:"v3.20.2", GitCommit:"8fb76d6ab555577e98e23b7500009537a471feee", GitTreeState:"clean", GoVersion:"go1.25.9"}
[2] Basic Usage of Helm.
# search charts by words in Helm Hub

ubuntu@ctrl:~$
helm search hub wordpress

URL                                                     CHART VERSION   APP VERSION             DESCRIPTION                     
https://artifacthub.io/packages/helm/slybase-wo...      3.6.39          6.9.4                   Using the official WordPress image. This chart ...
https://artifacthub.io/packages/helm/kube-wordp...      0.1.0           1.1                     this is my wordpress package    
https://artifacthub.io/packages/helm/wordpress-...      1.0.2           1.0.0                   A Helm chart for deploying Wordpress+Mariadb st...
.....
.....

# add a repository (example below is haproxytech)

ubuntu@ctrl:~$
helm repo add haproxytech https://haproxytech.github.io/helm-charts

"haproxytech" has been added to your repositories
# show repository list

ubuntu@ctrl:~$
helm repo list

NAME            URL
haproxytech     https://haproxytech.github.io/helm-charts

# search charts by words in repository

ubuntu@ctrl:~$
helm search repo haproxy

NAME                                    CHART VERSION   APP VERSION     DESCRIPTION
haproxytech/haproxy                     1.28.1          3.3.6           A Helm chart for HAProxy on Kubernetes
haproxytech/haproxy-unified-gateway     1.0.2           1.0.2           A Helm chart for HAProxy Unified Gateway - Kube...
haproxytech/kubernetes-ingress          1.49.0          3.2.6           A Helm chart for HAProxy Kubernetes Ingress Con...

# display description of a chart
# helm show [all|chart|readme|values] [chart name]

ubuntu@ctrl:~$
helm show chart haproxytech/haproxy

annotations:
  artifacthub.io/changes: |
    - Update base image to HAProxy 3.3.6
    - Fix newline issue with YAML normalisation (#344)
apiVersion: v2
appVersion: 3.3.6
description: A Helm chart for HAProxy on Kubernetes
home: https://github.com/haproxytech/helm-charts/tree/main/haproxy
icon: https://raw.githubusercontent.com/haproxytech/helm-charts/main/haproxy/chart-icon.png
keywords:
- haproxy
kubeVersion: '>=1.17.0-0'
maintainers:
- email: dkorunic@haproxy.com
  name: Dinko Korunic
name: haproxy
sources:
- http://www.haproxy.org/
type: application
version: 1.28.1

# deploy application by specified chart
# helm install [any name] [chart name]

ubuntu@ctrl:~$
helm install haproxy haproxytech/haproxy

NAME: haproxy
LAST DEPLOYED: Wed May 13 00:20:24 2026
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
HAProxy has been has been successfully installed. This Chart is used to run HAProxy as a regular application,
as opposed to HAProxy Ingress Controller Chart.

Controller image deployed is: "docker.io/haproxytech/haproxy-alpine:3.3.6".
Your HAProxy app is of a "Deployment" kind.

Service ports mapped are:
  - name: http
    containerPort: 80
    protocol: TCP
  - name: https
    containerPort: 443
    protocol: TCP
  - name: stat
    containerPort: 1024
    protocol: TCP

To be able to bind to privileged ports as non-root, the following is required:

securityContext:
  enabled: true
  runAsUser: 1000
  runAsGroup: 1000
initContainers:
  - name: sysctl
    image: "busybox:musl"
    command:
      - /bin/sh
      - -c
      - sysctl -w net.ipv4.ip_unprivileged_port_start=0
    securityContext:
      privileged: true

Node IP can be found with:
  $ kubectl --namespace default get nodes -o jsonpath="{.items[0].status.addresses[1].address}"

For more examples and up to date documentation, please visit:
  * Helm chart documentation: https://github.com/haproxytech/helm-charts/tree/main/haproxy
  * HAProxy Alpine Docker container documentation: https://github.com/haproxytech/haproxy-docker-alpine
  * HAProxy documentation: https://www.haproxy.org/download/2.7/doc/configuration.txt

# display deployed application list

ubuntu@ctrl:~$
helm list

NAME    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION
haproxy default         1               2026-05-13 00:20:24.861588053 +0000 UTC deployed        haproxy-1.28.1  3.3.6

# display the status of deployed application

ubuntu@ctrl:~$
helm status haproxy

NAME: haproxy
LAST DEPLOYED: Wed May 13 00:20:24 2026
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
HAProxy has been has been successfully installed. This Chart is used to run HAProxy as a regular application,
as opposed to HAProxy Ingress Controller Chart.

Controller image deployed is: "docker.io/haproxytech/haproxy-alpine:3.3.6".
Your HAProxy app is of a "Deployment" kind.
.....
.....

ubuntu@ctrl:~$
kubectl get pods

NAME                       READY   STATUS    RESTARTS   AGE
haproxy-7997775574-tr9hc   1/1     Running   0          94s

# uninstall a deployed application

ubuntu@ctrl:~$
helm uninstall haproxy

release "haproxy" uninstalled
Matched Content