- 서버 역할을 하는게 Worker Node
- 어느 Worker Node에 돌릴지는 Scheduler가 결정한다.
- Virtual Machine Instance를 Pod라고 한다.
- Master Node의 API Server와 짝이 되는게 Worker Node의 kubelet이다.
- Worker Node의 kubelet이 etcd를 보고 쓰여진대로 동작한다.
- k8s API는 declarative하다.
- 이전에는 원하는 상태가 되도록 명령했다.
- 하지만 이 방법은 Auto Recovery가 되지 않는다. 직접 알려줘야 한다.
- 현재는 사용자가 원하는 상태를 정의하는 것으로 한다. (declarative) 사용자가 원하는 상태는 etcd에 있는 Pod라는 주문서에 적혀있는데, Worker Node에 있는 kubelet이 그것을 보고 사용자가 원하는 상태가 되도록 동작한다. Scheduler가 지정한 Worker Node가 시간이 지나도 원하는 상태를 만들지않으면, Scheduler가 다른 Worker Node로 변경한다.
- Worker Node는 원하는 상태를 만들었으면 etcd에 그 상태를 쓴다.
- Master Node가 Worker Node에 명령하는게 아니라, etcd라는 칠판에 원하는 상태를 쓴다. 그러면 Scheduler가 동작하여 그 상태를 어느 Worker Node가 만들지 etcd에 적는다. 그러면 Worker Node의 kubelet이 보고 해당하는 상태가 되도록 동작하고, 상태를 etcd에 적는다.
- 요청을 보고 Worker Node에 Container를 만드는 것은 Container Engine이다.
CRD
- CRD(Custom Resource Definition)
- 사용자가 새로운 리소스 타입을 정의할 수 있게 해준다.
- K8S는 Pod, Service, Deployment 등의 기본 리소스 타입을 제공하지만, CRD를 통해 클러스터에서 사용자 정의 리소스를 추가로 사용할 수 있다.
- 고유한 클라우드 자원과 같은 것들을 Kubernetes API로 관리하고 싶을 때 사용한다.
- CRD Operator
- CRD를 자동으로 관리하는 Kubernetes의 컨트롤러이다. 특정 CRD 리소스에 대한 생성, 업데이트, 삭제, 생명주기를 관리한다.
- Kubernetes에서 Cluster는 Master Node와 Worker Node들을 묶어서 이르는 말이다.
- Cluster에 원하는 서비스를 구동하는 방법은 직접 요구하거나, 해당 내용을 파일로 정리(YAML)하여 API Server를 통해 파일에 기술한 정보대로 Master 내의 etcd에 원하는 상태 정보를 표현한 Object(Resource)를 만들게 하는 것이다.
728x90
'클라우드' 카테고리의 다른 글
Kubernetes Basic - 2 (2) | 2024.10.08 |
---|---|
Restful API (1) | 2024.10.06 |
OpenStack 기초, VLAN과 VXLAN (0) | 2024.10.05 |
Container 기초 개념, VM과 Container (1) | 2024.10.01 |
Jenkins로 커밋 후 자동 빌드 ~ yaml 수정 후 push까지 pipeline script (윈도우 환경) (0) | 2024.08.17 |