Chapter 5. Kubernetes

5.0 Introduction

Contributed by Joe Beda

As applications grow beyond what can be safely handled on a single host, a need has arisen for what has come to be called an orchestration system. An orchestration systems helps users view a set of hosts (also referred to as nodes) as a unified programmable reliable cluster. That cluster can be viewed and used as a giant computer.

Kubernetes (often abbreviated as k8s) is an open source system started by Google to fill this need. Kubernetes is based on ideas validated through internal Google systems over the last 10 years (Borg and Omega). These systems are used to run and manage all of the myriad Google services, including Google Search, Google Mail, and more. Many of the engineers who built and operated Borg clusters at scale are helping to design and build Kubernetes.

Traditionally, Borg has been one of the key things that ex-Google engineers miss from their time at the company. But now Kubernetes fills this need for engineers who don’t happen to work for Google. Kubernetes features some enhanced capabilities and new concepts.

Enhanced capabilities

A Kubernetes cluster coordinates Docker across multiple nodes and provides a unified programming model with enhanced capabilities:

Reliable container restart

Kubernetes can monitor the health of a container and restart it when it fails.

Self-healing

If a node fails, the Kubernetes management system can automatically reschedule work onto healthy nodes. Dynamic service ...

Get Docker Cookbook 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.