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.
A key-value pair that is used to attach arbitrary non-identifying metadata to objects.
[+]The metadata in an annotation can be small or large, structured or unstructured, and can include characters not permitted by labels. Clients such as tools and libraries can retrieve this metadata.
The layer where various containerized applications run.
A set of machines, called nodes, that run containerized applications managed by Kubernetes. A cluster has at least one worker node and at least one master node.
[+]The worker node(s) host the pods that are the components of the application. The master node(s) manages the worker nodes and the pods in the cluster. Multiple master nodes are used to provide a cluster with failover and high availability.
A lightweight and portable executable image that contains software and all of its dependencies.
[+]Containers decouple applications from underlying host infrastructure to make deployment easier in different cloud or OS environments, and for easier scaling.
Container environment variables are name=value pairs that provide useful information into containers running in a Pod.
[+]Container environment variables provide information that is required by the running containerized applications along with information about important resources to the ContainersA lightweight and portable executable image that contains software and all of its dependencies. . For example, file system details, information about the container itself, and other cluster resources such as service endpoints.
The container runtime is the software that is responsible for running containers.
[+]Kubernetes supports several container runtimes: Docker, containerd, cri-o, rktlet and any implementation of the Kubernetes CRI (Container Runtime Interface).
The container orchestration layer that exposes the API and interfaces to define, deploy, and manage the lifecycle of containers.
A control loop that watches the shared state of the cluster through the apiserverComponent on the master that exposes the Kubernetes API. It is the front-end for the Kubernetes control plane. and makes changes attempting to move the current state towards the desired state.
[+]Examples of controllers that ship with Kubernetes today are the replication controller, endpoints controller, namespace controller, and serviceaccounts controller.
Custom code that defines a resource to add to your Kubernetes API server without building a complete custom server.
[+]Custom Resource Definitions let you extend the Kubernetes API for your environment if the publicly supported API resources can’t meet your needs.
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. A cluster has at least one worker node and at least one master node. .
[+]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. .
The layer that provides capacity such as CPU, memory, network, and storage so that the containers can run and connect to a network.
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.
Device Plugins are containers running in Kubernetes that provide access to a vendor specific resource.
[+]Device Plugins are containers running in Kubernetes that provide access to a vendor-specific resource. Device Plugins advertise these resources to KubeletAn agent that runs on each node in the cluster. It makes sure that containers are running in a pod. . They can be deployed manually or as a DaemonSetEnsures a copy of a Pod is running across a set of nodes in a cluster. , rather than writing custom Kubernetes code.
Docker (specifically, Docker Engine) is a software technology providing operating-system-level virtualization also known as containersA lightweight and portable executable image that contains software and all of its dependencies. .
[+]Docker uses the resource isolation features of the Linux kernel such as cgroups and kernel namespaces, and a union-capable file system such as OverlayFS and others to allow independent containers to run within a single Linux instance, avoiding the overhead of starting and maintaining virtual machines (VMs).
A ContainerA lightweight and portable executable image that contains software and all of its dependencies. type that you can temporarily run inside a PodThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. .
[+]If you want to investigate a Pod that’s running with problems, you can add an ephemeral container to that Pod and carry out diagnostics. Ephemeral containers have no resource or scheduling guarantees, and you should not use them to run any part of the workload itself.
Extensions are software components that extend and deeply integrate with Kubernetes to support new types of hardware.
[+]Most cluster administrators will use a hosted or distribution instance of Kubernetes. As a result, most Kubernetes users will need to install extensions and fewer will need to author new ones.
Stored instance of a container that holds a set of software needed to run an application.
[+]A way of packaging software that allows it to be stored in a container registry, pulled to a local system, and run as an application. Meta data is included in the image that can indicate what executable to run, who built it, and other information.
One or more initialization containers that must run to completion before any app containers run.
[+]Initialization (init) containers are like regular app containers, with one difference: init containers must run to completion before any app containers can start. Init containers run in series: each init container must run to completion before the next init container begins.
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.
A command line tool for communicating with a Kubernetes APIThe application that serves Kubernetes functionality through a RESTful interface and stores the state of the cluster. server.
[+]You can use kubectl to create, inspect, update, and delete Kubernetes objects.
Agen yang dijalankan pada setiap node di kluster dan bertugas memastikan kontainer dijalankan di dalam pod.
The application that serves Kubernetes functionality through a RESTful interface and stores the state of the cluster.
[+]Kubernetes resources and “records of intent” are all stored as API objects, and modified via RESTful calls to the API. The API allows configuration to be managed in a declarative way. Users can interact with the Kubernetes API directly, or via tools like kubectl
. The core Kubernetes API is flexible and can also be extended to support custom resources.
Tags objects with identifying attributes that are meaningful and relevant to users.
[+]Labels are key/value pairs that are attached to objects such as PodsThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. . They are used to organize and to select subsets of objects.
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.
Logs are the list of events that are logged by clusterA set of machines, called nodes, that run containerized applications managed by Kubernetes. A cluster has at least one worker node and at least one master node. or application.
[+]Application and systems logs can help you understand what is happening inside your cluster. The logs are particularly useful for debugging problems and monitoring cluster activity.
A tool for running Kubernetes locally.
[+]Minikube runs a single-node cluster inside a VM on your computer. You can use Minikube to try Kubernetes in a learning environment.
A podThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. object that a kubelet uses to represent a static podA pod managed directly by the kubelet daemon on a specific node.
[+]When the kubelet finds a static pod in its configuration, it automatically tries to create a Pod object on the Kubernetes API server for it. This means that the pod will be visible on the API server, but cannot be controlled from there.
(For example, removing a mirror pod will not stop the kubelet daemon from running it).
String yang dihasilkan oleh klien yang mengacu pada sebuah objek dalam suatu URL resource, seperti /api/v1/pods/some-name
.
Sebuah objek dengan kind yang sama tidak boleh memiliki nama yang sama pada suatu waktu tertentu. Meskipun begitu, apabila kamu menghapus sebuah objek, kamu membuat sebuah objek baru (yang memiliki kind yang sama) dengan nama yang sama dengan objek yang kamu hapus sebelumnya.
An abstraction used by Kubernetes to support multiple virtual clusters on the same physical clusterA set of machines, called nodes, that run containerized applications managed by Kubernetes. A cluster has at least one worker node and at least one master node. .
[+]Namespaces are used to organize objects in a cluster and provide a way to divide cluster resources. Names of resources need to be unique within a namespace, but not across namespaces.
A node is a worker machine in Kubernetes.
[+]A worker node may be a VM or physical machine, depending on the cluster. It has local daemons or services necessary to run PodsThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. and is managed by the control plane. The daemons on a node include kubeletAn agent that runs on each node in the cluster. It makes sure that containers are running in a pod. , kube-proxykube-proxy is a network proxy that runs on each node in the cluster. , and a container runtime implementing the CRIAn API for container runtimes to integrate with kubelet such as DockerDocker is a software technology providing operating-system-level virtualization also known as containers. .
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. .
A high-level summary of what phase the Pod is in within its lifecyle.
[+]The Pod Lifecycle is a high level summary of where a Pod is in its lifecyle. A Pod’s status
field is a PodStatus object, which has a phase
field that displays one of the following phases: Running, Pending, Succeeded, Failed, Unknown, Completed, or CrashLoopBackOff.
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
.
Manages authorization decisions, allowing admins to dynamically configure access policies through the Kubernetes APIThe application that serves Kubernetes functionality through a RESTful interface and stores the state of the cluster. .
[+]RBAC utilizes roles, which contain permission rules, and role bindings, which grant the permissions defined in a role to a set of users.
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.
Provides constraints that limit aggregate resource consumption per NamespaceAn abstraction used by Kubernetes to support multiple virtual clusters on the same physical cluster. .
[+]Limits the quantity of objects that can be created in a namespace by type, as well as the total amount of compute resources that may be consumed by resources in that project.
Allows users to filter a list of resources based on labels.
[+]Selectors are applied when querying lists of resources to filter them by LabelsTags objects with identifying attributes that are meaningful and relevant to users. .
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 podThe smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster. managed directly by the kubelet daemon on a specific node,
[+]without the API server observing it.
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. .
String yang dihasilkan oleh sistem Kubernetes untuk mengidentifikasi objek secara unik.
[+]Setiap objek yang ada pada kluster Kubernetes memiliki UID yang unik. Hal ini dilakukan untuk membedakan keberadaan historis suatu entitas dengan kind dan nama yang serupa.
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 workload is an application running on Kubernetes.
[+]Various core objects that represent different types or parts of a workload include the DaemonSet, Deployment, Job, ReplicaSet, and StatefulSet objects.
For example, a workload that has a web server and a database 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. and the web server in a DeploymentAn API object that manages a replicated application. .
A group of Linux processes with optional resource isolation, accounting and limits.
[+]cgroup is a Linux kernel feature that limits, accounts for, and isolates the resource usage (CPU, memory, disk I/O, network) for a collection of processes.
Komponen di master yang mengekspos API Kubernetes. Merupakan front-end dari kontrol plane Kubernetes.
[+]Komponen ini didesain agar dapat di-scale secara horizontal. Lihat Membangun Kluster HA.
Komponen di master yang menjalankan kontroler.
[+]Secara logis, setiap kontroler adalah sebuah proses yang berbeda, tetapi untuk mengurangi kompleksitas, kontroler-kontroler ini dikompilasi menjadi sebuah binary yang dijalankan sebagai satu proses.
kube-proxy is a network proxy that runs on each node in your cluster, implementing part of the Kubernetes ServiceA way to expose an application running on a set of Pods as a network service. concept.
[+]kube-proxy maintains network rules on nodes. These network rules allow network communication to your Pods from network sessions inside or outside of your cluster.
kube-proxy uses the operating system packet filtering layer if there is one and it’s available. Otherwise, kube-proxy forwards the traffic itself.
Apakah halaman ini berguna?
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.