Toilet Paper #102: Helm - The package manager for Kubernetes

Helm, the package manager for Kubernetes

Problem

How do I install standard applications in Kubernetes? How do I configure these? Who manages dependencies and upgrades?
And: How do I bring my own application into a Kubernetes? It was so easy with docker-compose!

Solution

Helm is a package manager that allows to install complex applications such as Wordpress, Hadoop or Gitlab onto Kubernetes clusters – including dependencies such as a database.

In principle, Helm is to Kubernetes what yum or aptitude is to Linux. But a package can be installed multiple times.

The packages are called Helm Charts and consist of the Kubernetes resources as templates in YAML format, a configuration file values.yaml with the default settings of the chart, a list of dependencies to other Helm charts and some more metadata such as name and version.

Further configuration can be handed over to Helm in the form of additional YAMLs which then overwrite the defaults.

Concrete resource descriptions are generated from the templates and the default values ​​as well as from the transferred configuration and are sent to Kubernetes. Kubernetes then creates resources such as docker containers, storage volumes and so on.
With your own Helm chart for self-written applications, you can put a description of the required runtime conditions into code – how many instances should run, what are the memory requirements, what other containers should run in parallel as sidecars, which databases are needed and how should they be configured, which endpoints should be reachable from the outside, should the application run permanently or only daily at 4 am, how to determine whether the application is still running and when is it ready to receive traffic etc. – and that’s of course all configurable for different types of environments.

Deployments in the dev environment on the laptop and deployments in the prod environment in the cloud may differ only in the configuration YAML.

Example

The following commands start Minikube (Kubernetes in a VM) on your laptop, install a complete Wordpress with extra memory plus database, storage volume and load balancer and display the Wordpress page in your browser:

Toilet Paper #102: Helm - Der Package Manager für Kubernetes

Inclined-woodpecker is an automatically generated name, so that you could install a second Wordpress without a name clash.

Further Aspects

Toilet Paper #102: Helm - The package manager for Kubernetes

Wir verwenden Cookies, um unsere Webseite für Sie zu optimieren. Mit dem Besuch unserer Webseite erklären Sie sich damit einverstanden. // Our website is using cookies to improve your experience. By continuing to browse the site, you are agreeing to our use of cookies.

Weitere Informationen finden Sie in unserer Datenschutzerklärung. // For more information, please refer to our privacy policy.