본문 바로가기

kubernetes

[kubernetes] kubernertes Component

이 내용은 Kuberentes의 공식문를 참고하여 작성 함.

https://kubernetes.io/docs/concepts/overview/components/

 

Kubernetes는 Control Plane와 Node 들로 구성 된다

- Control Plane : 클러스터에 대한 스케줄링, 이벤트 감지 응답 등을 kubernetes 클러스터 시스템 노드

- Node : 컨테이너화 된 애플리케이션을 실행하는 노드

 

 

 

위 컴포넌트는 kubectl 명령어를 통해 pod들을 확인할 수 있다.

[root@m-k8s vagrant]# kubectl get pods -A
NAMESPACE     NAME                                      READY   STATUS    RESTARTS   AGE
kube-system   calico-kube-controllers-99c9b6f64-wgjpw   1/1     Running   0          9m14s
kube-system   calico-node-grvm8                         1/1     Running   0          4m23s
kube-system   calico-node-h6vvv                         1/1     Running   0          9m14s
kube-system   calico-node-k49xh                         1/1     Running   0          7m44s
kube-system   calico-node-n2wjq                         1/1     Running   0          6m3s
kube-system   coredns-66bff467f8-nmnvc                  1/1     Running   0          9m14s
kube-system   coredns-66bff467f8-r89xr                  1/1     Running   0          9m14s
kube-system   etcd-m-k8s                                1/1     Running   0          9m29s
kube-system   kube-apiserver-m-k8s                      1/1     Running   0          9m30s
kube-system   kube-controller-manager-m-k8s             1/1     Running   0          9m30s
kube-system   kube-proxy-8gcv6                          1/1     Running   0          4m23s
kube-system   kube-proxy-bpdn2                          1/1     Running   0          6m3s
kube-system   kube-proxy-f2jsf                          1/1     Running   0          9m14s
kube-system   kube-proxy-vvm6n                          1/1     Running   0          7m44s
kube-system   kube-scheduler-m-k8s                      1/1     Running   0          9m30s

 

Control Plane Component

1. Kube-apiserver

- Kubernetes의 API를 제공하는 Component

- 수평적 확장 설계

- 여러 인스턴스를 수행하여 인스턴스 간 트래픽 균형 조절

 

2. etcd

- 모든 클러스터 데이터에 대해 kubernetes의 백업 저장소로 사용하는 Component

 

3. kube-scheduler

- 할당 된 노드를 감시하고, 새로 생성된 pod가 실행될 노드를 선택하는 Component

 

4. kube-controller-manager

- 컨트롤러 프로세스를 실행하는 Component

- 논리적으로 각 컨트롤러는 별도의 프로세스 지만, 복잡성을 줄이기 위해 단일 바이너리로 실행 됨

- Node Controller, Job Controller, EndpointSlice Controller, Service Account Contoller 등이 있음

 

5. Cloud-Controller-Manager

- 클라우드별 제어로직을 포함하는 Component

- 필자의 개발환경은 VM으로 존재하지 않음

- Node Controller, Route-Controller, Service Controller 등이 있음

 

Node Component

1. Kublet 

- 클러스터의 각 노드에서 실행되는 에이전트

- 컨테이너 pod가 에서 잘 수행 되는지 확인하는 component

 

2. kube-proxy

- 클러스터의 각 노드에서 실행되는 네트워크 프록시로 kubernetes 서비스의 일부를 구현 함

- 노드에서 네트워크 규칙을 유지하며, pod로의 네트워크 통신 허용

 

3. container runtime

- 컨테이너 실행을 담당하는 compoenet

- containerd, CRI-O 등이 있음

 

Addons

Kubernees 리소스(DaemonSet, Deployment 등)을 사용하여 크러스터 기능 구현

 

1. DNS

- Kubenertes 필수 Addons

- Kubernetes 서비스에 대한 DNS 레코드를 제공하는 환경의 다른 DNS 서버와 함께 제공

- Kubernetes에서 시작한 컨테이너는 DNS 검색에 이 DNS 서버 검색을 자동으로 포함

 

2. Web UI

- Kubernetes 클러스터를 위한 범용 웹 기반 UI

- 클러스터 Trouble Shooting 및 운영 시 사용

 

3. Container Resource Monitoring

- 중앙 데이터베이스에 컨테이너에 대한 정보를 기록하고 UI로 제공

 

4. Cluster-level logging

- 클러스터 수준 log 정보를 중앙 데이터베이스에 저장하는 역할

 

 

 

 

 

 

 

 

 

'kubernetes' 카테고리의 다른 글

[kubernetes] static pod란  (0) 2022.10.31
[kubernetes] pod란?  (0) 2022.10.26
[kubernetes] namespace 란?  (0) 2022.10.21
[kubernetes] etcd 및 백업 복구 방법  (0) 2022.10.21