Kubernetes is quickly becoming the go-to for companies looking to run containerized applications. The big downside? Kubernetes is also complicated. Even those in the know still need to keep up with the constantly changing, dynamic environment. If you’re looking at implementing Kubernetes for your team, you’ll need to brush up on some common Kubernetes terms.
Read on to learn more about Kubernetes and to develop a firm understanding of common Kubernetes terminology. Hopefully, by the end of this article, you’ll have a better grasp of what Kubernetes is and what it can do for you and your business.
Kubernetes terms explained: The basics
To get you started on the right foot, we’ve compiled a list of some Kubernetes basic terms. This certainly isn’t the end all be all of a K8s dictionary, but it should give you enough to get started on your K8s journey. If you need a bit more of a deep dive, check out our glossary of Kubernetes terminology.
Everything in Kubernetes is built around containers. Think of a container as a shrink-wrapped assortment of software needed to run an application. All the code, libraries and utilities needed to run the application are included in the container. A container is immutable — it cannot be changed at runtime. If you need to update a container, you have to build a new one.
A Pod is one of the simplest of all the K8s components. Well, simple is a relative term, especially when talking about K8s. Regardless, Pods represent a set of containers. Typically, a pod will contain a single primary container — but that’s not always the case.
Additionally, a Pod can run what are often referred to as ‘sidecar’ containers that will add other features. One additional feature you might run into is log collection, and traffic encryption saving you from baking that into your application in a reusable way. The controller (usually a deployment, but others such as CronJob, StatefulSet, DaemonSet etc exist) is in charge of managing Pods.
A node is either a VM or a physical machine, depending on the cluster. The workload of the node is defined by putting containers into pods. These pods run on nodes. In each individual cluster, you’ll usually be running several nodes at a time.
You’ve got the node, and a GROUP of nodes, controlled by a master node, is a cluster. A cluster is basically a set of nodes that house collections of pods. Worker nodes host the pods that run the application workload.
Other terms to know
So, those are some of the basic Kubernetes terms explained, touching mostly on the basic components of Kubernetes architecture. Of course, covering the terminology is only scratching the surface of the Kubernetes ecosphere. To go through it all would require a whole mess of coursework, textbooks, lectures and quizzes.
Here are just a few other basic terms you may come across:
- Controller: Controllers are the control loops watching the overall state of the cluster. They make or request changes when needed.
- Docker: Also known as Docker Engine, this is one of the container run times available that Kubernetes can orchestrate, others such as CRI-O, runc etc (see here for a comparison https://www.capitalone.com/tech/cloud/container-runtime/)
- Etcd: etcd is the ‘database’ behind Kubernetes. It stores the configuration information for the cluster in a key value store that supports RAFT protocol, which is great for resilience.
- Minikube|Kind|k3d: If you're running a single-node cluster in a VM, you usually use a tool called a minikube, you usually use a tool like one of these to simplify starting and stopping.
- Namespaces: A namespace is a grouping of resources within a cluster that are scoped together, which allows you to then define security controls based on the boundary of that.
- Secret: A secret in K8s is a means of storing sensitive information.
- Service: Service is the abstract way in which an application is exposed within the cluster. The service ensures that network traffic is sent to the current set of pods managing the workload.
Doing Kubernetes right with Wayfinder
Even for the most seasoned CKAs, Kubernetes can get confusing. Nevertheless, it makes running cloud application architecture easy to do on a massive scale.
That’s where Wayfinder comes into play, a cloud-native Kubernetes management system that solves implementation and scaling challenges, accelerating Kubernetes adoption safely and securely. We built Wayfinder to work with any team without the need for a team of K8s experts.