Amazon Web Service (AWS)/EKS

[EKS] Kuberetes 구조

Ssemi-Column 2022. 8. 1. 14:52
728x90

❗쿠버네티스의 구조

 

  • 쿠버네티스는 하나의 컨트롤 플레인(마스터 노드) 와 여러 개의 워커 노드로 구성 되어있습니다.
  • 클라이언트가 쿠버네티스를 동작하기 위해 kubectl 명령어를 사용하면 컨트롤 플레인의 API server 에서 그 명령어를 받아 해석하고 Scheduler와 Controller Manager에게 명령을 전달 합니다.
  • Controller Manager는 클라이언트가 보낸 kubectl 명령대로 클라이언트가 원하는 상태로 쿠버네티스를 체크 합니다. (갑자기 Pod가 다운되면 Controller Manager가 체크하여 복구합니다)
  • Scheduler는 kubectl 명령대로 Pod를 생성하는데 Worker node의 상태를 체크해서 가장 적합한 node에 Pod를 생성 시켜주는 역할을 합니다.
  • etcd는 컨트롤 플레인에 존재하는 저장소로 key value 값으로 되어 있습니다. 각 Worker node의 상태와 같은 정보를 가지고 있고 Worker node의 Kube-proxy를 통해 API Server에 전달되며 그 값이 etcd에 저장 됩니다.
  • Kubelet은 컨트롤 플레인에서 오는 명령을 가지고 Pod 안에 컨테이너를 작동 시키는 역할을 합니다.
  • Controller Runtime은 실제 컨테이너를 실행시키는 것으로 예전에는 Docker를 사용 했으나, Dockershim 이슈로 Containerd를 Controller Runtime으로 사용하고 있습니다.

  • Worker Node에는 여러 개의 Pod가 만들어질 수 있고, Pod 안에는 또 여러가지 Container를 만들 수 있습니다. (저희는 하나의 Pod에 한 개의 Service Container와 prometheus에서 확인을 위한 node_exporter를 할당? 하면 될 것 같습니다)
  • Pod안의 Container들은 서로 네트워크를 공유 합니다.
728x90
반응형
LIST