7월, 2019의 게시물 표시

쿠버네티스 마스터

이미지
안녕하세요. 명동교자입니다.

요즘 제가 관심있게 살펴보고 있는 분야는 쿠버네티스 입니다.

오늘부터 쿠버네티스를 공부하면서 배운 내용을 블로그에 정리해보려고 합니다.

오늘은 첫 시간으로 쿠버네티스 아키텍처에 대해서 살펴보겠습니다.



쿠버네티스는 마스터와 노드로 구성됩니다. 노드는 여러 개로 구성될 수 있으며 위 그림과 같이 서로 연결되어 있습니다.
쿠버네티스 마스터

쿠버네티스 마스터(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 or
ipatable…