cloud bee

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

이론 및 개념정리/kubernetes

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

who you 2022. 10. 21. 17:00

쿠버네티스 클러스터의 기본 구성이다.

 

쿠버네티스 클러스터는 크게 두 종류의 서버로 나누어진다.

클러스터를 관리하는 마스터(master)와 실제 컨테이너를 실행시키는 노드(node)로 분류된다.

마스터는 보통 고가용성을 만족하고자 서버 3대 정도를 구성해서 운영한다고 한다.

실제로 클러스더를 관리하는 리더 마스터는 1대이고, 나머지 2대는 대기하여 리더 마스터에 장애가 발생할 때,

리더역할을 맡게 된다.

 

컴포넌트

마스터에서 실행되는 컴포넌트: etcd, kube-apiserver, kube-scheduler, kube-controller-manager, kubelet, kube-proxy, docker

노드에서 실행되는 컴포넌트: kubelet, kube-proxy, docker

 

마스터와 노드의 통신구조

master node의 통신 구조이다.

쿠버네티스의 모든 통신의 중심이자, 각 컴포넌트 중심에는 kube-apiserver가 있다.

다른 컴포넌트가 kube-apiserver를 거쳐 서로 필요한 정보들을 주고받을 수 있다.

master node의 하단부에 위치하는 etcd는 kube-apiserver 외엔 접근할 수 없다.

 

master

kubelet은 master에 있는 docker를 관리한다.

kube-scheduler, kube-controller-manager, kube-apiserver, kube-proxy와 같은 관리용 컴포넌트가 docker안에 존재한다.

 

초기에는 docker container을 사용하지 않고 직접 서버 프로세스로 쿠버네티스를 실행하였다고 한다. 하지만 시대가 지남에 따라 최근에는 docker container을 통해 kubernetes를 실행하고 관리한다고 한다. 관리용 컴포넌트는 모두 하이퍼큐브라는 바이너리 파일로 컴파일이 되어있다. 또한 실행할 때 옵션을 설정하여 역할을 수행하도록 하면 된다.

 

etcd는 별도의 프로세스를 통해 설정돼있다.

 

node

노드도 master과 마찬가지로 kubelet으로 docker를 관리한다. kubelet은 master의 kube-apiserver를 통해 파드의 생성, 관리, 삭제를 수행할 수 있다. node는 kube-proxy를 컨테이너, 서버 프로세스 둘 다 실행할 수 있다.

'이론 및 개념정리 > kubernetes' 카테고리의 다른 글

kubernetes istio Architecture  (0) 2022.10.22
kubernetes node용 컴포넌트  (0) 2022.10.21
kubernetes master용 컴포넌트  (0) 2022.10.21
Kubernetes architecture 동작과정  (0) 2022.10.21
Comments