1 Why Kubernetes exists


This chapter covers

  • Why Kubernetes exists
  • Commonly used Kubernetes terms
  • Specific use cases for Kubernetes
  • High-level Kubernetes features
  • When not to run Kubernetes

Kubernetes is an open source platform for hosting containers and defining application-centric APIs for managing cloud semantics around how these containers are provisioned with storage, networking, security, and other resources. Kubernetes enables continuous reconciliation of the entire state space of your application deployments, including how they are accessed from the outside world.

Why implement Kubernetes in your environment as opposed to manually provisioning these sorts of resources using a DevOps-related infrastructure tool? The answer lies in the way we define DevOps to be increasingly integrated into the overall application life cycle over time. DevOps has evolved increasingly to include processes, engineers, and tools that support a more automated administration of applications in a data center. One of the keys to doing this successfully is reproducibility of infrastructure: a change made to fix an incident on one component that’s not replicated perfectly across all other identical components means one or more components differ.

1.1 Reviewing a few key terms before we get started

1.2 The infrastructure drift problem and Kubernetes

1.3 Containers and images

1.4 Core foundation of Kubernetes

1.4.1 All infrastructure rules in Kubernetes are managed as plain YAML

1.5 Kubernetes features

1.6 Kubernetes components and architecture

1.6.1 The Kubernetes API

1.6.2 Example one: An online retailer

1.6.3 Example two: An online giving solution

1.7 When not to use Kubernetes