본문 바로가기
가상화/Kubernetes

[Kubernetes] Cluster 전체구조

by JINJINC 2023. 5. 12.
728x90
반응형

쿠버네티스의 클러스터의 전체구조

쿠버네티스는 크게 오브젝트(Object) 와 오브젝트를 관리하는 컨트롤러(Controller)로 나눕니다.

사용자는 템플릿(Template) 등으로 쿠버네티스에 자원의 “바라는 상태(Desired state)”를 정의하고, 컨트롤러는 바라는 상태와 현재 상태가 일치하도록 오브젝트들을 생성/삭제합니다.

 

오브젝트에는 파드(pod), 서비스(service), 볼륨(volume), 네임스페이(namespace) 등이 있습니다.

컨트롤러에는 레플리카세트(ReplicaSet), 디플로이먼트(Deployment), 스테이트풀세트(StatefulSet), 데몬세트 (DaemonSet), 잡(Job) 등이 있습니다

 

"Kubernetes Master"는 마스터 노드(Master Node)에 포함된 컨트롤 플레인(Control Plane)에 해당한다.

컨트롤 플레인은 클러스터 전체의 워크로드 리소스 등 주요 구성 요소들을 배포하고 제어하는 역할을 한다

 

◎ etcd

클러스터 안의 각 구성요소들에 대한 정보가 키-값 형태로 저장된 데이터베이스

정보들을 이곳에 저장하게 됩니다.

 

◎ 스케줄러(kube-scheduler)

애플리케이션 구동에 필요한 각 컨테이너에 대해 클러스터 내 최적의 배포를 수행하는 스케줄러

 

◎ 컨트롤러 매니저(kube-controller-manager)

노드(Node), 디플로이먼트(Deployment), 서비스 어카운트(Service Account) 등 클러스터에서 구동되는 리소스들을 유지 관리하는 프로세스들의 집합

 

◎ DNS

서버 클러스터 안에서 특정 도메인을 찾을 때 사용되는 네임 서버 (구성도에는 kube-dns라 되어 있으나, 쿠버네티스 1.12 버전부터는 CoreDNS로 대체됨)

 

◎ API 서버(kube-apiserver)

클러스터 구성 요소들의 상호 통신에 필요한 쿠버네티스 API를 관리하는 컴포넌트

 

"Node" 영역은 노드 안의 파드(Pod)들을 구동시키기 위한 구성 요소들에 해당하며, 이들은 워커 노드(Worker Node)와 마스 터 노드(Master Node) 모두 공통적으로 갖고 있다.

 

◎ kubelet

클러스터의 각 노드에서 API 서버를 통해 들어오는 신호를 모니터링하고 파드에서 컨테이너가 제 기능대로 정상 동작하도록 관리하는 에이전트

 

◎ kube-proxy

클러스터의 각 노드에서 실행되는 네트워크 프록시 서비스

 

◎ 컨테이너 런타임 엔진(container runtime engine)

노드에 배포된 파드(Pod) 내 컨테이너들을 구동시키는 엔진 ※ 파드(Pod)는 클러스터 안에서 배포되는 가장 작은 단위의 객체로 하나 이상의 컨테이너를 포함하고 있다.

 

◎ kubectl

클러스터와 내부 구성 요소들을 CLI 환경에서 직접 제어하는 데에 쓰이는 도구로,

터미널 창에서

kubectl [command] [TYPE] [NAME] [flags]

형태로 사용

 

728x90
반응형

'가상화 > Kubernetes' 카테고리의 다른 글

[Kubernetes] kubectl  (0) 2023.05.12
[Kubernetes] 쿠버네티스 cluster 구성/ reset  (0) 2023.05.12
[Kubernetes] 쿠버네티스  (0) 2023.05.12

댓글