Helm 2 vs. Helm 3
Helm 2 vs. Helm 3
-
There are charts online for both of the
Helmversions. -
History of releases:
-
Helm 1.0 - February 2016
-
Helm 2.0 - November 2016
-
Helm 3.0 - November 2019
-
-
Kubernetes improved and thus so did Helm.
-
Helm 3 is in use in this course.
-
Helm has the
helm cliinstalled on the machine, this lets you run various actions against the cluster. -
During the era of Helm 2, Kubernetes did not have
Role Based Access ControlorCustom Resource Definitions.-
To allow Helm 2 to work effectively,
Tillerhad to be installed in the Kubernetes Cluster. -
Whenever Helm 2 needed to run a specific operation, it would need to go through
TillerandTillerwould communicate with Kubernetes.
-
-
Security concerns with Helm 2 and Tiller. Tiller ran with escalated privileges - problematic and allows any user access in the cluster.
-
When RBAC and Custom Resource Definitions were added,
tillerwas removed in Helm 3.-
RBAC allows to define user permissions.
- RBAC sets the same permissions of the user regardless of tool used.
-
-
Helm 3 includes the
3-Way Strategic Merge Patch. -
Helm has a snapshot feature.
-
Firstly, install an application and this example can be
helm install wordpress, This createsRevision: 1. -
Then running
helm upgrade wordpresscreatesRevision: 2. -
Can then rollback to
Revision: 1usinghelm rollback wordpress. Moves the package. However, while the content will beRevision: 1, the system counts this asRevision: 3.- When running the
rollbackcommand, Helm compares the previous charts.
- When running the
-
-
What happens in this situation:
-
Create
Revision: 1withhelm install wordpress. -
Then a user updates the image with
kubectl set image wordpress wordpress:5.8-apache- Running the
kubectl set imagecommand does not create a Revision in Helm.
- Running the
-
When you
rollback, there are no two versions to compare to. OnlyRevision: 1is available.- With Helm 2, this doesn’t help us - a manual change made by the user is still active, even with a
rollback.
- With Helm 2, this doesn’t help us - a manual change made by the user is still active, even with a
-
With Helm 3 however, it cares about the
Live Stateof the Kubernetes objects. It checks theLive State, Current Chart, Previous Chart
-
-
When upgrading with Helm 2, all custom changes will be lost, since those don’t stay in the system when moving between charts.
- Helm 3 however looks at the chart and the live state - therefore it performs the upgrade and preserves anything that may have been added.