본문 바로가기
IT기술노트/컴퓨터구조 및 운영체제

쿠버네티스(Kubernates)

by 비트코기 2021. 3. 12.

I. Container-Driven 오케스트레이션 플랫폼, 쿠버네티스의 개요

가. 쿠버네티스의 정의

   - 컨테이너화 된 워크로드와 서비스를 관리하기 위한 이식성/확장 가능한 오픈소스 SW/플랫폼

나. 쿠버네티스의 특징

특징

내용

Fault Tolerance

- 점진적 업데이트 제공, 서비스 중단 없이 업데이트 가능

- 자가회복(Self-Healing), 장애 시 복제 컨테이너 생성해서 서비스 시작

Vender Lock In

- 도커 컨테이너 기반, 특정 업체에 종속되지 않고 클라우드 환경 이전

다. 쿠버네티스의 등장배경

특징

내용

마이크로 서비스

아키텍처 발전

- 1~2코어 운영의 작은 서비스 다수 등장

- VM 운영 환경의 낭비 증가

솔루션 발전

- VM이나 컨테이너 단위로 배포하는 피닉스 서버 패턴

- 지능형 라우팅, 분산 트랜잭션 로그 추적

데브옵스 성숙화

- 플랫폼과 자동화 목표의 역할 명확화


II. 쿠버네티스의 구성도 및 구성요소

가. 쿠버네티스의 구성도

- 컨테이너가 배포되는 가상 또는 물리머신인 노드의 집합 전체를 쿠버네티스 마스터에서 관리

나. 쿠버네티스의 구성요소

구분

항목

내용

마스터 노드

컨트롤 매니저

- 쿠버네티스의 전체 시스템을 관리하고 통제하는 에이전트

API 서버

- 각 노드의 Kubelet과 통신하기 위한 API 서버

Etcd

- 쿠버네티스의 각종 설정 파일들을 저장하고 있는 영구적인 저장 공간

스케줄러

- 적재적소에 맞는 노드에 Pod를 할당해주기 위한 JOB스케줄러

워커 노드

Kubelet

- 노드에 배포되는 에이전트, 마스터 API 서버와 통신을 하면서, 노드가 수행해야 할 명령을 받아서 수행하고, 반대로 노드의 상태 등을 마스터로 전달하는 역할 수행

Kube-proxy

- 노드로 들어오는 네트워크 트래픽을 적절한 컨테이너로 라우팅하고, 로드밸런싱 등 노드로 들어오고 나가는 네트워크 트래픽을 프록시하고, 노드와 마스터간의 네트워크 통신을 관리

컨테이너 런타임

- Pod를 통해서 배포된 컨테이너를 실행하는 컨테이너 런타임


III. 쿠버네티스의 도입효과

도입효과

내용

Agile 애플리케이션 생성/배포

- VM 이미지 사용 대비 컨테이너 이미지 생성이 보다 쉽고 효율적

지속적 개발/통합/배포

- 안정적/주기적으로 컨테이너 이미지를 빌드 및 배포

- 빠르고 쉽게 롤백 가능

개발/운영 관심사 분리

- 빌드/릴리스 시점에 애플리케이션 컨테이너 이미지 생성

- 애플리케이션이 인프라 스트럭처에서 디커플(Decouple)된다.

가시성

- OS 수준의 정보와 메트릭에 머무르지 않고, 애플리케이션의 헬스와 그 밖의 시그널 모니터링

개발/테스팅/운영환경 일관성

- 개인용 컴퓨터 에서도 클라우드 에서와 동일하게 구동

클라우드, OS간 이식성

- Ubuntu, RHEL, CoreOS, on-prem 등 다른 OS에서도 구동 가능

어플리케이션 중심관리

- OS논리적인 자원을 사용하여 애플리케이션을 구동

- 추상화 수준이 높아짐

마이크로 서비스

- 모놀리식 스택으로 구동되지 않고 보다 작고 독립적인 단위로 쪼개져서 동적으로 배포되고 관리

자원 격리

- 애플리케이션 성능 예측

자원 사용량

- 고효율 고집적 자원 사용


IV. 도커의 오케스트레이션 관리를 위한 도커 스웜의 개요

가. 도커 스웜(Docker Swarm)의 개념

   - 단일 호스트인 도커를 멀티 호스트로 전개하고 클러스터링 기반의 고가용성, 오토 스케일링 및 통합관리 환경을 제공하는 오케스트레이션 도구

나. 도커 스웜의 특징

특징

내용

컨테이너 통합관리

- 단일 호스트인 도커 시스템의 멀티 호스트 통합관리

클러스터링

- 멀티 호스트 기반의 클러스터링을 통해 고가용성, 부하분산 기능 제공

AP릴리즈 지원

- 컨테이너 기반의 AP릴리즈의 안정적 업데이트 지원

- 도커 버전 1.12부터 스웜모드라는 이름으로 도커와 통합 제공

다. 도커 스웜의 구성

구성요소

상세내용

세부기술

Master Node

(Manager)

- 클러스터의 관리작업 처리

- 클러스터 상태관리, 서비스 스케줄링 수행

- 고가용성을 위해 다수의 노드로 관리

- Raft 알고리즘

- HTTP API Endpoint

Worker Node

- 컨테이너를 실행하기 위한 노드

- 컨테이너 로드밸런싱, 상태체크, 명령 수행

- 로드밸런싱

- 헬스 체크 스웜

Service

- 기본적인 배포 단위

- 하나의 서비스는 하나의 이미지를 기반으로 생성하고 동일한 컨테이너를 한 개 이상 실행

- 롤링 업데이트

- Replicaton Task

라. 도커 스웜의 주요기능

주요기능

상세내용

스케줄링

- 서비스의 워커노드 배포

- 특정 노드에 라벨을 제정하여 특정 노드 또는 모든 한대씩 배포 가능

고가용성

- 다수의 매니저 노드 운영으로 서비스 연속성 제공

- 컨테이너 장애 시 다른 워커 노드에 컨테이너 생성

서비스 디스커버리

- 자체 DNS 서버를 이용하여 서비스 이름으로 직접 접근 가능

- 멀티 호스트 네트워크를 이용하여 여러 노드에 분산된 컨테이너가 같은 네트워크로 구성

롤링 업데이트

- 서비스를 새로운 이미지로 순차적 업데이트

멀티 호스트 네트워크

- 여러 노드에 분산된 컨테이너를 하나의 네트워크로 구성

- 컨테이너마다 독립된 IP 생성

로깅, 모니터링

- 다수의 노드에서 실행중인 컨테이너 로그 및 리소스 모니터링

로드 밸런싱

- 외부 로드밸런스로 서비스 포트 부하분산 가능

- 노드들 간에 서비스 컨테이너 분산 방식 설정

마. 컨테이너 오케스트레이션 비교

구분

도커스웜

쿠버네티스

Apache Mesos DC/OS

운영 Host

1,000노드

1,000노드

10,000노드

라이선스 모델

아파치

아파치

아파치

규모

/중규모

/대규모

/대규모

특징

편의성 높음

높은 안정성

고수준 UI

  - 현재 쿠버네티스가 사실상 표준으로 가장 많은 레퍼런스 보유, 도커는 플러그인을 통해 쿠버네티스 설치 가능

  - 도커 스웜은 상대적으로 설치 및 편이성이 간편하여 소/중규모에서 사용

 

반응형

댓글