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 optionsservice
= 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 storagenamespace
= 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 runningdeployment
= declaratively manages areplicaSet
statefulSet
= like a deployment, but for non-interchangeable (or stateful) underlying podsdaemonSet
= manages pods that need to run on all/some nodesjob
= 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:
kube-apiserver
= exposes cluster control and statekube-controller-manager
= this is where the ‘brain’ of controllers livekube-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 masterkube-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.