Symptoms |
---|
- 쿠버네티스 용어정리(Object, 구성요소)
Environment |
---|
- Linux / Unix
Related Versions |
---|
Cause |
---|
- 쿠버네티스(k8s) 사용되는 기본 용어 정리
Solution |
---|
※ K8s 오브젝트란?
- k8s를 관리하기 위한 대상 / 클러스터의 상태를 나타냄
- 오브젝트는 같은 네임 스페이스에서 같은 종류 오브젝트가 다수 존재할 경우 각각 다른 이름 가져야 함

No | 용어 | 설명 |
---|---|---|
1 | 파드(Pod) | k8s에서 배포할 수 있는 가장 작은 단위이자 기본 단위하나의 일을 하기 위한 컨테이너의 집합 (대부분 1개로구성) |
2 | 디플로이먼트(Deployment) | 컨트롤러 개념이지만 파드와 비교하여 구성하기 위하여 설명상태가 없는 앱(stateless app)을 배포할 때 사용하는 가장 기본적인 컨트롤러임단순히 여러개의 파드 구성 |
3 | 볼륨(Volume) | 컨테이너는 기본적으로 상태가 없는 (Stateless) 앱을 사용Stateless : 컨테이너가 죽었을때 현재까지의 데이터가 사라진다는것컨테이너의 외장 디스크 역할을 수행(데이터가 사라지지 않고 유지됨) |
4 | 서비스(Service) | 네트워크와 관련된 오브젝트Pode 를 외부 네트워크와 연결해주는 통로 역활ClusterIP, NodePort, Loadbalancer, ExternalName 4가지 종류있음 |
5 | Namespace | k8s 클러스터 내의 논리적인 분리 단위pod, Service 등은 별도 생성 및 관리 대상Namespace 는 물리적으로 환경을 분리한 것이 아니라 다른 Namespace 간의 pod 라도 Service Object 를 통해 통신 가능 |
※ 클러스터 구성

No | 용어 | 설명 |
---|---|---|
1 | Cluster | k8s 에서 관리하는 컨테어너화 된 애플리케이션을 실행하는 노드의 집합일반적인 구성 MasterNode 1개 + WorkerNode 3개로 구성 |
2 | Master Node | 클러스터에 관한 전반적인 결정을 수행하며 클러스터의 이벤트를 감지 |
3 | WorkerNode | 동작중인 파드를 유지시키고 MasterNode가 전달해주는 작업을 pod에 반영 |
※ Master Node 구성

No | 용어 | 설명 |
---|---|---|
1 | API Server | 모든 요청을 처리하는 Master Node의 핵심 모듈kubectl의 요청 뿐만 아니라 내부 모듈의 요청도 처리Worker node에서 실행중인 컨테이너의 디버거 역할도 수행API 서버는 요청을 받으면 etcd 저장소와 통신할뿐 실제 상태를 변경하는건 scheduler 와 controller 임 |
2 | etcd | 분산데이터 Key-value 저장소여러개로 분산하여 복제할수 있어서 안정성이 높고 빠름클러스터의 모든 설정, 상태 데이터 저장나머지 모듈은 stateless 하게 동작하기 때문에, etcd 만 잘 백업 해놓으면 언제든지 복구가능etcd 는 오직 API Server와만 통신하고 다른 모듈은 API Server 를 거쳐서 etcd 데이터에 접근하는구조 |
3 | Scheduler | Pod,Service 등 각 리소스 들을 적절한 Worker node에 할당하는 역할 수행 |
4 | Kube ControllerManager | k8s 에있는 모든 오브젝트의 상태를 관리k8s controller 에 해당하는 모듈Replica,Service,Volume,Deployment 등을 생성하고 각 Worker Node에 배포하며 관리하는 역할 수행 |
5 | Clude Controller Manager | AWS, GCE, Azure 등 Cloud 에 특화된 모듈Worker Node 를 추가 삭제하고 LoadBalancer를 연결하거나 볼륨을 붙임각 Cloud 업체에서 인터페이스에 맞춰 구현하면 되기 때문에 확장성이 좋음 |
※ Worker Node 구성

No | 용어 | 설명 |
---|---|---|
1 | 큐블릿(kubelet) | kubelet 을 통해 Container 를 관리Worker Node에 할당된 pod의 생명주기를 관리pod를 생성하고 pod 안의 컨테이너의 이상 유무 확인주기적으로 master node 에 pod의 상태를 전달함API 서버의 요청을 받아 컨테이너의 로그를 전달하거나 특정 명령을 대신 수행 |
2 | kube Proxy | kubelet 이 pod를 관리한다면 kube Proxy는 pod 로 연결되는 네트워크 관리Worker node로 들어오는 네트워크 트래픽을 적절한 컨테이너로 라우팅TCP,UDP,SCTP 스트림을 포워딩하고 여러개의 pod 를 묶어서 서비스 제공 |
3 | pod | pod를 통해서 배포된 컨테이너를 실행함컨테이너런타임 (docker,rkt,CRI-O 등) |
Workaround |
---|
- N/A