Kubernetes Container Orchestration System

Inspired by Borg, Google’s cluster management system for containerized workloads, Kubernetes was open sourced by Google in 2014. Today, Kubernetes is the best way cloud native apps, microservices and APIs are put into production with high-availability and at any scale.

Concepts every developer needs to know:

1) Kubernetes is a cluster that runs containerized apps in load balanced pods
  • There is a master node which exposes a configuration API
  • There are worker nodes which run collections of pods
  • The master node controls and monitors the worker nodes
  • Pods contain one or more containers with shared storage
  • The backing store for all cluster data is a distributed k/v store called etcd 
2) Apps are defined declaratively and k8s maintains the declared state
3) Apps move through the Docker toolchain on their way to k8s
  • Docker images should be concise, taking full advantage of multistage builds
  • Apps are composed sets of images defined in a docker-compose.yml file
  • The docker-compose.yml is converted to k8s Resources using Kompose
  • After running Kompose, more work is necessary to properly prepare k8s Resources
4) DevOps teams frequently use a Service Mesh like Istio to manage Kubernetes
  • A k8s add-on to streamline operations in environments where services interact

Learning resources for developers and DevOps:

John Knapp is Senior Architect, Cloud Services at leading AR knowledge management platform provider Scope AR.