용어집
이 용어집은 쿠버네티스 용어의 종합적이고 표준화된 리스트를 제공한다. 용어집은 K8s 고유의 기술 용어 뿐만 아니라, 맥락을 이해하는데 유용한 더 일반적인 용어도 포함한다.
태그에 따라 용어 필터링
다음 [+] 표시를 클릭하면 각 용어에 대한 더 자세한 설명을 볼 수 있다.
- API 서버LINK별칭:kube-apiserver
API 서버는 쿠버네티스 API를 노출하는 쿠버네티스 컨트롤 플레인 컴포넌트이다. API 서버는 쿠버네티스 컨트롤 플레인의 프론트 엔드이다.
[+]쿠버네티스 API 서버의 주요 구현은 kube-apiserver 이다. kube-apiserver는 수평으로 확장되도록 디자인되었다. 즉, 더 많은 인스턴스를 배포해서 확장할 수 있다. 여러 kube-apiserver 인스턴스를 실행하고, 인스턴스간의 트래픽을 균형있게 조절할 수 있다.
- API를 이용한 축출(Eviction)LINK
API를 이용한 축출은 축출 API를 사용하여 생성된
[+]Eviction
오브젝트로 파드를 정상 종료한다.kubectl drain
명령과 같은 kube-apiserver의 클라이언트를 사용하여 축출 API를 직접 호출해 축출 요청을 할 수 있다.Eviction
오브젝트가 생성되면, API 서버가 파드를 종료한다.API를 이용한 축출은 사용자가 설정한
PodDisruptionBudgets
및terminationGracePeriodSeconds
값을 준수한다.API를 이용한 축출은 노드-압박 축출과 동일하지 않다.
- 더 많은 정보는 API를 이용한 축출을 참고한다.
- Application ArchitectLINK
A person responsible for the high-level design of an application.
[+]An architect ensures that an app's implementation allows it to interact with its surrounding components in a scalable, maintainable way. Surrounding components include databases, logging infrastructure, and other microservices.
- cAdvisorLINK
cAdvisor (Container Advisor) provides container users an understanding of the resource usage and performance characteristics of their running containers.
[+]It is a running daemon that collects, aggregates, processes, and exports information about running containers. Specifically, for each container it keeps resource isolation parameters, historical resource usage, histograms of complete historical resource usage and network statistics. This data is exported by container and machine-wide.
- CRI-OLINK
A tool that lets you use OCI container runtimes with Kubernetes CRI.
[+]CRI-O is an implementation of the Container runtime interface (CRI) to enable using container runtimes that are compatible with the Open Container Initiative (OCI) runtime spec.
Deploying CRI-O allows Kubernetes to use any OCI-compliant runtime as the container runtime for running Pods, and to fetch OCI container images from remote registries.
- Downstream (disambiguation)LINK
May refer to: code in the Kubernetes ecosystem that depends upon the core Kubernetes codebase or a forked repo.
[+]- In the Kubernetes Community: Conversations often use downstream to mean the ecosystem, code, or third-party tools that rely on the core Kubernetes codebase. For example, a new feature in Kubernetes may be adopted by applications downstream to improve their functionality.
- In GitHub or git: The convention is to refer to a forked repo as downstream, whereas the source repo is considered upstream.
- Downward APILINK
Kubernetes' mechanism to expose Pod and container field values to code running in a container.
[+]It is sometimes useful for a container to have information about itself, without needing to make changes to the container code that directly couple it to Kubernetes.
The Kubernetes downward API allows containers to consume information about themselves or their context in a Kubernetes cluster. Applications in containers can have access to that information, without the application needing to act as a client of the Kubernetes API.
There are two ways to expose Pod and container fields to a running container:
- using environment variables
- using a
downwardAPI
volume
Together, these two ways of exposing Pod and container fields are called the downward API.
- EndpointSliceLINK
A way to group network endpoints together with Kubernetes resources.
[+]A scalable and extensible way to group network endpoints together. These can be used by kube-proxy to establish network routes on each node.
- Feature gateLINK
Feature gates are a set of keys (opaque string values) that you can use to control which Kubernetes features are enabled in your cluster.
[+]You can turn these features on or off using the
--feature-gates
command line flag on each Kubernetes component. Each Kubernetes component lets you enable or disable a set of feature gates that are relevant to that component. The Kubernetes documentation lists all current feature gates and what they control. - FlexVolumeLINK
FlexVolume is a deprecated interface for creating out-of-tree volume plugins. The Container Storage Interface is a newer interface that addresses several problems with FlexVolume.
[+]FlexVolumes enable users to write their own drivers and add support for their volumes in Kubernetes. FlexVolume driver binaries and dependencies must be installed on host machines. This requires root access. The Storage SIG suggests implementing a CSI driver if possible since it addresses the limitations with FlexVolumes.
- kOps (Kubernetes Operations)LINK
[+]kOps
will not only help you create, destroy, upgrade and maintain production-grade, highly available, Kubernetes cluster, but it will also provision the necessary cloud infrastructure.Note: AWS (Amazon Web Services) is currently officially supported, with DigitalOcean, GCE and OpenStack in beta support, and Azure in alpha.kOps
is an automated provisioning system:- Fully automated installation
- Uses DNS to identify clusters
- Self-healing: everything runs in Auto-Scaling Groups
- Multiple OS support (Amazon Linux, Debian, Flatcar, RHEL, Rocky and Ubuntu)
- High-Availability support
- Can directly provision, or generate terraform manifests
- kube-proxyLINK
kube-proxy는 클러스터의 각 노드에서 실행되는 네트워크 프록시로, 쿠버네티스의 서비스 개념의 구현부이다.
[+]kube-proxy는 노드의 네트워크 규칙을 유지 관리한다. 이 네트워크 규칙이 내부 네트워크 세션이나 클러스터 바깥에서 파드로 네트워크 통신을 할 수 있도록 해준다.
kube-proxy는 운영 체제에 가용한 패킷 필터링 계층이 있는 경우, 이를 사용한다. 그렇지 않으면, kube-proxy는 트래픽 자체를 포워드(forward)한다.
- MasterLINK
Legacy term, used as synonym for nodes hosting the control plane.
[+]The term is still being used by some provisioning tools, such as kubeadm, and managed services, to label nodes with
kubernetes.io/role
and control placement of control plane pods. - MinikubeLINK
로컬에서 쿠버네티스를 실행하기 위한 도구.
[+]Minikube는 VM이나 사용자 컴퓨터에서 단일 노드 클러스터를 실행한다. Minikube를 사용하여 학습 환경에서 쿠버네티스 시도하기를 할 수 있다.
- Mixed Version Proxy (MVP)LINK별칭:MVP
Feature to let a kube-apiserver proxy a resource request to a different peer API server.
[+]When a cluster has multiple API servers running different versions of Kubernetes, this feature enables resource requests to be served by the correct API server.
MVP is disabled by default and can be activated by enabling the feature gate named
UnknownVersionInteroperabilityProxy
when the API Server is started. - Operator patternLINK
The operator pattern is a system design that links a Controller to one or more custom resources.
[+]You can extend Kubernetes by adding controllers to your cluster, beyond the built-in controllers that come as part of Kubernetes itself.
If a running application acts as a controller and has API access to carry out tasks against a custom resource that's defined in the control plane, that's an example of the Operator pattern.
- Platform DeveloperLINK
A person who customizes the Kubernetes platform to fit the needs of their project.
[+]A platform developer may, for example, use Custom Resources or Extend the Kubernetes API with the aggregation layer to add functionality to their instance of Kubernetes, specifically for their application. Some Platform Developers are also contributors and develop extensions which are contributed to the Kubernetes community. Others develop closed-source commercial or site-specific extensions.
- Pod Disruption BudgetLINK별칭:PDB
A Pod Disruption Budget allows an application owner to create an object for a replicated application, that ensures a certain number or percentage of Pods with an assigned label will not be voluntarily evicted at any point in time.
[+]Involuntary disruptions cannot be prevented by PDBs; however they do count against the budget.
- ProbeLINK
A check that the kubelet periodically performs against a container that is running in a pod, that will define container's state and health and informing container's lifecycle.
[+]To learn more, read container probes.
- Security ContextLINK
The
[+]securityContext
field defines privilege and access control settings for a Pod or container.In a
securityContext
, you can define: the user that processes run as, the group that processes run as, and privilege settings. You can also configure security policies (for example: SELinux, AppArmor or seccomp).The
PodSpec.securityContext
setting applies to all containers in a Pod. - Shuffle-shardingLINK
A technique for assigning requests to queues that provides better isolation than hashing modulo the number of queues.
[+]We are often concerned with insulating different flows of requests from each other, so that a high-intensity flow does not crowd out low-intensity flows. A simple way to put requests into queues is to hash some characteristics of the request, modulo the number of queues, to get the index of the queue to use. The hash function uses as input characteristics of the request that align with flows. For example, in the Internet this is often the 5-tuple of source and destination address, protocol, and source and destination port.
That simple hash-based scheme has the property that any high-intensity flow will crowd out all the low-intensity flows that hash to the same queue. Providing good insulation for a large number of flows requires a large number of queues, which is problematic. Shuffle-sharding is a more nimble technique that can do a better job of insulating the low-intensity flows from the high-intensity flows. The terminology of shuffle-sharding uses the metaphor of dealing a hand from a deck of cards; each queue is a metaphorical card. The shuffle-sharding technique starts with hashing the flow-identifying characteristics of the request, to produce a hash value with dozens or more of bits. Then the hash value is used as a source of entropy to shuffle the deck and deal a hand of cards (queues). All the dealt queues are examined, and the request is put into one of the examined queues with the shortest length. With a modest hand size, it does not cost much to examine all the dealt cards and a given low-intensity flow has a good chance to dodge the effects of a given high-intensity flow. With a large hand size it is expensive to examine the dealt queues and more difficult for the low-intensity flows to dodge the collective effects of a set of high-intensity flows. Thus, the hand size should be chosen judiciously.
- Upstream (disambiguation)LINK
May refer to: core Kubernetes or the source repo from which a repo was forked.
[+]- In the Kubernetes Community: Conversations often use upstream to mean the core Kubernetes codebase, which the general ecosystem, other code, or third-party tools rely upon. For example, community members may suggest that a feature is moved upstream so that it is in the core codebase instead of in a plugin or third-party tool.
- In GitHub or git: The convention is to refer to a source repo as upstream, whereas the forked repo is considered downstream.
- user namespaceLINK
A kernel feature to emulate root. Used for "rootless containers".
[+]User namespaces are a Linux kernel feature that allows a non-root user to emulate superuser ("root") privileges, for example in order to run containers without being a superuser outside the container.
User namespace is effective for mitigating damage of potential container break-out attacks.
In the context of user namespaces, the namespace is a Linux kernel feature, and not a namespace in the Kubernetes sense of the term.
- WG(working group)LINK
위원회(committee), SIG 내, 또는 SIG 간 노력을 위한 단기적이거나, 좁은 범위를 다루거나, 혹은 서로 연관되지 않은 프로젝트의 토론 및 구현을 촉진한다.
[+]WG은 별개의 작업을 수행하기 위해 사람들을 조직하는 한 방법이다.
자세한 내용은 kubernetes/community 저장소 및 현재 존재하는 SIG 및 WG 목록을 참조한다.
- 가비지(Garbage) 수집LINK
쿠버네티스가 클러스터 자원을 정리하기 위해 사용하는 다양한 방법을 종합한 용어이다.
[+]쿠버네티스는 가비지 수집을 이용하여 사용되지 않는 컨테이너와 이미지, 실패한 파드, 타겟 리소스가 소유한 오브젝트, 종료된 잡, 그리고 만료되거나 실패한 리소스 같은 리소스를 정리한다.
- 개발자(Developer) (의미 명확화)LINK
애플리케이션 개발자, 코드 기여자, 또는 플랫폼 개발자를 가리킨다.
[+]하나 이상의 의미를 갖는 개발자라는 용어는 문맥에 따라 다른 의미로 해석할 수 있다.
- 네트워크 폴리시(Network Policy)LINK
파드 그룹들이 서로에 대한 그리고 다른 네트워크 엔드포인트에 대한 통신이 어떻게 허용되는지에 대한 명세이다.
[+]네트워크 폴리시는 어떤 파드들의 연결을 서로 허용할지, 어떤 네임스페이스가 통신 가능하도록 허용할지, 더 상세하게는 어떤 포트 번호에 각 정책을 시행할지도 선언적으로 구성할 수 있게 도와준다.
NetworkPolicy
리소스는 파드를 선택하고 선택된 파드에 어떤 트래픽을 허용할지 명시하는 규칙을 정의하기 위해서 레이블을 사용한다. 네트워크 폴리시는 네트워크 프로바이더에 의해 제공되는 네트워크 플러그인 지원에 의해 구현된다. 네트워크 리소스를 그것을 구현하는 컨트롤러 없이 생성하는 것은 아무런 효과가 없음을 주의하기 바란다. - 노드-압박 축출LINK별칭:kubelet eviction
노드-압박 축출은 kubelet이 노드의 자원을 회수하기 위해 파드를 능동적으로 중단시키는 절차이다.
[+]kubelet은 클러스터 노드의 CPU, 메모리, 디스크 공간, 파일시스템 inode와 같은 자원을 모니터링한다. 이러한 자원 중 하나 이상이 특정 소모 수준에 도달하면, kubelet은 하나 이상의 파드를 능동적으로 중단시켜 자원을 회수하고 고갈 상황을 방지할 수 있다.
노드-압박 축출은 API를 이용한 축출과는 차이가 있다.
- 노드(Node)LINK
노드는 쿠버네티스의 작업 장비(worker machine)이다.
[+]작업 노드는 클러스터에 따라 VM이거나 물리 머신일 것이다. 파드 실행에 필요한 로컬 데몬과 서비스를 가지고 있으며, 콘트롤 플레인에 의해서 관리된다. 노드에 있는 데몬은 kubelet, kube-proxy와 도커(Docker) 같이 컨테이너 런타임을 구현한 CRI를 포함한다.
초기 쿠버네티스 버전에서는 노드를 "미니언(Minions)"으로 불렀었다.
- 도커(Docker)LINK
도커(구체적으로, 도커 엔진)는 운영 시스템 수준의 가상화를 제공하는 소프트웨어 기술이며, containers 로도 알려져 있다.
[+]Docker는 리눅스 커널의 리소스 격리 기능을 사용하며, 그 격리 기능의 예는 cgroups, 커널 네임스페이스, OverlayFS와 같은 조합 가능한 파일 시스템, 컨테이너가 단일 리눅스 인스턴스에서 독립적으로 실행되게 하여 가상 머신(VM)을 시작하고 관리하는 오버헤드를 피할 수 있도록 하는 기타 기능 등이 있다.
- 도커심(Dockershim)LINK
도커심(Dockershim)은 쿠버네티스 버전 1.23 이하의 구성 요소이다. kubelet이 도커 엔진과 통신할 수 있게 한다.
[+]1.24버전 부터 도커심(Dockershim)은 쿠버네티스에서 제거되었다. 자세한 사항은 Dockershim FAQ를 참고한다.
- 디플로이먼트(Deployment)LINK
일반적으로 로컬 상태가 없는 파드를 실행하여 복제된 애플리케이션을 관리하는 API 오브젝트.
[+]각 레플리카는 파드로 표현되며, 파드는 클러스터의 노드에 분산된다. 로컬 상태가 필요한 워크로드의 경우 스테이트풀셋(StatefulSet)의 사용을 고려한다.
- 레플리카셋(ReplicaSet)LINK
레플리카셋은 (목표로) 주어진 시간에 실행되는 레플리카 파드 셋을 유지 관리 한다.
[+]디플로이먼트(Deployment) 와 같은 워크로드 오브젝트는 레플리카셋을 사용해서 해당 레플리카셋의 스펙에 따라 구성된 파드 의 수를 클러스터에서 실행한다.
- 수량(Quantity)LINK
SI 접미사를 사용하는 작거나 큰 숫자의 정수(whole-number) 표현.
[+]수량은 SI 접미사가 포함된 간결한 정수 표기법을 통해서 작거나 큰 숫자를 표현한 것이다. 분수는 밀리(milli) 단위로 표시되는 반면, 큰 숫자는 킬로(kilo), 메가(mega), 또는 기가(giga) 단위로 표시할 수 있다.
예를 들어, 숫자
1.5
는1500m
으로, 숫자1000
은1k
로,1000000
은1M
으로 표시할 수 있다. 또한, 이진 표기법 접미사도 명시 가능하므로, 숫자 2048은2Ki
로 표기될 수 있다.허용되는 10진수(10의 거듭 제곱) 단위는
m
(밀리),k
(킬로, 의도적인 소문자),M
(메가),G
(기가),T
(테라),P
(페타),E
(엑사)가 있다.허용되는 2진수(2의 거듭 제곱) 단위는
Ki
(키비),Mi
(메비),Gi
(기비),Ti
(테비),Pi
(페비),Ei
(엑비)가 있다. - 스테이트풀셋(StatefulSet)LINK
파드 집합의 디플로이먼트와 스케일링을 관리하며, 파드들의 순서 및 고유성을 보장한다 .
[+]디플로이먼트와 유사하게, 스테이트풀셋은 동일한 컨테이너 스펙을 기반으로 둔 파드들을 관리한다. 디플로이먼트와는 다르게, 스테이트풀셋은 각 파드의 독자성을 유지한다. 이 파드들은 동일한 스팩으로 생성되었지만, 서로 교체는 불가능하다. 다시 말해, 각각은 재스케줄링 간에도 지속적으로 유지되는 식별자를 가진다.
스토리지 볼륨을 사용해서 워크로드에 지속성을 제공하려는 경우, 솔루션의 일부로 스테이트풀셋을 사용할 수 있다. 스테이트풀셋의 개별 파드는 장애에 취약하지만, 퍼시스턴트 파드 식별자는 기존 볼륨을 실패한 볼륨을 대체하는 새 파드에 더 쉽게 일치시킬 수 있다.
- 스토리지 클래스(Storage Class)LINK
스토리지클래스는 관리자가 사용 가능한 다양한 스토리지 유형을 설명할 수 있는 방법을 제공한다.
[+]스토리지 클래스는 서비스 품질 수준, 백업 정책 혹은 클러스터 관리자가 결정한 임의의 정책에 매핑할 수 있다. 각 스토리지클래스에는 클래스에 속한 퍼시스턴트 볼륨(Persistent Volume)을 동적으로 프로비저닝해야 할 때 사용되는
provisioner
,parameters
및reclaimPolicy
필드가 있다. 사용자는 스토리지클래스 객체의 이름을 사용하여 특정 클래스를 요청할 수 있다. - 애그리게이션 레이어(Aggregation Layer)LINK
애그리게이션 레이어를 이용하면 사용자가 추가로 쿠버네티스 형식의 API를 클러스터에 설치할 수 있다.
[+]쿠버네티스 API 서버에서 추가 API 지원을 구성하였으면, 쿠버네티스 API의 URL 경로를 "요구하는"
APIService
오브젝트 추가할 수 있다. - 엔드포인트(Endpoints)LINK
엔드포인트는 서비스(Service) 셀렉터(Selector)에 매치되는 파드의 IP 주소를 추적한다. (API에서 해당
[+]kind
의 명칭은Endpoints
이며, 복수형이 기본임을 유의한다.)엔드포인트는 셀렉터를 명시하지 않고도 서비스(Service)에 대해 수동으로 구성할 수 있다. 엔드포인트슬라이스(EndpointSlice) 리소스는 엔드포인트의 대안으로, 확장성(scalability)과 확장 가능성(extensibility)을 제공한다.
- 이벤트(Event)LINK
각 이벤트는 클러스터 어딘가에서 발생한 이벤트에 대한 보고서이다. 일반적으로 시스템의 상태 변화를 나타낸다.
[+]이벤트의 보존(retention) 시간은 제한되어 있으며, 트리거(trigger)와 메시지(message)는 시간에 따라 변화할 수 있다. 이벤트 소비자는 일관성 있는 기본 트리거를 반영한다거나 이벤트가 지속적으로 존재한다는 특정 이유로 이벤트의 타이밍에 의존해서는 안 된다.
이벤트는 유익(imformative)해야 하고, 최선을 다한(best-effort), 보완적(supplemental) 데이터로 취급되어야 한다.
쿠버네티스에서, 감사(auditing)는 다른 종류의 이벤트 레코드를 생성한다. (API 그룹
audit.k8s.io
). - 임시 컨테이너(Ephemeral Container)LINK[+]
문제가 있는 실행 중 파드를 조사하고 싶다면, 파드에 임시 컨테이너를 추가하고 진단을 수행할 수 있다. 임시 컨테이너는 리소스 및 스케줄링에 대한 보장이 제공되지 않으며, 워크로드 자체를 실행하기 위해 임시 컨테이너를 사용해서는 안 된다.
스태틱 파드(static pod)는 임시 컨테이너를 지원하지 않는다.
더 자세한 정보는 파드 API의 EphemeralContainer를 참고한다.
- 중단(Disruption)LINK
중단은 하나 이상의 파드를 중단시키게 만드는 이벤트를 의미한다. 중단은 디플로이먼트(Deployment)와 같이 해당 영향을 받는 파드에 의존하는 워크로드 리소스에도 영향을 준다.
[+]클러스터 오퍼레이터로서, 애플리케이션에 속한 파드를 직접 파괴하는 경우 쿠버네티스는 이를 자발적 중단(voluntary disruption) 이라고 칭한다. 노드 장애 또는 더 넓은 영역에 장애를 일으키는 정전 등으로 인해 파드가 오프라인 상태가 되면 쿠버네티스는 이를 비자발적 중단(involuntary disruption) 이라고 한다.
자세한 정보는 중단을 확인한다.
- 컨테이너 네트워크 인터페이스(Container network interface, CNI)LINK
컨테이너 네트워크 인터페이스(CNI) 플러그인은 appc/CNI 스펙을 따르는 네트워크 플러그인의 일종이다.
[+]- 쿠버네티스와 CNI에 대한 정보는 "네트워크 플러그인"에서 볼 수 있다.
- 컨테이너 런타임LINK
컨테이너 런타임은 컨테이너 실행을 담당하는 소프트웨어이다.
[+]쿠버네티스는 containerd, CRI-O와 같은 컨테이너 런타임 및 모든 Kubernetes CRI (컨테이너 런타임 인터페이스) 구현체를 지원한다.
- 컨테이너 스토리지 인터페이스(CSI)LINK
컨테이너 스토리지 인터페이스(CSI)는 컨테이너에 스토리지 시스템을 노출하는 표준 인터페이스를 정의한다.
[+]CSI를 통해 공급업체는 쿠버네티스 저장소(트리 외 플러그인)를 추가하지 않고도 쿠버네티스용 사용자 스토리지 플러그인을 생성할 수 있다. 스토리지 제공자가 CSI 드라이버를 사용하려면, 먼저 클러스터에 배포해야 한다. 그런 다음 해당 CSI 드라이버를 사용하는 스토리지클래스(StorageClass)를 생성할 수 있다.
- 컨트롤러(Controller)LINK
쿠버네티스에서 컨트롤러는 클러스터 의 상태를 관찰 한 다음, 필요한 경우에 생성 또는 변경을 요청하는 컨트롤 루프이다. 각 컨트롤러는 현재 클러스터 상태를 의도한 상태에 가깝게 이동한다.
[+]컨트롤러는 api 서버 (컨트롤 플레인(Control Plane)의 일부)를 통해 클러스터의 공유 상태를 감시한다.
일부 컨트롤러는 컨트롤 플레인 내부에서 실행되며, 쿠버네티스 작업의 핵심인 컨트롤 루프를 제공한다. 예를 들어 디플로이먼트 컨트롤러, 데몬셋 컨트롤러, 네임스페이스 컨트롤러 그리고 퍼시스턴트 볼륨 컨트롤러(및 그 외)는 모두 "kube-controller-manager" 내에서 실행 된다.
- 컨트리뷰터(Contributor)LINK
쿠버네티스 프로젝트 또는 커뮤니티를 돕기 위해 코드, 문서 또는 시간을 기부하는 사람.
[+]기여에는 풀 리퀘스트(PR), 이슈, 피드백, 분과회(special interest groups) 참여, 또는 커뮤니티 행사 조직이 포함됩니다.
- 코드 컨트리뷰터(Code Contributor)LINK
쿠버네티스 오픈소스 코드베이스에 코드를 개발하고 기여하는 사람.
[+]그들은 하나 이상의 Special Interest Group (SIG)에 참여하는 활동적인 커뮤니티 멤버이기도 하다.
- 클라우드 공급자LINK별칭:Cloud Service Provide
클라우드 컴퓨팅 플랫폼을 제공하는 사업자 또는 다른 조직
[+]클라우드 공급자, 때로는 클라우드 서비스 공급자(CSP) 부르며, 클라우드 컴퓨팅 플랫폼 또는 서비스를 제공한다.
많은 클라우드 공급자들은 관리되는 인프라를 제공한다(이를 Infrastructure as a Service 또는 IaaS 라 부른다). 관리되는 인프라를 통해 클라우드 공급자는 서버, 스토리지 그리고 네트워킹을 담당하고 쿠버네티스 클러스터 실행과 같은 계층을 관리한다.
사용자는 쿠버네티스를 관리되는 서비스로 찾을 수 있다. 때로는 이것을 Platform as a Service 또는 PaaS라 부른다. 관리되는 쿠버네티스를 사용하면 클라우드 공급자가 쿠버네티스 컨트롤 플레인만 아니라, 노드와 연관되는 인프라(네트워킹, 스토리지 그리고 로드밸런서와 같은 기타 요소) 를 책임진다.
- 테인트(Taint)LINK
세 가지 필수 속성: 키(key), 값(value), 효과(effect)로 구성된 코어 오브젝트. 테인트는 파드가 노드나 노드 그룹에 스케줄링되는 것을 방지한다.
[+]테인트 및 톨러레이션(toleration)은 함께 작동하며, 파드가 적절하지 못한 노드에 스케줄되는 것을 방지한다. 하나 이상의 테인트가 노드에 적용될 수 있으며, 이것은 노드에 해당 테인트를 극복(tolerate)하지 않은 파드를 허용하지 않도록 표시한다.
- 파드 시큐리티 폴리시(Pod Security Policy)LINK
파드 생성과 업데이트에 대한 세밀한 인가를 활성화한다.
[+]파드 명세에서 보안에 민감한 측면을 제어하는 클러스터 수준의 리소스.
PodSecurityPolicy
오브젝트는 파드가 시스템에 수용될 수 있도록 파드가 실행해야 하는 조건의 집합과 관련된 필드의 기본 값을 정의한다. 파드 시큐리티 폴리시 제어는 선택적인 어드미션 컨트롤러로서 구현된다.파드 시큐리티 폴리시는 쿠버네티스 v1.21에서 사용 중단되었고, v1.25에서 제거되었다. 그 대신에 파드 시큐리티 어드미션 또는 써드파티 어드미션 플러그인을 사용한다.
- 파이널라이저(Finalizer)LINK
파이널라이저는 쿠버네티스가 오브젝트를 완전히 삭제하기 이전, 삭제 표시를 위해 특정 조건이 충족될 때까지 대기하도록 알려주기 위한 네임스페이스에 속한 키(namespaced key)이다. 파이널라이저는 삭제 완료된 오브젝트가 소유한 리소스를 정리하기 위해 컨트롤러에게 알린다.
[+]파이널라이저를 가진 특정한 오브젝트를 쿠버네티스가 삭제하도록 지시할 때, 쿠버네티스 API는
.metadata.delationTimestamp
을 덧붙여 삭제하도록 오브젝트에 표시하며,202
상태코드(HTTP "Accepted")을 리턴한다. 대상 오브젝트가 Terminating 상태를 유지하는 동안 컨트롤 플레인 또는 다른 컴포넌트는 하나의 파이널라이저에서 정의한 작업을 수행한다. 정의된 작업이 완료 후에, 그 컨트롤러는 대상 오브젝트로부터 연관된 파이널라이저을 삭제한다.metadata.finalizers
필드가 비어 있을 때, 쿠버네티스는 삭제가 완료된 것으로 간주하고 오브젝트를 삭제한다.파이널라이저가 리소스들의 가비지 컬렉션을 제어하도록 사용할 수 있다. 예를 들어, 하나의 파이널라이저를 컨트롤러가 대상 리소소를 삭제하기 전에 연관된 리소스들 또는 인프라를 정리하도록 정의할 수 있다.
- 퍼시스턴트 볼륨 클레임(Persistent Volume Claim)LINK
컨테이너의 볼륨으로 마운트될 수 있도록 퍼시스턴트볼륨(PersistentVolume)에 정의된 스토리지 리소스를 요청한다.
[+]스토리지의 양, 스토리지에 엑세스하는 방법(읽기 전용, 읽기 그리고/또는 쓰기) 및 재확보(보존, 재활용 혹은 삭제) 방법을 지정한다. 스토리지 자체에 관한 내용은 퍼시스턴트볼륨 오브젝트에 설명되어 있다.
- 프록시(Proxy)LINK
컴퓨팅에서 프록시는 원격 서비스를 위한 중개자 역할을 하는 서버이다.
[+]클라이언트는 프록시와 통신한다. 프록시는 클라이언트에게 받은 데이터를 복사하여 실제 서버에게 보내고 실제 서버는 이에 대한 응답을 프록시에게 보낸다. 마지막으로 프록시는 실제 서버에게 받은 응답을 클라이언트에게 전달한다.
kube-proxy는 클러스터의 각 노드에서 실행되는 네트워크 프록시로, 쿠버네티스 서비스 개념의 일부를 구현한다.
kube-proxy를 일반 사용자 영역 프록시(plain userland proxy) 서비스로 실행할 수 있다. 운영체제가 지원한다면, 더 적은 시스템 리소스를 사용하여 동일한 효과를 내는 하이브리드 방식으로 kube-proxy를 대신 실행할 수 있다.
피드백
이 페이지가 도움이 되었나요?
피드백 감사합니다. 쿠버네티스 사용 방법에 대해서 구체적이고 답변 가능한 질문이 있다면, 다음 링크에서 질문하십시오. Stack Overflow. 원한다면 GitHub 리포지터리에 이슈를 열어서 문제 리포트 또는 개선 제안이 가능합니다..