Fairy ' s

[K8s] Cluster Architecture 본문

Study/K8s

[K8s] Cluster Architecture

berafairy 2023. 7. 11. 14:07

 

 

Kubernetes

  • 응용 프로그램을 컨테이너 형식으로 자동화하여 호스트하는 것
  • 프로그램의 많은 인스턴스를 쉽게 배포할 수 있다.
  • 응용 프로그램 내 다양한 서비스의 통신이 쉽게 가능하다.
  • Kubernetes Cluster : 노드 세트로 구성되며, 물리적 가상, 온-프레미스 또는 클라우드일 수도 있고 컨테이너 형태의 응용 프로그램 호스트일 수도 있다.

 


Master Node : Manage, Plan, Schedule, Monitor Nodes

쿠버네티스 클러스터를 관리하고 서로 다른 노드에 대한 정보를 저장하고 어떤 컨테이너가 어디로 갈지 계획하고, 노드와 컨테이너를 모니터링하는 등등을 책임진다. 클러스터에 관한 정보를 저장하는 ETCD 클러스터가 있다.

>> ETCD Cluster, Kube-APIServer, Kube Controller Manager, Kube-Scheduler

  • ETCD Cluster : 키 값 형식으로 정보를 저장하는 데이터베이스
  • Kube API Server : 쿠버네티스의 주요 관리 구성 요소로, 클러스터 내에서 모든 작업을 오케스트레이션 한다.

    • 클러스터에서 관리 작업을 수행하고, 클러스터 상태를 모니터링하는 다양한 컨트롤러를 외부 사용자가 사용할 수 있게 한다.
    • 요구에 따라 필요한 변경을 하고 작업자 노드가 서버와 통신한다.
    • 노드와 컨테이너의 상태를 모니터링하기 위해 주기적으로 Kubelet으로부터 상태 보고서를 가져온다. 
  • Kube Controller Manager

    • Node 컨트롤러 : 새 노드를 클러스터에 온보딩하고 노드가 사용 불가능하거나 파괴되는 상황을 처리한다.
    • Replication 컨트롤러 : 원하는 컨테이너 수가 복제 그룹에서 항상 실행되도록 보장한다.
  • Kube scheduler : 노드의 응용 프로그램이나 컨테이너의 스케줄을 짜는 역할을 한다.

    • 컨테이너를 설치하기 위해 컨테이너 리소스 요구사항이나 워커 노드 용량 혹은 다른 정책이나 제약 조건들, 테인트와 관용 또는 노드 친화성 규칙에 근거해서 올바른 노드를 식별한다.

 

Worker Nodes : Host Application as Containers

>> Kubelet, Kube-proxy, Container Runtime Engine (Docker, Rocket)

  • Kubelet : 클러스터의 각 노드에서 실행되는 에이전트이다.

    • Kube API 서버의 지시를 듣고 필요한대로 노드에서 컨테이너를 배포하거나 파괴한다.
    • 컨테이너와 Kube Proxy를 관리하며, 클러스터 내부의 서비스 간 통신을 가능하게 한다.
  • Kube proxy : 작업자 노드에 필요한 규칙이 시행되도록 하며, 그 위에서 실행되는 컨테이너가 서로 닿을 수 있게 한다.
  • Container Runtime Engine : 컨테이너가 돌아가게 하는 엔진. 대표적으로 Docker가 있다.

 

'Study > K8s' 카테고리의 다른 글

[K8s] Pods  (0) 2023.07.28
[K8s] Kube Scheduler & Kublet & Kube Proxy  (0) 2023.07.12
[K8s] CLI  (0) 2023.07.12
[K8s] Kube Controller Manager & Kube API Server  (0) 2023.07.12
[K8s] ETCD  (0) 2023.07.11
Comments