컨테이너 오케스트레이션이란?
Container Orchestration
컨테이너의 배포, 관리, 확장, 네트워킹을 자동화하는 과정 및 기술
컨테이너를 사용하는 어떤 환경에서든 사용할 수 있다.
재설계할 필요 없이 각기 다른 환경 전반에 동일한 애플리케이션을 배포하는 데에도 도움됨.
예를 들어,
컨테이너에 마이크로서비스를 구현하면 스토리지, 네트워킹, 보안과 같은 서비스를
간편하게 오케스트레이션할 수 있다.
이렇게 되면 컨테이너는 마이크로서비스 기반 애플리케이션에 이상적인
애플리케이션 배포 유닛 및 독립적인 실행 환경을 제공하게 된다.
추가적으로,
오케스트레이션을 통해 컨테이너 라이프사이클을 관리하면
CI/CD 워크플로우에 이를 통합하는 DevOps 팀을 지원할 수도 있다.
[참고] 컨테이너란?
격리된 공간에서 프로세스가 동작하는 기술.
🔽 마이크로 서비스 아키텍쳐란?
컨테이너 오케스트레이션이 하는 일
- 여러 개의 서버에 컨테이너를 배포 및 운영
- 서비스 디스커버리와 같은 기능을 이용해 서비스간 연결을 쉽게 해줌.
- 적당한 서버를 자동으로 선택해 애플리케이션을 배포해주고, 부하가 생기면 자동으로 컨테이너를 늘려준다.
- 서버에 장애가 발생하면 정상 동작중인 서버에 다시 띄워 장애를 방지해준다.
컨테이너 오케스트레이션 툴의 정의와 종류
정의 ::
컨테이너와 마이크로서비스 아키텍처를 규모에 따라 관리할 프레임워크를 제공.
종류 ::
쿠버네티스, Docker Swarm, Apache Mesos가 널리 사용됨.
쿠버네티스란?
Kubernetes
컨테이너화된 애플리케이션을 자동으로 배포, 스케일링 및 관리해주는 오픈소스 시스템
컨테이너 운영 환경 중 가장 널리 사용되는 컨테이너 오케스트레이션 중 하나의 툴.
오케스트레이션 도구 중 Docker기반의 오케스트레이션 도구
다른 오케스트레이션 툴에 비해 컨테이너 서비스 배포 및 관리에 많은 이점을 가짐.
[참고] 쿠버네티스의 탄생배경
구글은 일찌감치 컨테이너 환경을 사용해왔는데 이러한 구글의 내부컨테이너 서비스를 Borg라고 한다.
쿠버네티스는 이 Borg를 오픈소스화한 것이다. 따라서 GO언어로 구현되어 있다.
다시 말해,
쿠버네티스는 원래 Google 엔지니어들이 개발하고 설계한 오픈소스 컨테이너 오케스트레이션 툴.
2015년에 Google은 새로 설립된 클라우드 네이티브 컴퓨팅 재단에 쿠버네티스 프로젝트를 기부함.
쿠버네티스 특징
쿠버네티스가 가지는 차별화된 특징은 전세계적 스케일의 경험과 기술이 고스란히 녹아든 환경.
(Google에서 만들었었으니까!)
또한, 거대한 커뮤니티와 생태계가 존재하여 모르는 것을 찾아보면 바로바로 해결할 수 있음.
단순한 컨테이너 플랫폼을 넘어서 마이크로 서비스, 클라우드 플랫폼을 지향하고
컨테이너로 이뤄진 것들을 손쉽게 담고 관리할 수 있는 그릇역할을 함.
서버리스, CI/CD, 머신러닝 등 다양한 기능이 쿠버네티스 플랫폼 위에서 동작함.
[참고] K8s
K8s라는 표기는 K와 s 사이에 있는 8글자를 나타내는 쿠버네티스의 약식표기다.
쿠버네티스란 명칭은 키잡이(helmsman)나 파일럿을 뜻하는 그리스어에서 유래.
🔽 참고한 링크들
'기타 > 클라우드' 카테고리의 다른 글
도커(Docker)와 쿠버네티스(Kubernetes) (0) | 2021.07.07 |
---|---|
마이크로 서비스 아키텍쳐(MSA)란? (0) | 2021.07.07 |
Docker(도커)란? (0) | 2021.07.07 |
클라우드 서비스가 제공하는 서비스 모델 IaaS, PaaS, SaaS, BaaS (0) | 2021.07.01 |
Docker로 Jenkins를 설치해보자 (0) | 2021.07.01 |