반응형
1. kubernetes 구성 module 요약
1.1 All Node
1.1.1 kubelet
- 모든 노드에서 Daemon으로 동작
- kube-apiserver로부터 명령을 받아 OCI Runtime Spec을 준수하는 Container Runtime을 통해 Pod를 제어
- (대표적인 Container Runtime으로 containerd가 있다.)
- CNI plugin을 통해서 생성한 Pod의 Network를 설정하는 역할도 수행
- MasterNode의 kubelet은 kube-apiserver, kube-controller-manager, kube-scheduler pod를 관리하는 역할도 수행
1.1.2. kube-proxy
- kubernetes의 Service를 cluster 내부나 외부에 노출시킬 수 있도록 proxy server역할 수행
- iptables 또는 ipvs를 제어하는 역할1.1.3. network daemon
- kube-apiserver로부터 정보를 얻어와 pod사이에 통신이 가능하도록 Node의 network를 설정
- host network namespace에서 동작하고 network 설정을 변경할 수 있는 권한을 갖고 있기 때문에 node의 network 설정을 자유롭게 변경할 수 있다.
- CNI plugin에 따라 network daemon이 결정
- flannel의 flanneld, calico의 calio-felix, cilium의 cilium-agent가 network daemon임
1.2. Master Node
Master Node는 Kubernetes Cluster를 관리하는 Node
1.2.1. etcd
- etcd는 분산 key-value storage로 kubernetes cluster관련 data를 저장
- master node가 다수일 경우 etcd cluster를 구성
- etcd cluster에서는 Raft 알고리즘을 통해서 유지됨
- data가 변경될 경우 해당 data를 감시하고 있는 client에게 data변경 event를 전달하는 watcher 기능을 제공
- watcher 기능을 이용하여 kubernetes cluster는 etcd cluster를 event bus처럼 이용하기도 함
1.2.2. kube-apiserver
- kubernetes를 제어하는 rest api server
- etcd와 통신하는 유일한 구성요소
- cluster 관련 data를 저장하거나 etcd의 data 변경 event를 수신하기 위해서는 kube-api서버를 이용해야함
- kubernetes 대부분의 구성요소가 kube-apiserver와 통신함
1.2.3. kube-controller-manager
- Object: Pod, Deployments, Statefulset, Configmap 등이 kubernetes에서 정의한 Object
- kube-controller-manager는 이러한 controller들을 관리한다.
- kube-apiserver를 통해서 제어하려는 Object의 상태정보를 얻어거나 Object를 제어한다.
1.3. Worker Node
사용자가 배포한 Application이 동작하는 NodeQ
1.3.1. coredns:
- pod안에서 다른 pod의 ip를 찾을 수 있는 DNS 역할을 수행
- service ip도 언제든 바뀔 수 있기 때문에 -> pod안에서 service ip를 찾을 수 있게 함
1.3.2. CNI(Container Network interface) Plugin
- pod의 Network를 설정할 때 이용함
2. Terms
- OCI Runtime Spec
- Container Runtime
3. Furder works
반응형
'Tech > Kubernetes' 카테고리의 다른 글
Istio 구성요소 및 기능 (0) | 2020.07.01 |
---|