As you know, deploying a basic viable app configuration in Kubernetes is a breeze. On the other hand, you will inevitably encounter many obstacles and pitfalls trying to make your application as available and fault-tolerant as possible. In this article, we’ll break down what we think are the most important rules for deploying high-availability applications in Kubernetes and share them in a concise way.

Note that we will only use features available right out of the box. Also, we will not lock into specific CD solutions, and we will omit the issues of templating Kubernetes manifests and generating them. We will only look at general rules about how Kubernetes manifests might look (that is, when they are fully ready to use).