쿠버네티스를 이루고 있는 여러 가지 구성 요소
쿠버네티스 컴포넌트
쿠버네티스 컴포넌트
컨트롤 플레인(Control Plane) 컴포넌트
쿠버네티스 기능 제어를 전체적으로 담당
ex. 본사
kube-apiserver
: 쿠버네티스 컨트롤 플레인의 프론트 엔드
: 쿠버네티스 모든 컴포넌트들의 API 통신역할
쿠버네티스 클러스터로 들어오는 요청을 가장 앞에서 접수하는 역할
kubectl을 사용해 각종 명령을 수행할 경우 이 명령은 kube-apiserver로 전송
*kubectl : 쿠버네티스 커맨드 라인 도구
전달된 요청에 대해 kube-apiserver는 요청의 처리 흐름에 따라 적절한 컴포넌트로 요청을 전달하는 역할까지 맡고 있음
etcd
쿠버네티스의 DB 역할
쿠버네티스 클러스터가 동작하기 위해서는 클러스터 및 리소스의 구성정보, 상태 정보 및 명세 정보 등이 필요
etcd는 이를 키-값(key-value) 형태로 저장하는 저장소
안정적인 동작을 위해 자료를 분산해서 저장하는 구조를 채택
kube-scheduler
파드를 알맞은 노드에 스케줄링을 담당하는 역할
*파드 : 기본적인 작업 단위
*스케줄링 : 새로 생성된 파드를 감지하여 어떤 노드로 배치할지 결정하는 작업
스케줄링을 위해 노드 및 파드의 각종 요구사항과 제약사항을 종합적으로 판단할 필요가 있는데, 이러한 판단 또한 kube-scheduler의 역할
회사로 비유하자면 각 부서 인력 소요 계획과 신입사원 역량을 고려해 적절한 부서로 배치하는 인사 담당 부서에 비유
kube-controller-manager
쿠버네티스에서 컨트롤러를 관리하는 역할
회사에서는 목표 수준을 달성하기 위해 끊임없이 확인하고, 목표치에 미달하는 부분에 대해 대책을
수립하듯이 비슷하게
다운된 노드가 없는지, 파드가 의도한 복제(Replicas) 숫자를 유지하고 있는지, 서비스와 파드는 적절하게 연결되어 있는지, 네임스페이스에 대한 기본 계정과 토큰이 생성되어 있는지를 확인하고 적절하지 않다면 적절한 수준을 유지하기 위해 조치하는 역할
노드(Node) 컴포넌트
컨트롤 플레인 컴포넌트의 요청을 받아 각 노드에서 동작을 담당
ex. 자사
kubelet
노드에서 컨테이너가 동작하도록 관리해 주는 핵심 요소
각 노드에서 파드를 생성하고 정상적으로 동작하는지 관리하는 역할
실제로 우리가 쿠버네티스의 워크로드를 관리하기 위해 내려지는 명령은 kubelet을 통해 수행
쿠버네티스 파드를 관리하기 위해 작성하는 YAML을 쿠버네티스 클러스터에 적용하기 위해 kubectl 명령어를 사용할 때
YAML → kube-apiserver → kubelet
kubelet은 YAML을 통해 전달된 파드를 생성 혹은 변경하고 이후 YAML에 명시된 컨테이너가 정상적으로 실행되고 있는지 확인
container runtime
파드에 포함된 컨테이너 실행을 실질적으로 담당하는 애플리케이션을 의미
쿠버네티스 구성 요소에 기본적으로 포함되어 있거나, 특정 소프트웨어를 지칭하는 것은 아님
쿠버네티스가 컨테이너를 제어하기 위해 제공하는 표준규약인 컨테이너 런타임 인터페이스를 준수하여 쿠버네티스와 함께 사용할 수 있는 외부 애플리케이션을 의미
사용할 특정 애플리케이션을 강제하지는 않고 쿠버네티스가 제공하는 규약에 따라 쿠버네티스와 연계할 것을 요구
ex. containerd, CRI-O
kube-proxy
쿠버네티스 클러스터 내부에서 네트워크 요청을 전달하는 역할
해당 파드의 IP를 정확히 알지 않아도 / ip가 외부에서 접근 가능하도록 구성되어 있지 않아도 kube-proxy가 수행
근데 쿠버네티스 파드 ip는 파드가 배포될 때마다 매번 바뀜
ip를 통해 파드에 요청을 전달하기엔 쉽지 않음
⇒ 파드 ip가 매번 바귀는데서 오는 어려움을 해결하기 위해 오브젝트를 통해 고정적으로 파드에 접근할 수 있도록 하는 방법을 제공
서비스로 들어온 요청이 파드에 실제로 접근할 수 있는 방법을 관리
관리를 담당하는 컴포넌트가 kube-proxy
'Cloud' 카테고리의 다른 글
쿠버네티스 알아보기 2 (쿠버네티스 플랫폼) (0) | 2022.10.11 |
---|---|
쿠버네티스 알아보기 1 (개념) (1) | 2022.10.04 |
댓글