kubernetes 아키텍쳐

category DevOps/Kubernetes 2021. 10. 21. 14:29
728x90
반응형

이미지 출처: 제타위키
이미지 출처: 제타위키

 

Master Node

구성 설명
API Server ㆍ쿠버네티스 클러스터의 모든 작업을 제어하는 REST API
Controller (컨트롤러) ㆍ클러스터를 설계한 상태로 유지 (파드 개수 유지)
ㆍ백그라운드에서 클러스터 컨트롤러를 관리
ㆍAPI 서버를 이용하여 클러스터 상태를 모니터링
Scheduler (스케쥴러) ㆍ노드가 배정되지 않은 새로 생성된 Pod를 감지하고 그것을 어느 Node에서 실행될지를 선택
ㆍPod를 어떻게 Node에 배치할지를 예약
etcd ㆍ클러스터의 모든 정보를 저장하는 데이터 저장소
ㆍ고가용성을 가진 Key-Value 저장소 구조

Worker Node

구성 설명
kubelet ㆍ노드에서 실행되는 에이전트로 컨테이너가 Pod에서 실행중인지 확인
ㆍkubelet은 다양한 메커니즘을 통해 제공되는 PodSpec을 가져와 해당 요구사항으로 상태를 유지
POD (파드) ㆍcontainer의 그룹 k8s의 최저 배포 단위
ㆍPod 중 컨테이너 Storage, namespaces, port 공유
ㆍ하나 이상의 컨테이너 그룹를 말한다.
ㆍ특징
    - IP, Host가 임의로 부여됨
    - 컨테이너 Hostname도 확장을 고려하여 [어플리케이션]-xxxx 형태로 부여됨
    - 컨테이너 임의로 확장할 수 있는 어플리케이션 구조가 되어야 함
    - 기존 이미지에 Scale Out 기능
kube-proxy ㆍkube-proxy는 호스트 상에서 네트워크 규칙을 유지하고 연결에 대한 포워딩을 수행함
ㆍ쿠버네티스 서비스를 추상화
Container runtime ㆍ작성된 이미지를 가져와 컨테이너를 실행
ㆍKubernetes는 컨테이너 런타임 교체가 가능하기때문에 Docker, containered, rkt, cri-o 같은 컨테이너 런타임을 사용

공통

구성 설명
CNI (Container Network Interface) ㆍContainer간 통신을 지원하는 VxLAN,Pod Network이라고도 부름
ㆍ다양한 종류의 플러그 인이 존재
    * 플라넬 (flannel), 칼리코 (calico), 위브넷 (weavenet)
Service (서비스) ㆍPOD와 볼륨을 이용하여 컨테이너를 정의한 후에 POD로 서비스를 제공할때 일반적인 분산환경에서는 하나의 POD로 서비스 하는 경우는 드물고 여러개의 POD를 서비스하면서 이를 로드밸런서를 이용하여 하나의 IP와 포트로 묶어서 서비스를 제공한다.
Volumn (볼륨) ㆍ반드시 저장해야 업로드 데이터와 같은 데이터는 NFS와 같은 공유 스토리지를 연결해야함
  POD 재생성시 컨테이너 내부 데이터는 초기화 됨

 

728x90
반응형