ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Kubernetes] 쿠버네티스의 기본 구조
    Kubernetes/쿠버네티스 기본개념 2024. 6. 9. 16:10

    전체 쿠버네티스 클러스터의 구조

    Node

    - 쿠버네티스 클러스터를 구성하는 머신들은 노드(node)라고 부름

    - 각 노드들은 물리적이거나 가상 머신일 수 있음

    Master Node : Control Plane을 형성하며, 전체 클러스터를 관리하는 마스터 노드

    Worker Node : Data Plane을 형성하며, 파드들을 통해 실제 애플리케이션 컨테이너 이미지들을 작동시키는 워커 노드

     

    Object

    - 쿠버네티스의 오브젝트(object)는 클러스터의 상태를 나타내는 단위

    - 항상 오브젝트의 "현재 상태"를 "의도한 상태"와 동일하게 만들게끔 작동함

    ex) 동작중인 컨테이너 relicas 개수, 어떤 파드들이 어느 노드에서 동작중인지..

     

    pod

    - 하나 이상의 컨테이너를 둘러싼 가장 작은 래퍼(wrapper) 단위

    데몬셋(daemonset)

    - 워커 노드에 파드의 단일 인스턴스를 실행함

    - 주로 시스템 수준의 데몬(예: 로그 수집기, 모니터링 에이전트 등)을 배포하는 데 사용됨

    디플로이먼드(deployment)

    - 애플리케이션 버전의 롤백 방법에 대한 세부 내용

    레플리카 셋(replicaset)

    - 계속 동작할 파드의 개수를 정의함

    잡(job)

    - 파드가 제대로 완성되어 동작할 수 있도록 함

    서비스(service)

    - 고정 ip 주소를 파드의 논리 그룹과 매핑함

    레이블(lable)

    - 연결과 필터링에 사용되는 키/밸류 쌍

    Namespace

    - 클러스터 내의 논리적 분리 단위 (서비스 다누이)

    - 파드에 할당될 cpu, memory 같은 요청량과 limit의 기본값을 할당함

     

     

    Component

     

    - 1개 이상의 API 서버는 kubectl의 REST 진입점 !

    - watch의 매커니즘을 지니고 있다

     

    1) Master Node

    kube-apiserver : API 노출 후 다른 구성요소들이랑 상호작용할 수 있는 서버, kubectl이나 kubeadm같은 CLI 통해 API에 액세스 가능

    etcd : 분산된 클러스터 상태를 백업하는 데이터 저장소 (key/value)

    kube-scheduler : 새로운 pod를 적절한 노드에 할당함, cpu mem같은 리소스 상태 고려해서 포드를 적절한 노드에 예약

    kube-controller-manager : 노드, 엔드포인트, re-controller 등의 컨트롤러 관리

    -> Deployment Controller, Replicaset Controller

     

    2) Worker Node

    kubelet: 각 노드에서 실행되며, pod를 관리하고 컨테이너를 실행하는 담당, (agent 형식) -> API 서버와 워커 노드 간의 연결 역할

    kube-proxy : 노드에서 네트워크 프록시 관리 및 로드밸런싱 수행 (데몬셋) -> IP 변환 및 라우팅 관리

    container runtime : 컨테이너 이미지 다운 및 실행 (docker , containered..)

     

Designed by Tistory.