320x100
320x100

Kubernetes

: 구글을 중심으로 다양한 개발자들이 참가하는 표준 컨테이너 오케스트레이션 도구

: 클러스터링을 통해 분산된 호스트를 하나로 묶어 Docker 컨테이너를 관리

 

ㆍ주요기능

: 여러 호스트에서의 컨테이너 관리

: 컨테이너 간 네트워크 관리

: 컨테이너 부하분산

: 컨테이너 모니터링

: 무정지 업데이트 

 

 

 

하드웨어 유닛

ㆍ노드

: 쿠버네티스 내 최소 단위의 컴퓨팅 하드웨어

 

ㆍ클러스터

: 효율적인 리소스 공유와 균형 배분을 위해 여러 노드를 묶은 그룹

: Cluster IP (클러스터 내 pod 끼리 통신하기 위한 private 주소)

: External IP (외부 클라이언트에서 연결하기 위한 public 주소)

 

 

 

 

 

소프트웨어 유닛

ㆍ컨테이너

: 하나 이상의 프로세스의 모음

 

ㆍ포드 (pod)

 : 하나 이상의 컨테이너의 모음, 리소스 공유의 장점을 극대화 하기 위해 패키지로 묶여 있음

 

ㆍ레플리카셋 (Replica set)

: 쿠버네티스 클러스터 상에서 미리 지정된 pod를 작성하여 실행시켜두는 장치

: 실행중인 pod를 감시하여 장애발생 시 해당 pod를 삭제하고 새로운 pod 생성

: 필요한 수 만큼 pod를 유지시키는 설정

: pod의 수를 동적으로 변경하여 auto Scale 구성 가능

=> 여러 노드에 대한 pod의 갯수를 Replica set으로 정의하여 고가용성 유지 

 

ㆍ디플로이먼트 (Deployment)

: 포드와 레플리카셋의 모음

: 레플리카셋의 탬플릿을 가지고 포드의 구성을 정의하여 이에 따르는 레플리카셋 생성

: 이를 통해 시스템 정지 없이 컨테이너 버전업 및 업데이트 가능

: Replica set의 작성 및 갱신 정의

 

ㆍDaemonSet

: 특정 pod를 반드시 배치하고 싶을때 사용하는 도구

 

ㆍJobs

: 일회성 프로그램을 pod에서 실행하기 위한 도구

 

ㆍCronJob

: pod 실행에 대한 예약을 관리하는 도구

 

ㆍIngress

: pod에 대한 통신을 제어하는 도구

: 서비스와 연결되어 통신 내용을 대신 수행 (proxy)

 

 

 

 

쿠버네티스 역할 별 용어 

ㆍ마스터 서버

: 클러스터 내 컨테이너를 조작하기 위한 서버

: kybectl 명령어를 통해 클러스터 구성 및 리소스 조작

: 마스터 서버가 command로 부터 요청을 받아 명령 처리 수행

: 클러스터 내 노드의 리소스 사용 현황 확인 및 컨테이너 시작 노드 자동 선택

: 마스터 서버를 통해 모든 노드를 조작

 

ㆍ백엔드 데이터베이스 (etcd)

: etcd라는 분산 키 값 저장소를 통해 클러스터 구성 정보를 관리

: 클러스터를 구축하기 위한 설정 정보를 저장

: 시스템 구성에 따라 마스터 서버에 구축 가능

 

ㆍ노드

: 실제로 Docker 컨테이너를 작동시키는 서버

: 노드가 모여 클러스터가 되고 이를 마스터 서버가 관리

 

 

 

 

마스터 서버의 구조

ㆍAPI Server

: 쿠버네티스의 리소스 정보를 관리하기 위한 프론트엔드 REST API

: 각 컴포넌트로 부터 리소스 정보를 받아 etcd에 저장

: 컴포넌트에서 etcd의 정보에 액세스 하기 위한 API

: 사용자는 웹의 GUI툴이나 kubectl 명령을 통해 API Server에 액세스

: 인증 및 인가 기능

 

ㆍScheduler

: pod가 작동할 노드를 선택하고 제어하는 백엔드 컴포넌트

 

ㆍControl Manager

: 쿠버네티스 클러스터의 상태를 모니터링 하는 백엔드 컴포넌트

 

 

 

 

 

노드의 구조

ㆍkubelet

: pod 정의 파일에 따라 컨테이너를 실행하거나 스토리지를 마운트 하는 기능의 에이전트

: 노드의 상태를 정기적으로 모니터링 (상태 변화시 API Server에 전송)

 

 

 

 

클러스터 구성 정보작성 (Manifest)

: YAML 또는 JSON 형식으로 작성

: Jenkins와 같은 버전 관리 시스템과 연계 가능

 

 

 

 

 

 

 

Refference

: 완벽한 IT 인프라 구축을 위한 Docker (http://www.yes24.com/Product/Goods/64728692)

 

🌌 [쿠버네티스 아키텍처] 1. 구성 및 설계

현재 상태와 Desired State(원하는 상태)를 계속 체크하고(ex.컨테이너 하나가 떠있어야 되는데 잘 떠있는지), 만약 문제가 있다면 조치를 한다. 이 단순한 작업을 잘 반복하면 서버 관리에 문제가 없

velog.io

 

300x250
728x90