Sunday, June 20, 2021

Helm chart installation and Deploy on Linux

What is a helm chart? 

It is a package manager for your Kubernetes cluster. It used to install, upgrade, rollback release, and also uninstall on the Kubernetes cluster. 

Helm Charts Kubernetes Deployment


What do these charts for? 

You have seen Kubernetes pods, ReplicaSet, Deployments, services, and other objects each one required a YAML file in defining in the declarative method. Charts will have all these yaml files for all objects together as a package. Charts will have : 
a. NAME 
b. DESCRIPTION 
c. VERSION 

 Templates will have placeholders for each Kubernetes kind object YAML file, that can be rendered using values.yaml file. Which will have parameters. It is greater flexibility and replaces and reuses the parameters required for your microservices project that need to deploy on the Kubernetes. You can use as many apps need to deploy you can have different values files helm install --values value-app1.yaml
Installation methods for Linux Operating System we have three options: Install using package manager snap Using script: get_helm.sh Binary download the tar file move to bin

Prerequisites 

* Kubernetes cluster up and running.
* Have good knowledge on Kubernetes deployment, replica set, and pods
* Basic understanding of YAML syntax

Installing Helm on Linux

To install Helm on Ubuntu using binary: 

1. Download the latest version of Helm binary using the following command:
wget https://get.helm.sh/helm-v3.6.1-linux-amd64.tar.gz
Download Helm Charts on ubuntu
helm Charts download on Linux box


check the latest version on the official website for the "helm charts"

2. Next, untar the Helm binary installer file using the tar command:
tar xvf helm-v3.6.1-linux-amd64.tar.gz
3. Move the linux-amd64/helm file to the /usr/local/bin directory:
sudo mv linux-amd64/helm /usr/local/bin
There will be no output if the command was executed correctly.
 
4. Confirmation of helm installation by checking the version 
helm version
The execution output as follows:
Helm Charts version
helm version check in Linux


Creating Helm Charts

To create "charts" using helm package manager as the following command:
helm create mytest
Creating Helm charts

Creates 'mytest' folder in the current directory, you see the directory structure as :
# tree  mytest/
mytest/
├── Chart.yaml
├── charts
├── templates
│   ├── NOTES.txt
│   ├── _helpers.tpl
│   ├── deployment.yaml
│   ├── hpa.yaml
│   ├── ingress.yaml
│   ├── service.yaml
│   ├── serviceaccount.yaml
│   └── tests
│       └── test-connection.yaml
└── values.yaml
Helm will be a ready-made tool for huge application pods running environments. In the example charts it will be nginx image-based deployment. Most of the common strategies used for Kubernetes deployment and scaling in a declarative way is completely templatized which can be reusable by rending the charts with custom values. As more images used in the project then values.yaml file will grow. YAML files validation To validate the changes after updating any of the yaml file you need to check the YAML syntax using :
helm lint ./mytest 
The lint command execution output
Helm chart validation using lint
The helm lint example


Dry-run Validate 

Rendering Here we get all good then we can proceed to dry-run Which will do a rendering of all the values to the templates and shows the output you can verify.
helm install --dry-run --debug ./mytest/ --generate-name
Install the actual deployment Generally, we can run the following:to install
helm install web-test  ./mytest/
But if you want to change any specific change you can use the --set option to override the value at the time of installing it will be considered. Example if you see service.YAML file type will be rendered from values.yaml file as type: ClusterIP, that can be overridden when you use --set service.type=NodePort
helm install web-test  ./mytest/  --set service.type=NodePort
Same thing you can do by changing inside the values.YAML file as well.
Check the application url that is running with notes instruction tells the URL creation commands. 

Screen 1 Nginx app accessed
Verify the helm installed deployment successful using list command as:
helm list

How to uninstall the release package? 


Using the uninstall followed by the name of the application release will delete that.
helm uninstall web-test

Enable Auto-Completion for Helm CLI

To use the auto-completion on for helm commands you can do the following:
source <(helm completion bash)
test this functionality by typing the 'helm cr<tab key>' it should complete with 'helm create'.

No comments:

Categories

Kubernetes (24) Docker (20) git (13) Jenkins (12) AWS (7) Jenkins CI (5) Vagrant (5) K8s (4) VirtualBox (4) CentOS7 (3) docker registry (3) docker-ee (3) ucp (3) Jenkins Automation (2) Jenkins Master Slave (2) Jenkins Project (2) containers (2) create deployment (2) docker EE (2) docker private registry (2) dockers (2) dtr (2) kubeadm (2) kubectl (2) kubelet (2) openssl (2) Alert Manager CLI (1) AlertManager (1) Apache Maven (1) Best DevOps interview questions (1) CentOS (1) Container as a Service (1) DevOps Interview Questions (1) Docker 19 CE on Ubuntu 19.04 (1) Docker Tutorial (1) Docker UCP (1) Docker installation on Ubunutu (1) Docker interview questions (1) Docker on PowerShell (1) Docker on Windows (1) Docker version (1) Docker-ee installation on CentOS (1) DockerHub (1) Features of DTR (1) Fedora (1) Freestyle Project (1) Git Install on CentOS (1) Git Install on Oracle Linux (1) Git Install on RHEL (1) Git Source based installation (1) Git line ending setup (1) Git migration (1) Grafana on Windows (1) Install DTR (1) Install Docker on Windows Server (1) Install Maven on CentOS (1) Issues (1) Jenkins CI server on AWS instance (1) Jenkins First Job (1) Jenkins Installation on CentOS7 (1) Jenkins Master (1) Jenkins automatic build (1) Jenkins installation on Ubuntu 18.04 (1) Jenkins integration with GitHub server (1) Jenkins on AWS Ubuntu (1) Kubernetes Cluster provisioning (1) Kubernetes interview questions (1) Kuberntes Installation (1) Maven (1) Maven installation on Unix (1) Operations interview Questions (1) Oracle Linux (1) Personal access tokens on GitHub (1) Problem in Docker (1) Prometheus (1) Prometheus CLI (1) RHEL (1) SCM (1) SCM Poll (1) SRE interview questions (1) Troubleshooting (1) Uninstall Git (1) Uninstall Git on CentOS7 (1) Universal Control Plane (1) Vagrantfile (1) amtool (1) aws IAM Role (1) aws policy (1) caas (1) chef installation (1) create organization on UCP (1) create team on UCP (1) docker CE (1) docker UCP console (1) docker command line (1) docker commands (1) docker community edition (1) docker container (1) docker editions (1) docker enterprise edition (1) docker enterprise edition deep dive (1) docker for windows (1) docker hub (1) docker installation (1) docker node (1) docker releases (1) docker secure registry (1) docker service (1) docker swarm init (1) docker swarm join (1) docker trusted registry (1) elasticBeanStalk (1) global configurations (1) helm installation issue (1) mvn (1) namespaces (1) promtool (1) service creation (1) slack (1)