Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info
iconfalse
title목차

Table of Contents

Cluster Architecture

Info
titlehttps://kubernetes.io/docs/concepts/architecture/

Components of KubernetesImage Removed

Info
titlehttps://www.quobyte.com/storage-explained/what-is-kubernetes/

Image Removed

Info
titlehttps://www.cncf.io/blog/2019/08/19/how-kubernetes-works/

 Kubernetes architectureImage Removed

...

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

Control Plane Components

Info

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

Image Added

Control Plane Components

Info
iconfalse
Info
  • 클러스터에 관한 전반적인 결정(예를 들어, 스케줄링)을 수행
  • 클러스터 이벤트(예를 들어, 디플로이먼트의 replicas 필드에 대한 요구 조건이 충족되지 않을 경우 새로운 파드를 구동시키는 것)를 감지하고 반응한다.
  • Info
    iconfalse
    • 고가용성(3HA) Master로 구성이 일반적이며, Leader-Follower모델로 구성됩니다.
    • 트래픽이 적은 시스템으로 주로 낮은 사양의 서버를 선택합니다.

    kube-apiserver

    • 쿠버네티스 API
    • 수평확장 될 수 있도록 디자인됨

    etcd

    • 모든 클러스터 데이터를 담는 Key-Value 저장소
    주요
    • 쿠버네티스 전체 설정 정보를 저장
    • 중요 데이터가 담기므로 백업이 필수!
    • Info
      iconfalse
      titlewww.boanproject.com

      Image Added 

    kube-scheduler

    • 새로 생성된 파드 를 감지하고,
    실행할 노드를 선택
    • 배치할 노드를 선택
    • Info
      iconfalse

      2core/8G Pod를 어떤 노드에 배치할까?

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

    kube-apiserver

    • 쿠버네티스 API
    • Image Added
    • Info
      iconfalse
      1. Authenticate User
      2. Validate Request
      3. Retrieve data
      4. Update ETCD
      5. Scheduler와 상호작용
      6. Kubelet와 상호작용

    kube-controller-manager 

  • 노드 컨트롤러: 노드가 다운되었을 때 통지와 대응에 관한 책임을 가진다.
  • 잡 컨트롤러: 일회성 작업을 나타내는 잡 오브젝트를 감시한 다음, 해당 작업을 완료할 때까지 동작하는 파드를 생성한다.
  • 엔드포인트슬라이스 컨트롤러: (서비스와 파드 사이의 연결고리를 제공하기 위해) 엔드포인트슬라이스(EndpointSlice) 오브젝트를 채운다
    • Kubernetes의 두뇌와 같습니다.
    • Info
      iconfalse
      • Watch Status
      • Remediate Situation
    • Image Added
    • Info
      iconfalse

      Node Controller

      Image Added

      • Node Monitor → kube-apiserver(Master) → kubelet(Worker)
        • Node Monitor Period: 5s (노드의 감시 주기)
        • Node Monitor Grace Period: 40s (노드의 비정상 상태 유예 기간: 초과시 Node Not Ready상태)
        • Pod Eviction Timeout: 5m (파드 제거 시간 초과 Node가 다시 정상상태로 돌아오기까지 Pod를 스퀘줄링 하지 않음)
    서비스어카운트 컨트롤러: 새로운 네임스페이스에 대한 기본 서비스어카운트(ServiceAccount)를 생성한다.

    cloud-controller-manager 

    • 노드 컨트롤러: 노드가 응답을 멈춘 후 클라우드 상에서 삭제되었는지 판별하기 위해 클라우드 제공 사업자에게 확인하는 것
    • 라우트 컨트롤러: 기본 클라우드 인프라에 경로를 구성하는 것
    • 서비스 컨트롤러: 클라우드 제공 사업자 로드밸런서를 생성, 업데이트 그리고 삭제하는 것
    • 클라우드 컨트롤러 매니저를 통해 클러스터를 클라우드 공급자의 API에 연결하고, 해당 클라우드 플랫폼과 상호 작용하는 컴포넌트와 클러스터와만 상호 작용하는 컴포넌트를 구분할 수 있게 해 준다.
    • cloud-controller-manager는 클라우드 제공자 전용 컨트롤러만 실행한다. 

    Node Components

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

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

    • 모든 노드에서 동작

    iconfalse

    kubelet

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

    kube-proxy

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

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

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

    Container Runtime

    Info
    titlehttps://brunch.co.kr/@topasvga/1669
    • Administrator 관점
    • Internet 관점

    Image Added