You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 26 Next »


목차

Cluster Architecture

https://kubernetes.io/docs/concepts/architecture/


https://brunch.co.kr/@topasvga/1669

  • Administrator 관점
  • Internet 관점


Control Plane Components

  • 클러스터에 관한 전반적인 결정(예를 들어, 스케줄링)을 수행
  • 클러스터 이벤트(예를 들어, 디플로이먼트의 replicas 필드에 대한 요구 조건이 충족되지 않을 경우 새로운 파드를 구동시키는 것)를 감지하고 반응한다.


kube-apiserver

  • 쿠버네티스 API
  • 수평확장 될 수 있도록 디자인됨
    1. Authenticate User
    2. Validate Request
    3. Retrieve data
    4. Update ETCD
    5. Scheduler와 상호작용
    6. Kubelet와 상호작용

etcd

  • 모든 클러스터 데이터를 담는 Key-Value 저장소
  • 주요 데이터가 담기므로 백업이 필수!

kube-scheduler

  • 새로 생성된 파드 를 감지하고, 실행할 노드를 선택
    • Filter Nodes
    • Rank Nodes
    • Resource Requirements and Limits
    • Taints and Tolerations
    • Node Selector / Affinity

kube-controller-manager 

  • 노드 컨트롤러: 노드가 다운되었을 때 통지와 대응에 관한 책임을 가진다.
  • 잡 컨트롤러: 일회성 작업을 나타내는 잡 오브젝트를 감시한 다음, 해당 작업을 완료할 때까지 동작하는 파드를 생성한다.
  • 엔드포인트슬라이스 컨트롤러: (서비스와 파드 사이의 연결고리를 제공하기 위해) 엔드포인트슬라이스(EndpointSlice) 오브젝트를 채운다
  • 서비스어카운트 컨트롤러: 새로운 네임스페이스에 대한 기본 서비스어카운트(ServiceAccount)를 생성한다.
    1. Watch Status
    2. Remediate Situation
    3. Node Monitor Period: 5s
    4. Node Monitor Grace Period: 40s
    5. Pod Eviction Timeout: 5m

cloud-controller-manager 

  • 노드 컨트롤러: 노드가 응답을 멈춘 후 클라우드 상에서 삭제되었는지 판별하기 위해 클라우드 제공 사업자에게 확인하는 것
  • 라우트 컨트롤러: 기본 클라우드 인프라에 경로를 구성하는 것
  • 서비스 컨트롤러: 클라우드 제공 사업자 로드밸런서를 생성, 업데이트 그리고 삭제하는 것


Node Components

  • 노드 컴포넌트는 동작 중인 파드를 유지

  • 쿠버네티스 런타임 환경을 제공

  • 모든 노드에서 동작


kubelet

  • 클러스터의 각 노드에서 실행되는 에이전트
  • 파드에서 컨테이너가 확실하게 동작하도록 관리
    • Register Node
    • Create Pods
    • Monitor Node & Pods

kube-proxy

  • 클러스터의 각 노드에서 실행되는 네트워크 프록시

  • 쿠버네티스의 서비스 개념의 구현부

  • kube-proxy는 노드의 네트워크 규칙을 유지 관리

Container Runtime


  • No labels