1. 개요

<Docker 가상 환경 구축 입문>의 <Chapter 9-1. Docker Swarm의 개요>를 읽고 정리한 내용으로,

Docker Swarm의 개요와 특징에 대해 설명합니다.


2. Swarm Mode

  • 여러 대의 서버로 구성된 클러스터를 관리하는 기능과, 오케스트레이션 기능을 제공.
  • 클러스터란, 여러 대의 머신을 네트워크로 연결하여 하나의 시스템으로서 관리하는 기능.
  • 오케스트레이션이란, 여러대의 머신을 자동으로 관리하는 기능.
  • Docker Swarm의 이전 버전인 Standalone Swarm과는 분명히 구분되는 것이기 때문에 유의해서 사용해야 함.
  • Standalone Swarm과 다르게, 외부의 Key-Value store를 구축할 필요 없이,
    Swarm에 내장된 기능을 사용하므로, 비교적 간단하게 클러스터 구성을 할 수 있음.

3. Swarm Mode 클러스터 구성

  • 3개의 Docker Host로 클러스터를 구성한 경우의 구조

     
  • Swarm에서는 클러스터를 구성하는 Docker Host를 노드라고 하며, 노드에는 매니저 노드와 워커 노드가 있음.
  • 매니저 노드는 Swarm 클러스터 내의 노드를 관리하는 기능을 함. 워커 노드의 기능도 수행.
  • 워커 노드는 주로 컨테이너를 실행하는 기능을 함.
  • 워커 노드가 다운되면 매니저 노드가 클러스터 내 상황을 체크하여, 다운된 컨테이너를 다른 워커 노드에서 기동함.

     
  • Swarm mode에서는 클러스터를 구성하면, 자동적으로 Ingress라고 하는 오버레이 네트워크가 생성되며, 로드밸런싱 기능을 수행.

4. Swarm Mode의 오케스트레이션 기능

  • 오케스트레이션 기능으로 다음과 같은 항목이 있음.
    • 스케쥴링: 수동으로 각 노드에서 컨테이너를 기동할 필요 없이, 미리 정의한 설정에 따라 컨테이너를 각 워커노드에 배포함.
    • 롤링 업데이트: 기동되어 있는 컨테이너의 이미지를 업데이트할 때, 각 컨테이너를 차례대로 업데이트함.
    • 스케일링: 클러스터 내에 기동되어 있는 컨테이너 수를 조정하는 기능.
    • 로깅: 다른 노드에서 실행중인 서비스에 대한 로그까지 확인할 수 있음.