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

Compare with Current View Page History

« Previous Version 60 Next »


목차

Cluster Architecture

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

"Cluster"는 여러 개의 시스템 또는 노드가 협력하여 단일 시스템처럼 동작하는 컴퓨팅 환경을 나타냅니다. 

Control Plane Components

  • 클러스터에 관한 전반적인 결정(예를 들어, 스케줄링)을 수행
  • 고가용성(3HA) Master로 구성이 일반적이며, Leader-Follower모델로 구성됩니다.

kube-apiserver

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

kube-controller-manager 

  • Kubernetes의 두뇌와 같습니다.
    • Watch Status
    • Remediate Situation
  • Node Controller

    • Node Monitor → kube-apiserver(Master) → kubelet(Worker)
      • Node Monitor Period: 5s
      • Node Monitor Grace Period: 40s
      • Pod Eviction Timeout: 5m

kube-scheduler

  • 새로 생성된 파드 를 감지하고, 실행할 노드를 선택
  • 2core/8G Pod를 어떤 노드에 배치할까?

    • Resource Requirements and Limits
      • Namespace Request limit
      • Pod Request limit
      • Node Available Resource
    • Taints and Tolerations
    • Node Selector / Affinity
    • Filter Nodes
    • Rank Nodes

etcd

  • 모든 클러스터 데이터를 담는 Key-Value 저장소
  • 주요 데이터가 담기므로 백업이 필수!
  • https://github.com/henszey/etcd-browser

     

cloud-controller-manager 

  • 클라우드 컨트롤러 매니저를 통해 클러스터를 클라우드 공급자의 API에 연결하고, 해당 클라우드 플랫폼과 상호 작용하는 컴포넌트와 클러스터와만 상호 작용하는 컴포넌트를 구분할 수 있게 해 준다.
  • cloud-controller-manager는 클라우드 제공자 전용 컨트롤러만 실행한다. 

Node Components

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

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

  • 모든 노드에서 동작

kubelet

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

kube-proxy

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

    • 각 노드에 DemonSet으로 구성됨
  • 쿠버네티스의 서비스 개념의 구현부

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

Container Runtime

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

  • Administrator 관점
  • Internet 관점


  • No labels