쿠버네티스는 컨테이너 오케스트레이션 툴의 종류 중 하나이다.
그래서 쿠버네티스의 개념을 알아보기 전에 컨테이너 오케스트레이션에 대해서 미리 개념을 익혀두자.
컨테이너 오케스트레이션 (Container Orchestration) 란,
컨테이너의 배포, 관리, 확장 ,네트워킹을 자동화하는 기술로,
복잡한 컨테이너 환경을 효과적으로 관리하기 위한 도구이다.
- 컨테이너 오케스트레이션 도입의 시작
서버를 관리한다는 것은 서버의 상태를 관리 한다는 것이다.
서버 상태 관리를 잘하기 위한 방법들을 몇가지 생각해보지만 계속해서 한계점이 있었다.
1. 문서화를 잘해보자.
> 생각보다 안되는 예외 케이스들이 생긴다
2. 서버관리 툴을 써보자 (chef, puppet labs, ansible..)
> 툴을 이용하여 설정하는 법을 알아야하고 설치된 버전과 충돌나기도함
3. 서버 하나에 VM 여러개를 띄우자
> 느리고 관리하기 불편하긴하지만 괜찮은 편이었으나, 클라우드환경에서는 사용하기 어려움
Docker 컨테이너
- 모든 실행환경을 컨테이너로 세팅하여 어디서든 동작하고, 쉽고, 효율적이다.
컨테이너의 특징
- 가상머신과 비교하여 컨테이너 생성이 쉽고 효율적
- 컨테이너 이미지를 이용한 배포와 롤백이 간단
- 언어나 프레임워크에 상관없이 애플리케이션을 동일한 방식으로 관리
- 개발 테스팅, 운영 환경은 물론 로컬 PC 와 클라우드까지 동일한 환경을 구축
- 특정 클라우드 벤더에 종속적이지 않음
따라서 컨테이너화 (containerization)를 하기 시작했다.
도커가 많아지면 관리가 여전히 어려움
롤아웃 롤백 어렵고,,,
IP 관리도 해야함..
컨테이너 오케스트레이션은 서버 관리자가 하는 일들을 대신 해주는 프로그램이다.
주요 특징
1. 클러스터
- 중앙제어(master-node)
노드를 클러스터 단위로 추상화해서 관리해야하며, 마스터 서버를 두고 관리자는 마스터 서버를 이용해 클러스터를 관리
- 네트워킹
네트워크 세팅이 잘 되어 있어야 한다.
- 노드스케일
노드가 많아지더라도 관리할 수 있어야 한다.
2. 상태관리
몇개의 서버 복제본을 만들건지 설정하고, 서버한대가 죽으면 새로운 서버를 자동으로 재구동시켜준다.
3. 스케줄링 배포관리
서버를 띄워서 여유공간이 있는 서버에 컨테이너를 배포하고, 컨테이너를 배포하기위해 새로운 서버가 필요하다면 서버를 생성해서 배포하는 스케줄링 기능을 제공한다.
4. 롤아웃 / 롤백
- 배포 버전관리
중앙에서 전체 컨테이너의 버전을 한번에 관리한다
5. 서비스 등록 및 조회
프록시서버에서 IP 재설정을 자동으로 해준다.
6. 볼륨 스토리지
각 서버마다 다른 스토리지를 연결해야할때 일일히 설정하는것보다 추상적으로 설정하여 관리할 수 있게 한다.
컨테이너 오케스트레이션 주요 툴
주요 툴은 가장 대표적인 쿠버네티스, 레드햇, 아파치 MESOS 등이 있다.
https://appfleet.com/blog/top-10-container-orchestration-tools/
'Study Log > AI Tech' 카테고리의 다른 글
[BERT] 자연언어처리(NLP) 기술 | Google이 공개한 언어 모델, BERT 이해하기 총 정리 (0) | 2021.12.07 |
---|---|
[AI기술] 자연 언어 처리 (NLP) 란? 자연어 처리가 필요한 이유. (0) | 2021.12.04 |