Container Orchestration - 1. Container Orchestration

2020-02-26

Index


  1. Docker
    1. Docker 개념
    2. Docker Install
    3. Docker Command
    4. Docker Example
    5. Image 만들기
    6. Dockerfile
    7. Docker Compose
    8. Image 저장소

  1. Container Orchestration
    1. Container Orchestration 이란
    2. kubernetes(1)
    3. kubernetes(2)
    4. kubernetes install
    5. kubernetes ui
    6. kubernetes를 이용해 배포해보기
    7. kubectl CLI

  1. Provisioning
    1. Provisioning이란
    2. Ansible
    3. Ansible을 이용해 kubernetes cluster 생성하기

목표

지금까지 Docker에 대해 가볍게 알아봤습니다.
Docker는 결국 Container를 사용하기 위한 기술입니다.
Cloud Server 혹은 물리서버에 Container를 통한 격리된 Application 환경 구축을 하다보면 Container를 관리해야 하는 관리 Point가 발생합니다.

Container Orchestration 이란 Container들을 관리하는 것을 말합니다.

Container Orchestration 이 하는일

Container Orchestration Tool

컨테이너 오케스트레이션 툴로 가장 많이 사용되는건 아래와 같습니다.

image01

Docker Swarm

https://docs.docker.com/engine/swarm/
Docker Swarm은 최초 Docker와 별개로 개발되었으나 Docker 1.12버전부터 Docker Swarm모드로 Docker에 포함되었습니다
Swarm은 컨테이너 자체의 능력을 넘어서서 컨테이너화 된 응용 프로그램의 확장, 네트워킹, 보안 유지 및 유지 관리를위한 많은 도구를 제공합니다.

Kubernetes

https://kubernetes.io/ko/docs/concepts/overview/what-is-kubernetes/
쿠버네티스는 구글에서 개발한 2014년 오픈소스화 된 프로젝트입니다.
15년에 걸친 구글의 대규모 운영 워크로드 운영 경험과 노하우가 축적된 프로젝트로 컨테이너 중심의 관리환경을 제공합니다.

Apache MESOS

http://mesos.apache.org/documentation/latest/
아파치 메소스는 Twitter, Apple, Uber, Netflix 등 대형 서비스를 운영하고 있는 기업에서 다수 채택 되었으며 마이크로서비스와 빅데이터, 실시간 분석, 엘라스틱 스케일링 기능 등을 제공하고 있습니다.

Docker Swarm Kubernetes Apache Mesos
- 중소형 프로젝트일 경우
- 관리할 노드가 적고 많은 기능이 필요하지 않을때
- 대형 프로젝트일 경우
- 세밀하고 다양한 설정이 필요때
- 대형 프로젝트일 경우
- 검증된 오케스트레이션 툴을 찾고있때

어떤걸 선택해야 할까?

당연히 목적에 맞게 선택해야 합니다.
단, 그래도 선택이 어려울땐 많이 사용되는걸 따라가면 됩니다. 갓구글을 따라 쿠버네티스에 대해 알아보겠습니다.

image02

참고

https://team-platform.tistory.com/48?category=829379