첫 부분은 쿠버네티스의 컨셉과 구성 등 처음에 썼던 글들과 비슷한 내용이긴 하나, 없는 내용들을 추가로 적어보려고 한다.
당연하게도 해당 내용을 더 자세히 보고 싶으면 공식 문서를 보는게 좋다.
(이쯤되면 왜 공식문서를 보라고 하는지 알 것 같다..)
쿠버네티스가 컨테이너 오케스트레이션을 하기 위해 탄생했다는 것은 이제 아는 이야기 일테고...
그렇다면 어떻게 구성이 될까?
쿠버네티스를 구성하게 되면 Master / Worker Nodes 로 나누게 된다.
하지만 설명하기 전에 우선 기본 용어 정의 부터 다시 해보도록 한다.
- 클러스터 (Cluster) : Node 라고 하는 Worker Machine 의 집합
- 노드 (Node) : 쿠버네티스의 Worker Machine
- 파드 (Pod) : 클러스터에서 실행 중인 컨테이너의 집합
한마디로 쿠버네티스의 세계에선 Cluster > Node > Pod 로 Cluster 가 가장 포괄적이고,
Pod 가 애플리케이션의 최소 단위라고 보면 되겠다.
개인적으로 클러스터링이라는 개념이 조금 헷갈리는데, 클러스터링의 뜻은 여러개의 시스템을 하나의 시스템 처럼 쓴다 라고 생각하면 되겠다.
아무튼... Master / Worker Node 의 컴포넌트 구성은 다음과 같다.
1. Master Component
- kube-apiserver
- 쿠버네티스의 각종 처리를 담당하기 위해 받는 말 그대로 REST API Server 라고 보면 될 것 같다.
- Worker Node 안에 있는 kubelet 과 통신한다.
- etcd
- 분산된 믿을만한(reliable) 키-값 저장소
- 클러스터에서 사용하는 데이터가 저장된다.
- controller
- 노드, 컨테이너 또는 End Point 가 중단되었을 때 이를 감지하고 대응하는 역할
- 새로운 컨테이너를 만들지 결정한다.
- scheduler
- 새로운 컨테이너를 노드에 할당하는 역할
2. Node Component
- kubelet
- Node 에서 실행되는 기본 Agent 이다.
- 컨테이너가 잘 돌아가는지 관리한다.
- Container Runtime
- Pod 가 Node 에서 실행하기 위해 도와준다.
- 런타임 종류로는 Docker, Rocket(rkt), CRI-O, containerd 등이 있다고 한다.
그래서, 쿠버네티스 구성의 최종적인 그림 형태는 이것이 된다.
kubectl 은 쿠버네티스 클러스터를 제어할 때 쓰는 CLI 도구다.
제일 기본적인 거고,, 실무에선 직접적으로 다룰 일이 많이 없다고는 하지만 CKAD 를 하면서 많이 다룰 것 같다.
그렇다면 실무에서는 뭘 쓸까? 대시보드를 쓰려나? 나중에 실무하는 친구에게 물어봐야겠다.
'Dev > Kubernetes' 카테고리의 다른 글
[CKAD] section 2. Practice Test (KodeKloud) (0) | 2022.03.08 |
---|---|
[CKAD] section 2. Core Concepts (2) - Pod (0) | 2022.03.07 |
[CKAD] section 1. Introduction (0) | 2022.03.03 |
[Kubernetes & Docker] 4-3. kubectl 기초 (2/2) (0) | 2022.02.28 |
[Kubernetes & Docker] 4-3. kubectl 기초 (1/2) (0) | 2022.02.27 |