Thursday, November 27, 2025

 

Kubernetes : Install Helm

 

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:~# 
dnf -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.18.6-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.18.6", GitCommit:"b76a950f6835474e0906b96c9ec68a2eff3a6430", GitTreeState:"clean", GoVersion:"go1.24.6"}
[2]Basic Usage of Helm.
# search charts by words in Helm Hub

debian@ctrl:~$ 
helm search hub wordpress

URL                                                     CHART VERSION   APP VERSION             DESCRIPTION                     
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...
https://artifacthub.io/packages/helm/bizlinked/...      25.0.0          6.8.1                   WordPress is the world's most popular blogging ...
.....
.....

# add a repository (example below is bitnami)

debian@ctrl:~$ 
helm repo add bitnami https://charts.bitnami.com/bitnami

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

debian@ctrl:~$ 
helm repo list

NAME    URL
bitnami https://charts.bitnami.com/bitnami

# search charts by words in repository

debian@ctrl:~$ 
helm search repo bitnami

NAME                                            CHART VERSION   APP VERSION     DESCRIPTION                                     
bitnami/airflow                                 24.2.0          3.0.2           Apache Airflow is a tool to express and execute...
bitnami/apache                                  11.3.19         2.4.63          Apache HTTP Server is an open-source HTTP serve...
bitnami/apisix                                  5.0.4           3.13.0          Apache APISIX is high-performance, real-time AP...
bitnami/appsmith                                6.0.14          1.79.0          Appsmith is an open source platform for buildin...
bitnami/argo-cd                                 9.0.25          3.0.9           Argo CD is a continuous delivery tool for Kuber...
bitnami/argo-workflows                          12.0.6          3.6.10          Argo Workflows is meant to orchestrate Kubernet...
bitnami/aspnet-core                             7.0.10          9.0.6           ASP.NET Core is an open-source framework for we...
bitnami/cadvisor                                0.1.10          0.53.0          cAdvisor (Container Advisor) is an open-source ...
bitnami/cassandra                               12.3.8          5.0.4           Apache Cassandra is an open source distributed .
.....
.....

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

debian@ctrl:~$ 
helm show chart bitnami/haproxy

annotations:
  category: Infrastructure
  images: |
    - name: haproxy
      image: docker.io/bitnami/haproxy:3.2.4-debian-12-r0
  licenses: Apache-2.0
  tanzuCategory: clusterUtility
apiVersion: v2
appVersion: 3.2.4
dependencies:
- name: common
  repository: oci://registry-1.docker.io/bitnamicharts
  tags:
  - bitnami-common
  version: 2.x.x
description: HAProxy is a TCP proxy and a HTTP reverse proxy. It supports SSL termination
  and offloading, TCP and HTTP normalization, traffic regulation, caching and protection
  against DDoS attacks.
home: https://bitnami.com
icon: https://dyltqmyl993wv.cloudfront.net/assets/stacks/haproxy/img/haproxy-stack-220x234.png
keywords:
- haproxy
- proxy
- infrastructure
maintainers:
- name: Broadcom, Inc. All Rights Reserved.
  url: https://github.com/bitnami/charts
name: haproxy
sources:
- https://github.com/bitnami/charts/tree/main/bitnami/haproxy
version: 2.2.34

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

debian@ctrl:~$ 
helm install haproxy bitnami/haproxy

NAME: haproxy
LAST DEPLOYED: Fri Aug 22 19:48:07 2025
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
CHART NAME: haproxy
CHART VERSION: 2.2.34
APP VERSION: 3.2.4

    WARNING: Since August 28th, 2025, only a limited subset of images/charts are available for free.
    Subscribe to Bitnami Secure Images to receive continued support and security updates.
    More info at https://bitnami.com and https://github.com/bitnami/containers/issues/83267

** Please be patient while the chart is being deployed **
1. HAproxy has been started. You can find out the port numbers being used by HAProxy by running:

    $ kubectl describe svc haproxy --namespace default
2. Get HAProxy's load balancer IP/hostname:

    NOTE: It may take a few minutes for this to become available.

    You can watch the status by running:

        $ kubectl get svc haproxy --namespace default -w

    Once 'EXTERNAL-IP' is no longer '<pending>':

        $ kubectl describe svc haproxy --namespace default | grep Ingress | awk '{print $3}'

3. Configure DNS records corresponding to Kubernetes ingress resources to point to the load balancer IP/hostname found in step 3

WARNING: There are "resources" sections in the chart not set. Using "resourcesPreset" is not recommended for production. For production installations, please set the following values according to your workload needs:
  - resources
+info https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

# display deployed application list

debian@ctrl:~$ 
helm list

NAME    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION
haproxy default         1               2025-08-22 19:48:07.282611445 +0900 JST deployed        haproxy-2.2.34  3.2.4

# display the status of deployed application

debian@ctrl:~$ 
helm status haproxy

NAME: haproxy
LAST DEPLOYED: Fri Aug 22 19:48:07 2025
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
CHART NAME: haproxy
CHART VERSION: 2.2.34
APP VERSION: 3.2.4
.....
.....

debian@ctrl:~$ 
kubectl get pods

NAME                       READY   STATUS    RESTARTS   AGE
haproxy-5b789c94f6-bnhxh   1/1     Running   0          2m10s

# uninstall a deployed application

debian@ctrl:~$ 
helm uninstall haproxy

release "haproxy" uninstalled

No comments:

Post a Comment