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.
A set of machines, called nodes, that run containerized applications managed by Kubernetes.
[+]A cluster has several worker nodes and at least one master node.
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 ContainersThe lifecycle hooks expose events in the container management lifecycle and let the user run code when the events occur. . For example, file system details, information about the container itself, and other cluster resources such as service endpoints.
apiserver쿠버네티스 API를 노출하는 마스터 상의 컴포넌트. 쿠버네티스 컨트롤 플레인에 대한 프론트엔드이다. 를 통해 클러스터의 공유된 상태를 감시하고, 현재 상태를 원하는 상태로 이행시키도록 하는 컨트롤 루프.
[+]현재 쿠버네티스에 포함된 컨트롤러의 예시로는 레플리케이션 컨트롤러, 엔드포인트 컨트롤러, 네임스페이스 컨트롤러, 서비스어카운트 컨트롤러가 있다.
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 PodA high-level summary of what phase the Pod is in within its lifecyle. 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 Pod LifecycleA high-level summary of what phase the Pod is in within its lifecyle. , 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 Plugin are containers running in Kubernetes that provide access to a vendor specific resource. Device Plugins advertise these resources to kubelet and can be deployed manually or as a DeamonSet, rather than writing custom Kubernetes code.
Docker is a software technology providing operating-system-level virtualization also known as containers.
[+]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).
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 Pod LifecycleA high-level summary of what phase the Pod is in within its lifecyle. objects and ensures that a specified number of them successfully terminate. As Pods successfully complete, the Job tracks the successful completions.
쿠버네티스 API를 노출하는 마스터 상의 컴포넌트. 쿠버네티스 컨트롤 플레인에 대한 프론트엔드이다.
[+]수평적 스케일(즉, 더 많은 인스턴스를 디플로이하는 스케일)을 위해 설계되었다. 고가용성 클러스터 구축하기를 참고하라.
컨트롤러API 서버를 통해 클러스터의 공유된 상태를 감시하고, 현재 상태를 원하는 상태로 이행시키도록 하는 컨트롤 루프. 를 구동하는 마스터 상의 컴포넌트.
[+]논리적으로, 각 컨트롤러API 서버를 통해 클러스터의 공유된 상태를 감시하고, 현재 상태를 원하는 상태로 이행시키도록 하는 컨트롤 루프. 는 개별 프로세스이지만, 복잡성을 낮추기 위해 모두 단일 바이너리로 컴파일되고 단일 프로세스 내에서 실행된다.
kube-proxy
is a network proxy that runs on each node in the cluster.
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.
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.
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.
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 PodsA high-level summary of what phase the Pod is in within its lifecyle. . They are used to organize and to select subsets of objects.
A tool for running Kubernetes locally.
[+]Minikube runs a single-node cluster inside a VM on your computer.
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. .
[+]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 machine may be a VM or physical machine, depending on the cluster. It has the ServicesAn API object that describes how to access applications, such as a set of Pods, and can describe ports and load-balancers. necessary to run PodsA high-level summary of what phase the Pod is in within its lifecyle. and is managed by the master components. The ServicesAn API object that describes how to access applications, such as a set of Pods, and can describe ports and load-balancers. on a node include Docker, kubelet and kube-proxy.
The smallest and simplest Kubernetes object. A Pod represents a set of running containersThe lifecycle hooks expose events in the container management lifecycle and let the user run code when the events occur. 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 Pod LifecycleA high-level summary of what phase the Pod is in within its lifecyle. 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.
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 API object that describes how to access applications, such as a set of PodsA high-level summary of what phase the Pod is in within its lifecyle. , and can describe ports and load-balancers.
[+]The access point can be internal or external to the cluster.
Provides an identity for processes that run in a PodA high-level summary of what phase the Pod is in within its lifecyle. .
[+]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 PodsA high-level summary of what phase the Pod is in within its lifecyle. , 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 key-value pair and an effect to prevent the scheduling of pods on nodes or node groups.
[+]Taints and TolerationsA key-value pair and an effect to enable the scheduling of pods on nodes or node groups that have a matching {% glossary_tooltip term_id=“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. ; this marks that the nodeA node is a worker machine in Kubernetes. should not accept any pods that do not tolerate the taints.
A key-value pair and an effect to enable the scheduling of pods on nodes or node groups that have a matching taintsA key-value pair and an effect to prevent the scheduling of pods on nodes or node groups. .
[+]Tolerations and TaintsA key-value pair and an effect to 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 podA high-level summary of what phase the Pod is in within its lifecyle. ; this marks that the podA high-level summary of what phase the Pod is in within its lifecyle. is allowed (but not required) to be scheduled on nodes or node groups with matching taintsA key-value pair and an effect to prevent the scheduling of pods on nodes or node groups. .
오브젝트를 중복 없이 식별하기 위해 쿠버네티스 시스템이 생성하는 문자열.
[+]쿠버네티스 클러스터가 구동되는 전체 시간에 걸쳐 생성되는 모든 오브젝트는 서로 구분되는 UID를 갖는다. 이는 기록 상 유사한 개체의 출현을 서로 구분하기 위함이다.
A directory containing data, accessible to the containers in a podA high-level summary of what phase the Pod is in within its lifecyle. .
[+]A Kubernetes volume lives as long as the podA high-level summary of what phase the Pod is in within its lifecyle. that encloses it. Consequently, a volume outlives any containersThe lifecycle hooks expose events in the container management lifecycle and let the user run code when the events occur. that run within the podA high-level summary of what phase the Pod is in within its lifecyle. , and data is preserved across containerThe lifecycle hooks expose events in the container management lifecycle and let the user run code when the events occur. restarts.
/api/v1/pods/some-name
과 같이, 리소스 URL에서 오브젝트를 가리키는 클라이언트 제공 문자열.
특정 시점에 같은 종류(kind) 내에서는 한 오브젝트만이 부여된 이름을 가질 수 있다. 하지만, 오브젝트를 삭제한 경우, 새로운 오브젝트를 같은 이름으로 만들 수 있다.
이 페이지가 도움이 되었나요?
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.