Chapter 12. Deploying Kubernetes Applications

I lay on my back, surprised at how calm and focused I felt, strapped to four and a half million pounds of explosives.

Ron Garan, astronaut

In this chapter we’ll deal with the question of how to turn your manifest files into running applications. We’ll learn how to build Helm charts for your applications, and look at some alternative tools for manifest management: tanka, kustomize, kapitan, and kompose.

Building Manifests with Helm

We saw in Chapter 2 how to deploy and manage applications with Kubernetes resources created from YAML manifests. There’s nothing stopping you from managing all your Kubernetes applications using just the raw YAML files in this way, but it’s not ideal. Not only is it difficult to maintain these files, but there is also a problem of distribution.

Suppose you want to make your application available to other people to run in their own clusters. You can distribute the manifest files to them, but they will inevitably need to customize some of the settings for their own environment.

To do this, they will have to make their own copy of the Kubernetes configs, find where the various settings are defined (perhaps duplicated in several places), and edit them.

Over time, they will need to maintain their own copies of the files, and when you make updates available, they will have to pull and reconcile them manually with their local changes.

This eventually starts to become painful. What we want is the ability to separate ...

Get Cloud Native DevOps with Kubernetes now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.