-
[K8s] 쿠버네티스 4 아키텍쳐CLOUD/K8s 2021. 2. 23. 17:32반응형
bcho.tistory.com/1258?category=731548보고 따라쓰기
<그림 쿠버네티스 아키텍처>
마스터와 노드
쿠버네티스는 크게 2개의 컴포넌트로 분리
- 마스터 : 쿠버네티스의 설정 환경을 저장하고 전체 클러스터를 관리하는 역할
- 노드 : Pod나 컨테이너처럼 쿠버네티스 위에서 동작하는 워크로드를 호스팅하는 역할
마스터
:쿠버네티스 클러스터 전체를 관리하는 시스템으로, 크게 API서버, 스케쥴러, 컨트롤러매니저, etcd 등으로 구성되어있다.
- API 서버
- 쿠버네티스는 모든 명령과 통신을 API를 통해서 하는데, 그 중심이 되는 서버
- 쿠버네티스의 모든 기능을 REST API로 제공하고 그에대한 명령을 처리한다.
- Etcd(엣시디)
- 쿠버네티스 클러스터의 DB역할이 되는 서버로 설정값이나 클러스터의 상태를 저장하는 서버이다.
- 분산형 키/벨류 스토어 오픈소스
- 스케쥴러
- Pod, 서비스 등 각 리소스들을 적절한 노드에 할당하는 역할
- 컨트롤러 매니저
- 컨트롤러(Replica , Service, Volume, Node controller)를 생성하고 이를 각 노드에 배포하며 관리하는 역할
- DNS
- 쿠버네티스는 리소스의 엔드포인트를 DNS로 맵핑하고 관리함.
- Pod나 서비스들은 동적으로 생성되는 리소스. IP가 그때마다 다르게 배정(변경)
리소스에 대한 위치정보를 내부 DNS서버에 둔다. (Service discovery패턴)
새로운 리소스가 생기면 그 리소스에 대한 IP와 DNS를 등록하여 DNS 이름을 기반으로 리소스에 접근할 수 있도록 한다.
노드
: 마스터에 의해 명령을 받고 실제 워크로드를 생성하여 서비스하는 컴포넌트
Kubelete, Kube-proxy, cAdvisor 그리고 컨테이너 런타임이 배포됨.- Kubelet
- 노드에 배포되는 에이전트
- 마스터의 API서버와 통신을 하면서 노드가 수행해야 할 명령을 받아서 수행하고 노드의 상태를 마스터로 전달
- Kube-proxy
- 노드로 들어오는 네트워크 트래픽을 적절한 컨테이너로 라우팅하고, 로드밸런싱 등 트래픽프록시. 네트워크 통신 관리
- Container runtime
- Pod를 통해 배포된 컨테이너를 실행
- 도커 컨테이너 이외에도 rkt(보안 강화) , hyper container등 다양하게 있다
- cAdvisor
- 각 노드에서 기동되는 모니터링 에이전트
- 노드 내에서 가동되는 컨테이너들의 상태와 성능 등의 정보를 수집하여 마스터 서버 API서버로 전달한다. – 모니터링에 쓰임
'CLOUD > K8s' 카테고리의 다른 글
[K8s] 쿠버네티스 3 개념이해 2 (0) 2021.02.23 [K8s] 쿠버네티스 2 개념이해 1 (0) 2021.02.23 [K8s] 쿠버네티스 1 - 소개 (0) 2021.02.23