CKA 강의를 듣는데, 강의를 듣다보니 kubernetes의 구조를 알아야 할 것 같아서 구조를 먼저 알아보도록 한다.
Kubernetes 구조
Udemy에서는 k8s를 선박으로 비유하였다. 그리고 k8s에는 Master/Worker Node가 존재한다.
위 그림에서 볼 수 있듯이 k8s 구조를 보면 Master Node와 Worker Node가 나온다.
Master Node 란?
Master Node는 클러스터에 관한 전반적인 결정을 수행하고, 이벤트를 감지하고 반응하는 역할을 한다. 즉, k8s의 두뇌이다.
그리고 해당 Node는 아래 컴포넌트로 이루어지며, 각 구성요소의 기능은 아래와 같다.
- kube-apiserver : 모든 요청을 처리하는 역할로 가장 중추적인 역할을 담당한다. Master Node를 중심으로 모든 클라이언트/구성요소로부터 오는 요청을 받아서, 처리하는 구성요소이다.
- kube-scheduler : 애플리케이션 구동에 필요한 걱 컨테이너에 대해 클러스터 내 최적의 배포를 수행하는 구성요소이다. 즉, 노드가 배정되지 않은 새로운 Pod을 감지하고 상황에 맞게 적절하게 Worker Node를 선택한다.
- kube-controller-manager : Node, Deplotment, Service Account 등 클러스터에서 구동되는 리소스를 유지/관리하는 프로세스의 집합체이다. controller는 쿠버네티스를 유지/관리하는 직원과 같다. 그리고 상세하게는 아래 controller가 동작한다.
- Node Controller: 노드가 다운되었을 때 통지 / 대응한다.
- Replication Controller : 시스템의 모든 Replication Controller Object에 대하여 알맞은 수의 Pod들을 유지한다.
- Endpoint Controller: Service와 Pod을 연결 -> Endpoint object를 채워 서비스와 Pod를 연결시킨다.
- Service Account & Token Controller: 새로운 네임스페이스에 대한 기본 계정과 API 접근 토큰을 생성한다.
- etcd : 클러스터 내의 데이터를 담는 저장소이며, Key-Value의 모든 클러스터 데이터를 담는다.
Worker Node란?
Worker Node는 Master Node의 명령을 받아, 컨테이너화된 애플리케이션을 동작하고 유지시키는 역할을 한다.
그리고 해당 Node는 아래 컴포넌트로 이루어지며, 각 구성요소의 기능은 아래와 같다.
- kubelet : Node에 할당된 pod의 상태를 체크하고 관리하는 에이전트이며, 이뿐만 아니라 클러스터의 각 노드에서 API 서버를 통해 들어오는 신호를 모니터링하고 파드에서 컨테이너가 제 기능대로 정상 동작하도록 관리한다.
- kube-proxy : 클러스터의 각 Node에서 실행되는 네트워크 프록시 서비스로 Pod을 연결하기 위한 네트워크 관리를 한다.
- container runtime engine : 노드에 배포된 파드(Pod) 내 컨테이너들을 구동시키는 엔진이며 Docker를 많이 사용한다.
- pod : 클러스터 안에서 배포되는 가장 작은 단위의 객체로 하나 이상의 컨테이너를 포함하고 있다. 컨테이너화된 애플리케이션이다.
k8s 구조
'기술 이모저모 > [K8s] Kubernetes' 카테고리의 다른 글
[k8s] Service 개념 및 Type 정리 (0) | 2022.09.18 |
---|---|
[k8s] Pod, Replicaset, Deployment의 관계정리 (0) | 2022.09.18 |
[k8s] kubernetes ReplicaSet/ReplicationController 기본개념 (0) | 2022.08.26 |
[k8s] kubernetes kube-proxy, pod 기본 개념 (0) | 2022.08.26 |
[Udemy] Udemy 영어 강의 한글자막은 없을까? (0) | 2022.08.20 |