30 Second Kubernetes Concepts Cheat Sheet

At Hashmap, we’re constantly innovating to provide our clients with the latest technology solutions.

To make new solutions available in a rapid, scalable manner, we often rely on Kubernetes to move our locally-developed docker applications into test and production environments.

Below is a quick-reference guide to the basic concepts and resources available in Kubernetes. This post is a highly distilled version of the Kubernetes Concepts documentation, which has much more detail.

Definitions

Let’s check out some terminology below:

Basic Objects

  • pod = container / set of containers + storage resources + unique IP + local options
  • service = abstraction layer on top of a set of ephemeral pods (think of this as the ‘face’ of a set of pods)
  • volume = sometimes-shared, persistent storage
  • namespace = virtual cluster on top of an underlying physical cluster

Service Types

  • clusterIP = exposes services only inside the cluster (default)
  • nodePort= exposes services at the specified port on all nodes (<node-ip>:<nodePort>)
  • loadBalancer = exposes the service with a cloud-provider’s load balancer.
  • externalName = this maps a service to endpoints completely outside of the cluster

Controllers

  • replicaSet = ensures a certain number of pods are running
  • deployment = declaratively manages a replicaSet
  • statefulSet = like a deployment, but for non-interchangeable (or stateful) underlying pods
  • daemonSet = manages pods that need to run on all/some nodes
  • job = manages a set of pods that run to completion and tracks the overall progress

Control Plane

master = entity responsible for managing cluster state. It consists of 3 major components:

node = individual machines or VMs that make up the cluster. A node consists of:

  • kubelet = service that communicates with the master
  • kube-proxy = proxy for connecting to the cluster network

namespace -> virtual cluster on top of an underlying physical cluster

I hope this quick reference guide helps you whether you are using Kubernetes to manage your own containerized applications or you are seeking to be one of the almost 2,000 contributors to the Kubernetes project.


Feel free to share on other channels and be sure and keep up with all new content from Hashmap here.

Randy Pitcher is a Cloud Engineer and IoT Developer at Hashmap working across industries (and clouds) with a group of innovative technologists and domain experts accelerating high value business outcomes for customers and the community. You can also connect with him on LinkedIn or collaborate with him on the Tempus IIoT project.

Also be sure to catch Randy on the Weekly IoT on Tap Podcast for a casual conversation about IoT from a developer’s perspective.