본문 바로가기

kubernetes

클러스터 구성

클러스터 구성 

 

 

control plane (master node)

-클러스터의 관리하는 역할 담당

-위 그림과 같이 scheduler,etcd,controller manager,api server 로 구성이 되어 있고 kubectl 이라는 명령어를 사용하면 

  api server를 통해 명령어 처리를 진행한다.

 

master node 구성 요소 

 

  API Server 

   쿠버네티스 클라이언트의 요청사항을 처리하는 API 제공하고 

   그 상태를 저장하는 etcd를 데이터 저장소로 사용합니다.

 

  Scheduler

    노드의 자원 사용자원 상태를 관리한다(cpu.mem 등등)

    새로운 워크로드를 사용할 때 어디서 배포할지도 관리하는 역할이다.

 

  etcd 

    분산 key - value 저장소로 클러스터 상태 저장하는 공간이라 생각하면

      1.etcd는 internal DNS를 통해서 어떤 서비스가

         어떤 컨테이너들을 가지고 있고 그 컨테이너들의 위치가 어디인지 ip 주소가 무엇인지 전부 관리해주기도 한다.

      2. 복구할 때도 etcd를 복구해주면 cluster 복구가 가능하다.

 

  Controller Manager

    pod, deployment 등의 api 리소스 상태의 변화를 감지하여 클러스터에 반영하는(etcd에 반영) reconclie(변경 내용을

    체크 하는 과정) 과정을 반복 수행한다.

 

 

 

node(worker node)

- 어플리케이션 컨테이너 실행 

 

node 구성 요소 

 

  kubelet 

    api 서버와 통신하면서 노드의 리소스를 관리한다. 

    컨테이너 런타임과 통신하며 라이프사이클을 관리한다.

   만약 사용자가 ymal을 쿠버네티스 클러스터에 적용하기 위해 kubectl apply 사용한다면  ymal 이 kube-apiserver 로 전달     되고 kubelet으로 전달 됩니다. kubelet은 이 yaml 파일을 통해 전달된 파드를 생성 혹은 변경하고, 이후 이 yaml 에 명시

   된 커네이너가 정상적으로 실행하고 있는지 확인하는 중요한 요소이다.

 

  container runtime     

    컨테이너 런타임은 파드에 포함된 컨테이너 실행을 실직적으로 담당하는 애플리케이션을 의미합니다. (docker를 의미        하는 것)

 

 CPI (container runtime interface)

    kubelet이 컨테이너 런타임과 통신할 때 사용되는 인터페이스이다. 

 

  kube-proxy

    오버레이 네트워크를 구성하고 네트워크 프록시(nginx 같은 역할) 역할 및 로드밸런서(부하분산) 역할 수행

 

'kubernetes' 카테고리의 다른 글

KUBERNETES(UID,클러스터, 노드,파드(pod))  (0) 2022.11.03
(Kubernetes)API 리소스  (0) 2022.11.03