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.
Let’s check out some terminology below:
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
clusterIP= exposes services only inside the cluster (default)
nodePort= exposes services at the specified port on all nodes (
loadBalancer= exposes the service with a cloud-provider’s load balancer.
externalName= this maps a service to endpoints completely outside of the cluster
replicaSet= ensures a certain number of pods are running
deployment= declaratively manages a
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
master = entity responsible for managing cluster state. It consists of 3 major components:
kube-apiserver= exposes cluster control and state
kube-controller-manager= this is where the ‘brain’ of controllers live
kube-scheduler= matches resources to work
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.