ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [K8S] Component
    Kubernetes 2023. 8. 18. 16:09

    kubernetes.io

    클러스터(Cluster)


    • 쿠버네티스를 배포하면 클러스터를 얻음
    • 노드의 집합

    kubernetes.io

    • 모든 클러스터는 최소 한 개의 워커 노드를 가짐

     

     

     

     

     

     

    컴포넌트(Component)

    ( 쿠버네티스를 이루는 구성 요소 )


    컨트롤 플레인(Control Plane)

    : 기능 제어를 전체적으로 담당

    • kube-apiserver
      • 쿠버네티스 컨트롤 플레인의 프론트 엔드
      • 쿠버네티스 클러스터로 들어오는 요청을 가장 앞에서 접수하는 역할
      • 예) kubectl을 사용해 각종 명령을 수행할 경우 kube-apiserver로 전송됨 전달된 요청에 대하여 kube-apiserver는 이 요청의 처리 흐름에 따라 적절한 컴포넌트로 요청을 전달하는 역할까지 맡고 있음

     

    • etcd 
      • 쿠버네티스 클러스터가 동작하기 위해서는 클러스터 및 리소스의 구성 정보, 상태 정보 및 명세 정보 등이 필요. 이를 키-값(key-value) 형태로 저장하는 저장소
      • = 워커 노드들에 대한 상태 정보 저장
      • 안정적인 동작을 위해 자료를 분산해서 저장하는 구조를 채택
      • 예) 회사 각종 중요 정보가 모두 모여있는 금고 매우 중요한 정보를 보관하는 금고이기 때문에 동일한 자료를 여러 금고에 나눠서 보관

     

    • kube-scheduler
      • 스케줄링을 담당
      • 스케줄링 : 새로 생성된 파드를 감지하여 어떤 노드로 배치할지 결정하는 작업
      • 스케줄링을 위해 노드 및 파드의 각종 요구사항과 제약사항을 종합적으로 판단
      • 예) 인사 담당

     

    • kube-controller-manager
      • 다운된 노드가 없는지, 파드가 의도한 복제(Replicas) 숫자를 유지하고 있는지, 서비스와 파드는 적절하게 연결되어 있는지, 네임스페이스에 대한 기본 계정과 토큰이 생성되어 있는지 확인 및 적절한 수준을 유지하기 위해 조치하는 역할
      • 예) 관리자

     

     

    노드(Node)

    : 컨트롤 플레인 컴포넌트의 요청을 받아 각 노드에서 동작을 담당

    • kubelet
      • 노드에서 컨테이너가 동작하도록 관리해 주는 핵심 요소
      • 각 노드에서 파드를 생성하고 정상적으로 동작하는지 관리하는 역할을 담당
      • 워크로드를 관리하기 위해 내려지는 명령은 kubelet을 통해 수행된다고 볼 수 있음
      • YAML(파드를 관리하기 위해 작성하는 파일)을 클러스터에 적용하기 위해 kubectl 명령을 사용할 때 YAML → kube-apiserver로 전송 됨 → kubelet으로 전달 됨. YAML을 통해 전달된 파드를 생성 혹은 변경, 이후 컨테이너가 정상적으로 실행되고 있는지 확인
      • 예) 지사에서 본사의 업무 요청을 받아 확인하는 역할을 수행

     

    • container runtime
      • 파드에 포함된 컨테이너 실행을 실질적으로 담당하는 애플리케이션
      • 표준 규약인 CRI(컨테이너 런타임 인터페이스)를 준수하여 쿠버네티스와 함께 사용할 수 있는 외부 애플리케이션들을 의미 (쿠버네티스 구성 요소에 포함되어 있거나, 특정 소프트웨어를 지칭하는 것이 아님)
      • 예) docker, containerd 등

     

    • kube-proxy
      • 쿠버네티스 클러스터 내부에서 네트워크 요청을 전달하는 역할
      • 파드 IP는 파드가 배포될 때마다 매번 바뀜. 여기서 오는 어려움을 해결하기 위해 오브젝트를 통해 고정적으로 파드에 접근할 수 있도록 하는 방법을 제공
      • 서비스로 들어온 요청이 파드에 실제로 접근할 수 있는 방법을 관리
      • = 파드의 IP는 매번 변하지만 kube-proxy가 이 파드에 접근할 수 있는 방법을 그때마다 관리하고 갱신하며, 서비스 오브젝트는 이 정보를 사용하여 파드가 외부에서 접근할 수 있는 경로를 제공

     

     

     

    Reference

    'Kubernetes' 카테고리의 다른 글

    [K8S] ETCD Backup & Restore  (0) 2023.08.24
    [K8S] K9S 설치하기  (0) 2023.08.23
    [K8S] Ingress  (0) 2023.08.22
    [K8S] Kubeadm 이용해 설치하기 (+node 추가/삭제)  (0) 2023.08.21
    [K8S] Object  (0) 2023.08.19
Designed by Tistory.