djkobi97
djkobi97

Reputation: 77

What are the benefits of helm?

Okay you can easy install application but where is the benefit compared to normal .yaml files from Kubernetes? Can someone give me a example where it is useful to use helm and why normal Kubernetes is not sufficient? Also a confrontation for helm and Kubernetes would be nice.

Upvotes: 0

Views: 1063

Answers (1)

Utku Özdemir
Utku Özdemir

Reputation: 7745

With Helm, a set of resources (read as Kubernetes manifests) logically define a release - and you need to treat this group of resources as a single unit.

A simple example on why this is necessary: Imagine an application bundle that has, let's say, 10 kubernetes objects in total. On the next release, due to the changes in the app, now 1 of the resources is not needed anymore - there are 9 objects in total. How would I roll out this new release? If I simply do kubectl apply -f new_release/, that wouldn't take care of the deletion of that 1 resource that is not needed anymore. This means, I cannot roll upgrades that doesn't need manual intervention. Helm takes care of this.

Helm also keeps a history of releases with their exact set of resources, so you can rollback to a previous release with a single command, in case things go wrong.

Also, one of the things you need often is templating your resources - imagine you want to deploy multiple instances of the same exact application. What would you do?

Kubernetes doesn't offer many options to tackle this problem - one solution is to use different namespaces: Don't specify namespace in the manifests, but give it in the command, such as kubectl apply -n my_namespace -f resources/, but what if you want to deploy two of this instances on the same namespace? Then you need some kind of name/label/selector templating, and Helm takes care of that.

These are some examples for the use cases that Helm addresses.

Upvotes: 5

Related Questions