반응형

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

+ Recent posts