This glossary is intended to be a comprehensive, standardized list of Kubernetes terminology. It includes technical terms that are specific to K8s, as well as more general terms that provide useful context.
Filter terms according to their tags
Click on the [+] indicators below to get a longer explanation for any particular term.
Cloud Controller Manager is an alpha feature in 1.8. In upcoming releases it will be the preferred way to integrate Kubernetes with any cloud.
[+]Kubernetes v1.6 contains a new binary called cloud-controller-manager. cloud-controller-manager is a daemon that embeds cloud-specific control loops. These cloud-specific control loops were originally in the kube-controller-manager. Since cloud providers develop and release at a different pace compared to the Kubernetes project, abstracting the provider-specific code to the cloud-controller-manager binary allows cloud vendors to evolve independently from the core Kubernetes code.
An API object used to store non-confidential data in key-value pairs. Can be consumed as environment variables, command-line arguments, or config files in a volumeA directory containing data, accessible to the containers in a pod. .
[+]Allows you to decouple environment-specific configuration from your container imagesA lightweight and portable executable image that contains software and all of its dependencies. , so that your applications are easily portable. When storing confidential data use a Secret.
Ensures a copy of a PodThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. is running across a set of nodes in a clusterA set of machines, called nodes, that run containerized applications managed by Kubernetes. .
[+]Used to deploy system daemons such as log collectors and monitoring agents that typically must run on every NodeA node is a worker machine in Kubernetes. .
An API object that manages a replicated application.
[+]Each replica is represented by a PodThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. , and the Pods are distributed among the nodes of a cluster.
Allows users to request automatic creation of storage VolumesA directory containing data, accessible to the containers in a pod. .
[+]Dynamic provisioning eliminates the need for cluster administrators to pre-provision storage. Instead, it automatically provisions storage by user request. Dynamic volume provisioning is based on an API object, StorageClassA StorageClass provides a way for administrators to describe different available storage types. , referring to a Volume PluginA Volume Plugin enables integration of storage within a Pod. that provisions a VolumeA directory containing data, accessible to the containers in a pod. and the set of parameters to pass to the Volume Plugin.
A finite or batch task that runs to completion.
[+]Creates one or more PodThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. objects and ensures that a specified number of them successfully terminate. As Pods successfully complete, the Job tracks the successful completions.
kube-proxy
is a network proxy that runs on each node in the cluster.
It enables the Kubernetes service abstraction by maintaining network rules on the host and performing connection forwarding.
[+]kube-proxy
is responsible for request forwarding. kube-proxy
allows TCP and UDP stream forwarding or round robin TCP and UDP forwarding across a set of backend functions.
An agent that runs on each node in the cluster. It makes sure that containers are running in a pod.
[+]The kubelet takes a set of PodSpecs that are provided through various mechanisms and ensures that the containers described in those PodSpecs are running and healthy. The kubelet doesn’t manage containers which were not created by Kubernetes.
Provides constraints to limit resource consumption per ContainersA lightweight and portable executable image that contains software and all of its dependencies. or PodsThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. in a namespace.
[+]LimitRange limits the quantity of objects that can be created by type, as well as the amount of compute resources that may be requested/consumed by individual ContainersA lightweight and portable executable image that contains software and all of its dependencies. or PodsThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. in a namespace.
An API object that represents a piece of storage in the cluster. Available as a general, pluggable resource that persists beyond the lifecycle of any individual PodThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. .
[+]PersistentVolumes (PVs) provide an API that abstracts details of how storage is provided from how it is consumed. PVs are used directly in scenarios where storage can be created ahead of time (static provisioning). For scenarios that require on-demand storage (dynamic provisioning), PersistentVolumeClaims (PVCs) are used instead.
Claims storage resources defined in a PersistentVolume so that it can be mounted as a volume in a container.
[+]Specifies the amount of storage, how the storage will be accessed (read-only, read-write and/or exclusive) and how it is reclaimed (retained, recycled or deleted). Details of the storage itself are in the PersistentVolume specification.
The smallest and simplest Kubernetes object. A Pod represents a set of running containersA lightweight and portable executable image that contains software and all of its dependencies. on your cluster.
[+]A Pod is typically set up to run a single primary container. It can also run optional sidecar containers that add supplementary features like logging. Pods are commonly managed by a DeploymentAn API object that manages a replicated application. .
Enables fine-grained authorization of PodThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. creation and updates.
[+]A cluster-level resource that controls security sensitive aspects of the Pod specification. The PodSecurityPolicy
objects define a set of conditions that a Pod must run with in order to be accepted into the system, as well as defaults for the related fields. Pod Security Policy control is implemented as an optional admission controller.
QoS Class (Quality of Service Class)) provides a way for Kubernetes to classify Pods within the cluster into several classes and make decisions about scheduling and eviction.
[+]QoS Class of a Pod is set at creation time based on its compute resources requests and limits settings. QoS classes are used to make decisions about Pods scheduling and eviction.
Kubernetes can assign one of the following QoS classes to a Pod: Guaranteed
, Burstable
or BestEffort
.
A whole-number representation of small or large numbers using SI suffixes.
[+]Quantities are representations of small or large numbers using a compact, whole-number notation with SI suffixes. Fractional numbers are represented using milli units, while large numbers can be represented using kilo, mega, or giga units.
For instance, the number 1.5
is represented as 1500m
, while the number 1000
can be represented as 1k
, and 1000000
as 1M
. You can also specify
binary-notation suffixes; the number 2048 can be written as 2Ki
.
The accepted decimal (power-of-10) units are m
(milli), k
(kilo,
intentionally lowercase), M
(mega), G
(giga), T
(terra), P
(peta),
E
(exa).
The accepted binary (power-of-2) units are Ki
(kibi), Mi
(mebi), Gi
(gibi),
Ti
(tebi), Pi
(pebi), Ei
(exbi).
ReplicaSet is the next-generation Replication Controller.
[+]ReplicaSet, like ReplicationController, ensures that a specified number of pods replicas are running at one time. ReplicaSet supports the new set-based selector requirements as described in the labels user guide, whereas a Replication Controller only supports equality-based selector requirements.
Kubernetes service that ensures a specific number of instances of a pod are always running.
[+]Will automatically add or remove running instances of a pod, based on a set value for that pod. Allows the pod to return to the defined number of instances if pods are deleted or if too many are started by mistake.
Stores sensitive information, such as passwords, OAuth tokens, and ssh keys.
[+]Allows for more control over how sensitive information is used and reduces the risk of accidental exposure, including encryption at rest. A PodThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. references the secret as a file in a volume mount or by the kubelet pulling images for a pod. Secrets are great for confidential data and ConfigMaps for non-confidential data.
An abstract way to expose an application running on a set of PodsThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. as a network service.
[+]The set of Pods targeted by a Service is (usually) determined by a selectorAllows users to filter a list of resources based on labels. . If more Pods are added or removed, the set of Pods matching the selector will change. The Service makes sure that network traffic can be directed to the current set of Pods for the workload.
Provides an identity for processes that run in a PodThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. .
[+]When processes inside Pods access the cluster, they are authenticated by the API server as a particular service account, for example, default
. When you create a Pod, if you do not specify a service account, it is automatically assigned the default service account in the same namespace NamespaceAn abstraction used by Kubernetes to support multiple virtual clusters on the same physical cluster.
.
Manages the deployment and scaling of a set of PodsThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. , and provides guarantees about the ordering and uniqueness of these Pods.
[+]Like a DeploymentAn API object that manages a replicated application. , a StatefulSet manages Pods that are based on an identical container spec. Unlike a Deployment, a StatefulSet maintains a sticky identity for each of their Pods. These pods are created from the same spec, but are not interchangeable: each has a persistent identifier that it maintains across any rescheduling.
A StatefulSet operates under the same pattern as any other Controller. You define your desired state in a StatefulSet object, and the StatefulSet controller makes any necessary updates to get there from the current state.
A StorageClass provides a way for administrators to describe different available storage types.
[+]StorageClasses can map to quality-of-service levels, backup policies, or to arbitrary policies determined by cluster administrators. Each StorageClass contains the fields provisioner
, parameters
, and reclaimPolicy
, which are used when a Persistent VolumeAn API object that represents a piece of storage in the cluster. Available as a general, pluggable resource that persists beyond the lifecycle of any individual Pod.
belonging to the class needs to be dynamically provisioned. Users can request a particular class using the name of a StorageClass object.
A core object consisting of three required properties: key, value, and effect. Taints prevent the scheduling of pods on nodes or node groups.
[+]Taints and tolerationsA core object consisting of three required properties: key, value, and effect. Tolerations enable the scheduling of pods on nodes or node groups that have a matching taint. work together to ensure that pods are not scheduled onto inappropriate nodes. One or more taints are applied to a nodeA node is a worker machine in Kubernetes. . A node should only schedule a pod with the matching tolerations for the configured taints.
A core object consisting of three required properties: key, value, and effect. Tolerations enable the scheduling of pods on nodes or node groups that have matching taintsA core object consisting of three required properties: key, value, and effect. Taints prevent the scheduling of pods on nodes or node groups. .
[+]Tolerations and taintsA core object consisting of three required properties: key, value, and effect. Taints prevent the scheduling of pods on nodes or node groups. work together to ensure that pods are not scheduled onto inappropriate nodes. One or more tolerations are applied to a podThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. . A toleration indicates that the podThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. is allowed (but not required) to be scheduled on nodes or node groups with matching taintsA core object consisting of three required properties: key, value, and effect. Taints prevent the scheduling of pods on nodes or node groups. .
A directory containing data, accessible to the containers in a podThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. .
[+]A Kubernetes volume lives as long as the podThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. that encloses it. Consequently, a volume outlives any containersA lightweight and portable executable image that contains software and all of its dependencies. that run within the podThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. , and data is preserved across containerA lightweight and portable executable image that contains software and all of its dependencies. restarts.
A Volume Plugin enables integration of storage within a PodThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. .
[+]A Volume Plugin lets you attach and mount storage volumes for use by a PodThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. . Volume plugins can be in tree or out of tree. In tree plugins are part of the Kubernetes code repository and follow its release cycle. Out of tree plugins are developed independently.
Workloads are objects you use to manage and run your containers on the cluster.
[+]Kubernetes performs the deployment and updates the workload with the current state of the application. Workloads include the DaemonSet, Deployments, Jobs, Pods, ReplicaSet, ReplicationController, and StatefulSet objects.
For example, a workload that has a web element and a database element might run the database in one StatefulSetManages the deployment and scaling of a set of Pods, and provides guarantees about the ordering and uniqueness of these Pods. of podsThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. and the webserver via a DeploymentAn API object that manages a replicated application. that consists of many web app podsThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. , all alike.
Was this page helpful?
Thanks for the feedback. If you have a specific, answerable question about how to use Kubernetes, ask it on Stack Overflow. Open an issue in the GitHub repo if you want to report a problem or suggest an improvement.