쿠버네티스 마스터
안녕하세요. 명동교자입니다.
요즘 제가 관심있게 살펴보고 있는 분야는 쿠버네티스 입니다.
오늘부터 쿠버네티스를 공부하면서 배운 내용을 블로그에 정리해보려고 합니다.
오늘은 첫 시간으로 쿠버네티스 아키텍처에 대해서 살펴보겠습니다.
쿠버네티스 마스터
쿠버네티스 마스터(Kubernetes Master)는 다음과 같은 여러 가지 기능을 제공합니다.
kubelet
큐블렛은 쿠버네티스의 주요 프로세스이며, 다음을 처리합니다.
이상으로 쿠버네티스의 마스터 노드에 대해서 알아보았습니다.
요즘 제가 관심있게 살펴보고 있는 분야는 쿠버네티스 입니다.
오늘부터 쿠버네티스를 공부하면서 배운 내용을 블로그에 정리해보려고 합니다.
오늘은 첫 시간으로 쿠버네티스 아키텍처에 대해서 살펴보겠습니다.
쿠버네티스는 마스터와 노드로 구성됩니다. 노드는 여러 개로 구성될 수 있으며 위 그림과 같이 서로 연결되어 있습니다.
쿠버네티스 마스터
쿠버네티스 마스터(Kubernetes Master)는 다음과 같은 여러 가지 기능을 제공합니다.
- 인증 및 인가 (Authentication & Authorization)
- RESTful API 엔트리 포인트
- 노드를 위한 컨테이너 배포 스케줄러
- 확장 및 복제 컨트롤러
- 클러스터 구성 정보
쿠버네티스 마스터는 위 그림과 같이 API 서버 (kube-apiserver), 스케줄러(kube-scheduler), 컨트롤러 관리자(kube-controller-manager), 프록시(kubu-proxy), 큐블렛(kubelet), 에티시디(etcd)로 구성되어 있습니다.
kube-apiserver
API 서버는 http나 https 기반 RESTful API를 제공합니다. 쿠버네티스 구성 요소간 허브 역할을 합니다.
kube-scheduler
스케줄러는 어떤 노드에서 동작을 수행할지 컨테이너에 대한 선택 기능을 지원합니다. 컨테이너를 노드에 디스패치(dispatch) 및 연결하기 위한 우선순위를 다음의 항목을 통해 결정합니다.
- CPU
- 메모리
- 수행 중인 컨테이너 개수
kube-controller-manager
컨트롤러 관리자는 다음과 같은 클러스터의 운영 기능을 수행합니다.
- 노드관리
- 내부 정보 생성 및 업데이트
- 상태 변경
kube-proxy
프록시는 노드의 각 컨테이너를 위한 네트워크 프록시와 로드 밸런서를 제공합니다. 프록시는 kube-proxy 데몬을 시작한 후 리눅스의 iptable 규칙을 설정합니다. 이 때 다음과 같은 명령어로 NAT 테이블 규칙을 검증할 수 있습니다.
ipatables -t nat -L
oripatables -t nat -S
kubelet
큐블렛은 쿠버네티스의 주요 프로세스이며, 다음을 처리합니다.
- 확인 및 보고를 위해 주기적으로 API 컨트롤러에 접근
- 컨테이너 운영 수행
- http 서버로 동작해 단순한 API 제공
etcd
에티시디는 분산 키-값 형태의 데이터 저장소 입니다 (참조: https://coreos.com/etcd). 에티시디는 RESTful API를 사용해 접근할 수 있으며, 네트워크를 통해 CRUD를 운영할 수 있습니다. 쿠버네티스의 주요 데이터 저장소입니다.
다음 curl 명령을 사용해 에티시디의 쿠버네티스 구성 상태를 볼 수 있습니다.
$ curl -L http://127.0.0.1:4001/v2/keys/registry
이상으로 쿠버네티스의 마스터 노드에 대해서 알아보았습니다.
댓글
댓글 쓰기