mingming

Kubernetes 컴포넌트 본문

kubernetes

Kubernetes 컴포넌트

mingming_96 2023. 8. 14. 21:41

Cloud Provider API

클라우드 서비스의 기능과 리소스에 엑세스 할 수있도록 제공해주는 API

 

컨트롤 플레인 컴포넌트 ( 마스터 컴포넌트 )

Kube-apiserver

API 서버는 쿠버네티스 API를 노출하는 컨트롤 플레인 컴포넌트로 쿠버네티스 컨트롤 플레인의 프론트 엔드이다.

Kube-apiserver는 수평으로 확장되도록 디자인 되어있어 , 더 많은 인스턴스를 배포해 확장가능 하다. 

 

etcd

모든 클러스터의 데이터를 담는 쿠버네티스의 저장소로 사용되는 키 - 값 저장소이다. 

 

Kube-control-manager

컨트롤러 프로세스를 실행하는 컨트롤 플레인 컴포넌트이다. 

각 컨트롤러는 분리된 프로세스 이지만 단일 바이너리로 컴파일 되고 단일 프로세스 내에서 실행된다.

클러스터의 상태를 관리하고 원하는 상태로 유지하기 위한 컨트롤러들을 실행하는 역할을 담당합니다.

 

Control-manager

컨트롤 매니저는 쿠버네티스 클러스터내에서 동작하는 여러 개의 컨트롤러 중 하나를 지칭합니다.

 

1. node-controller

노드가 다운 되었을 때의 통지와 대응에 관한 컨트롤러

 

2. job-controller

일회성 작업을 나타내는 job object를 감사한 후 해당 작업을 완료할 때 까지 동작하는 파드 생성

 

3. endpointslice-controller

엔드포인트 슬라이스 오브젝트 컨트롤러, 기존의 엔드포인트 리소스보다 더 세분화된 네트워크 구성 제공 

 

4. serviceaccount-controller

새로운 네임스페이스에 대한 default ServiceAccount 생성 

 

Scheduler

새로운 파드를 클러스터의노드에 스케쥴링하여 실행할 노드를 결정 

 

Node 컴포넌트

Kubelet

각 노드에서 실행되며 마스터로부터받은 파드 정의를 기반으로 노드에서 컨테이너를 실행하고 모니터링  

 

Kube-Proxy

노드 내의 네트워크 규칙을 관리하여 서비스 간의 네트워크 트래픽을 라우팅  

kube-proxy는 운영 체제에 가용한 패킷 필터링 계층이 있는 경우, 이를 사용한다. 그렇지 않으면, kube-proxy는 트래픽 자체를 포워드

 

Container-Runtime

컨테이너 실행을 담당하는 소프트웨어 , 컨테이너 엔진

Containerd , CRI-O , Docker

 

ADD-ON

네트워크 애드온 

CNI : Calico , Flannel, Cilium , Weavenet

 

모니터링 및 로깅 애드온 

ELK( ElasticSearch, Logstash, Kibana ), EFK ( ElasticSearch, Fluentd, Kibana), DataDog , Prometheus & Grafana

DNS

CoreDNS : 클러스터 내 DNS 서비스 제공 

 

Autoscale 애드온 

HPA : 파드의 수를 조절하여 리소스 사용량에 따라 스케일링

'kubernetes' 카테고리의 다른 글

EKS Amazon EFS CSI Driver (helm)  (1) 2023.08.25
EKS AWS Load Balancer Controller (helm)  (0) 2023.08.25
kubernetes 동작원리  (1) 2023.08.13
kubernetes 연습장  (0) 2023.08.13
EKS 클러스터 배포하기 (Terraform)  (0) 2023.08.11