상세 컨텐츠

본문 제목

쿠버네티스 시작하기

NETWORK/docker & 쿠버네티스

by 영공쁘이 2021. 8. 12. 12:32

본문

쿠버네티스 : 어플리케이션과 서비스를 관리하는 오픈소스 시스템(구글 사에서 제작)
쉽고 빠르게 어플리케이션을 배포할 수 있고 관리가 가능하다.

이런식으로, 다양한 어플리케이션을 Omega, BoargMaster에서 관리를 한다.

- 인프라의 추상화: 컨테이너 어플을 쉽게 배포하고 관리하는 시스템(컨네이너 상에서 = 배포, 관리가 단순화됨)
* 배포 단순화: 특정 베어메탈을 필요로 할 때(SSD, HDD)
하드웨어 극대화, 상태 확인 및 자가 치유(장애를 처리), 오토스케일링(부하 자동 조정), 어플 개발 단순화(이상> 롤 아웃)

- 하드웨어 수준
> 마스터 노드: 전체 쿠버네티스 시스템을 관리하고 통제한다. * 컨트롤 플레인을 관장
> 워커 노드: 실제 배포하는 어플리케이션 실행을 담당

여러 워커 노드가 존재한다
마스터와 워커 노드의 구성도

* 컨트롤 플레인
- 클러스터를 관리하는 기능, 여러 노드로 분할 및 복제 되어 고가용성을 보장, 어플리케이션 실행 X

** 구성요소
- 쿠버네티스API(컨트롤 플레인과 통신), 스케줄러(배포 요소에 워커 노드 할당)
- 컨트롤매니저(노드 추적, 장애 처리 등)
데이터 스토리지(etcd인데, 클러스터 구성을 안정적으로 분산)

노드: 워크 노드는 컨테이너화된 어플리케이션을 실행하는 시스템
- 컨테이너 런타임: 도커
- Kubelet: 컨테이너 관리

어플리케이션 간 네트워크 트래픽을 분산 및 연결한다(Proxy, service)

워커노드에서 어플리케이션이 실행된다고 했는데, 실제 쿠버네티스에서 어플리케이션이 실행되는 것을 나타냄

어플 실행 전: 이미지들을 패키지 안에 레지스트리로 푸시, 디스크립션을 게시

* 디스크립션(YAML 기반)
- 컨테이너 이미지/ 어플리케이션 이미지가 존재
- 컴포넌트 간 관련성 및 노드배치, 단일 IP주소로 노출하여 다른 컴포넌트에서 검색

한마디로 위의 구조는, 앱 디스크립터에서 참조하여 컨트롤 플레인이 각 노드에게 앱을 배포하는 것
실제로 배포된 앱을 받은 워커 노드는 앱을 실행한다.

관련글 더보기