Kubernetes

Kubernetes is an orchestration layer to manage containerized applications. In a traditional system, you either run on bare metal or with containers on a host. With Kubernetes, containerized applications and services can be spread across many hosts. This means if one host goes down, the work and containers can be redistributed to other nodes.

Example:

diagram image

Each node can contain random services, or it can contain specific ones. In the example above, a node contains one of every service required to run an application. This means that if a node goes down, the work can be redistributed to other nodes, without any downtime, while Kubernetes also works on bringing that node back to life.

Glossary

Borrowed from Karan Thukral

  • Cluster – The set of machines you are running the application on
  • Node – A single machine
  • Pods – A group of containers that work together to achieve a certain task.
  • Service – A way to externally expose (externally and internally) a set of pods that work together
  • Labels – An arbitrary tag that can be places on kubernetes resources and can be used to filter on
  • Selectors – Way for the user to identify a set of objects based on labels assigned to them
  • Controller – A reconciliation loop that drives current state towards desired state