쿠버네티스의 구조이다. 이렇게 봤을 때는 openstack의 nova와 상당히 구조가 유사해보인다. 차이점은 이 속에 있는 개념이 달라지는 것이다.
Master Node
- API server : 일종의 짜장면 주문서(object resource)로, kubelet이 얘를 쳐다본다. 모든 API 요청을 처리하며, 클러스터 상태를 etcd에 영구 저장해.
- Scheduler : 컨테이너 어떻게 돌릴지 말그대로 스케줄링 하는 애
- Controller Manager : 여러개의 Controller들이 한 덩어리로 만들어진 형태 , 여러 Controller를 종합적으로 관리하는 소프트웨어라고 할 수 있다. (Controller: pod말고 다른 object들이 쳐다보는 애, Kubernetes 컨트롤러는 선언된 상태(예: Pod가 실행 중이어야 한다)를 클러스터가 항상 유지하도록 자동으로 관리해. 만약 Pod가 예기치 않게 종료되면, 컨트롤러는 새로운 Pod를 생성하거나 복구할 수 있어.)
- etcd : 데이터베이스, Kubernetes 클러스터의 상태를 저장하는 분산형 키-값 저장소로, 모든 API 객체의 정보를 영구적으로 저장
Worker Node
- kubelet : 주방장으로, 주방장(kubelet)이 주문서(API server)를 쳐다본다. (주방장이 주문서를 볼 수 있게 권한 허가) 각 노드에서 실행되는 에이전트로, API 서버에서 스케줄된 Pod 정보를 받아 실제로 해당 Pod를 실행하고 모니터링해.
- Kube-Proxy : 실제 노드 안의 상황을 기록하고 정확한 다른 노드를 짚어주는 역할.
- Mapping Table(IP table)이 존재해서 특정 주소에 대한 정보가 나와있다. 근데 Table 커질수록 느려지니까 요새는 IPVS(IP Virtual Server)로 로드밸런싱을 가능하게 한다!
- IPVS보다 더 발전한 Calico CNI 플로그인도 있음..
- Container Engine(ex:Docker) : pod를 생성한다. 기본 컨테이너가 있고, 필요한 걸 계속 쌓아간다(근데 필요한 거는 다른 “레포지토리” 에 존재함, 창고 역할), 실제로 컨테이너를 실행하는 소프트웨어이다.
- Pod : vm instance, 컨테이너가 돌아가게끔 하는 기본 단위이다. 기본적으로 pod안에 컨테이너 2개가 돌아간다.
- 원래 앱을 돌리기 위한 프록시 역할을 하는 원천적인 컨테이너 → 짜장면
- 워크로드, 내가 돌리고자 하는 애
'Kubernetes' 카테고리의 다른 글
Application Deployment (4) | 2024.11.06 |
---|---|
Configuration File (YAML format), Label, Selector (1) | 2024.10.29 |
Kubernetes Design Principle (2) | 2024.10.29 |
VxLAN에 대하여 (0) | 2024.09.11 |
컨테이너 기초 개념 (3) | 2024.09.05 |