The Most Common Kubernetes Terms
Time to consult the dictionary. Take a look at some of the most commonly-used terms in the world of Kubernetes for your reference.
Join the DZone community and get the full member experience.Join For Free
This article aims at explaining the basic terminologies used in Kubernetes.
Cluster: A cluster is the foundation of Kubernetes Engine; the Kubernetes objects that represent your containerized applications all run on top of a cluster. It is a set of machines (physical or virtual) on which your applications are managed and run. For Kubernetes, all machines are managed as a cluster (or set of clusters, depending on the topology used).
Node: A cluster typically has one or more nodes, which are the worker machines that run your containerized applications and other workloads. In Kubernetes Engine, a cluster consists of at least one cluster master and multiple worker machines called nodes. A logical machine unit (physical or virtual), which is part of a larger cluster on which you can run your applications.
Pod: A co-located group of containers and their storage is called a pod or simply a pod is a group of containers that are deployed together on the same host. For example, it makes sense to have database processes and data containers as close as possible — ideally, they should be in the same pod.
Replication Controller: Replication Controllers (RC) are an abstraction used to manage pod lifecycles. One of the key uses of replication controllers is to maintain a certain number of pods. This is also useful when you want to enable a certain number of pods for scaling, or ensure that at least one pod. It is a best practice to use replication controllers to define pod lifecycles, rather than to create pods directly.
Selector: A selector expression matches labels to filter certain resources. For example, you may want to search for all pods that belong to a certain service or find all containers that have a specific tier label value as a database. You can use labels to classify resources and use selectors to find them and use them for certain actions.
Label: Labels are key-value pairs that are attached to objects, such as pods. The key-value pairs can be used to filter, organize and perform mass operations on a set of resources. Think of labels as a role, group, or any similar mechanism given to a container or resource. One container can have a database role, while the other can be a load-balancer.
Replication Sets: Replica Sets define how many replicas of each pod will be running. They also monitor and ensure the required number of pods are running, replacing pods that die. Replica Sets can act as replacements for Replication Controllers.
Annotation: An annotation is a Label but with much larger data capacity. Typically, this data is not readable by humans and not easy to filter through. Annotation is useful only for storing data which may not be searched but is required by the resource.
Name: A name by which a resource is identified.
Volume: A volume is a directory with data which is accessible to a container. The volume co-terminates with the pods that encloses it.
Namespace: Namespace provides additional qualification to a resource name. This is especially helpful when multiple teams/projects are using the same cluster and there is a potential for name collision. You can think of a namespace as a virtual wall between multiple clusters.
Service: A service is an abstraction on top of pods which provides a single IP address and DNS name by which the pods can be accessed. This load balancing configuration is much easier to manage and helps scale pods seamlessly.
Opinions expressed by DZone contributors are their own.