2.
K8s deployment Complexity
K8s now become the de facto standard for container orchestration as it is open source. It
needs various k8s resources in the form of YAML files to be deployed in k8s cluster.
If the application is small then deploying these YAML files will be very easy with the help
of kubectl.
As we are adding more and more micro-services (k8s resources) deployment with kubectl
became cumbersome as it needs the application of kubectl to apply in a specific order.
Kubectl doesn't provide a facility to rollback to an earlier revision.
Possible Options to deploy K8s resources
Helm provides a solution to these problems. It is nothing but package manager for k8s
cluster similar to npm for js. Helm chart acts as a single unit.
Other possible options for deployment but not explored
1
3.
● Draft
● Metaparticle
● ksonnet
Important Components of Helm
Helm typically consists of three components.
● Helm client:- responsible for deploying charts on k8s cluster
● Helm server (tiller) :- helm server-side component for managing helm charts and
their revisions.
● Helm charts:- contains
○ template folder:-
■ Place where helm find our all k8s resources in YAMLfile
■ Helm run each file in this directory using Go template rendering
Engine.
○ Values.yaml :- contains placeholders in k8s YAML files present in the
template folder
○ Chart.yaml :- contains meta information e.g. version number.
A typical structure of helm chart
2
4.
Helm chart provides charts for various tools such as jenkins, sonarqube,nginx etc. more
information can be found at
How we can use Helm with CI tools?
Important Helm Commands
1. Create your own helm chart structure - helm create
helm create mychart
3
5.
2. Install helm chart :- helm install <chart-folder-location>
Other commands
Helm ls
Helm search
Possible Options to add more features to basic
helm charts
● Requirement.yaml:- manage complex charts to manage dependencies.
Common use cases such as adding mongodb replicaset.
● Pre and post deployment hooks
● Chart package signing to verify integrity:- useful for a production
environment
● Add a description to chart
● Add testing for chart after deployment
4