본문 바로가기

Container/Docker

[Docker] 도커 스웜 구성

728x90
반응형

도커 스웜은 두 가지 모드로 구성된다. "클래식 모드", "도커 스웜 모드"

 

클래식 모드(Classic Mode)

클래식 모드는 초기 버전의 도커 스웜으로, 독립 실행형 컨테이너와 서비스로 구성되며, 서비스 간의 통신과 네트워킹 관리가 스웜 모드보다 복잡하다.

현재는 스웜 모드가 주로 사용되며, 클래식 모드는 더 이상 활발하게 개발되지 않는다.

 

도커 스웜 모드(Docker Swarm Mode)

도커 엔진의 내장 기능으로 스웜 클러스터를 생성하고 관리하는 기능을 제공한다.

스웜 모드는 높은 수준의 추상화를 제공하며, 서비스를 생성하고 관리하는 데에 간편한 명령어와 기능을 제공한다.

스웜 모드는 컨테이너 간의 네트워킹과 서비스 간의 통신을 더욱 쉽게 관리할 수 있도록 설계되었다.

 

 

노드(Node)

노드는 클러스터를 구성하는 개별 도커 서버를 의미한다. 

 

  • 매니저 노드 (Manager Node)
    • 매니저 노드는 스웜 클러스터의 관리와 조율을 담당한다.
    • 클러스터 내에는 여러 개의 매니저 노드가 있을 수 있지만, 하나의 노드가 리더 역할을 하고 나머지는 백업 역할을 수행한다.
    • 매니저 노드는 서비스 및 태스크 스케줄링, 노드 관리, 클러스터 상태 관리 등을 수행한다.

 

  • 워커 노드 (Worker Node)
    • 워커 노드는 실제 컨테이너가 실행되는 노드이다.
    • 워커 노드는 매니저 노드에 의해 관리되며, 매니저 노드에서 할당한 작업(태스크)를 실행하고 컨테이너를 관리한다.
    • 워커 노드는 서비스의 인스턴스를 실행하고, 매니저 노드와 통신하여 상태를 보고한다.

 

 

  • Discovery
    • 클러스터 내에 있는 노드들의 식별 및 관리를 의미한다.
    • 매니저 노드가 다른 노드들을 인식하고, 클러스터의 전체 상태를 유지하며, 스케줄링 및 작업 관리를 위해 노드들 간에 통신한다.
    • 매니저 노드는 클러스터 초기화 및 관리를 통해 컨테이너화된 애플리케이션의 운영을 지원한다.

 

  • Daemon
    • 컨테이너를 실행하고 관리하는 프로세스이다.
    • 도커 데몬은 컨테이너 이미지의 다운로드, 컨테이너 생성, 컨테이너 상태 모니터링 등을 수행한다.
    • 워커 노드는 매니저 노드와 통신하여 자신의 상태와 컨테이너 실행 상태를 보고하며, 클러스터의 전체 상태를 업데이트한다.

 

 

도커 스웜 구성의 사전 준비 사항

호스트 머신 및 네트워크 설정

  • 클러스터 노드의 호스트 머신을 준비하고, 호스트 머신 간의 네트워크 통신이 가능한지 확인한다.

 

도커 설치

  • 모든 노드에 도커 엔진을 설치한다.
  • 도커는 스웜 클러스터를 구성하고 관리하는 데 필수적이다.

 

포트 확인

  • 2377/tcp: 클러스터 관리에 사용되는 포트
    • 이 포트는 매니저 노드 간의 클러스터 관리 통신에 사용됩니다.
    • 매니저 노드가 다른 매니저 노드와 클러스터 정보를 공유하고, 클러스터의 상태를 동기화하는 데 사용됩니다.
  • 7946/tcp, 7946/udp: 노드 간 통신에 사용되는 포트
    • 이 포트는 매니저 및 워커 노드 간의 통신에 사용됩니다.
    • 매니저와 워커 노드가 서로 통신하고 정보를 공유하는 데 사용됩니다.
    • 노드들 간에 데이터 및 상태 정보를 주고받는 역할을 합니다.
  • 4789/udp: 클러스터에서 사용되는 Ingress 오버레이 네트워크 트래픽에 사용되는 포트
    • 이 포트는 Ingress 네트워크 트래픽을 위한 오버레이 네트워크 통신에 사용됩니다.
    • Ingress 네트워크는 외부 트래픽이 컨테이너로 전달되는 방법을 관리합니다.
    • 외부 트래픽을 올바른 서비스로 라우팅하기 위해 사용됩니다.

 

 

도커 스웜 구성 단계

  • 1. 매니저 노드 선택 및 설정
    • 클러스터 내에 하나 이상의 매니저 노드를 선택한다.
    • 매니저 노드는 클러스터의 관리와 조율을 담당한다.
    • 도커 데몬을 매니저 노드로 설정하고, 스웜 모드를 초기화한다.

 

  • 2. 워커 노드 추가
    • 나머지 노드를 워커 노드로 추가한다.
    • 워커 노드는 컨테이너 실행 및 관리 역할을 수행한다.
    • 워커 노드가 매니저 노드에 가입할 수 있도록 토큰을 생성하여 전달한다.

 

  • 3. 스웜 클러스터 초기화
    • 매니저 노드에서 스웜 클러스터를 초기화한다.
    • 클러스터를 초기화하면 매니저 노드가 생성되고 토큰이 발급된다.

 

  • 4. 노드 확인 및 가입
    • 워커 노드는 발급된 토큰을 사용하여 클러스터에 가입합니다.
    • 워커 노드가 매니저 노드에 정상적으로 가입되었는지 확인합니다.

 

  • 5. 서비스 생성 및 관리
    • 매니저 노드에서 서비스를 생성하고 관리합니다. 서비스는 컨테이너화된 애플리케이션을 나타낸다.
    • docker service create 명령을 사용하여 서비스를 정의하고, 컨테이너를 배치한다.

 

  • 6. 스케일링 및 업데이트
    • 서비스의 인스턴스 개수를 스케일링하거나 업데이트하는 작업을 수행한다.
    • docker service scale 명령으로 서비스 인스턴스 개수를 조절하거나, docker service update 명령으로 업데이트 옵션을 지정한다.

 

  • 7. 상태 모니터링 및 유지보수
    • 클러스터의 상태와 컨테이너 상태를 모니터링하고, 필요에 따라 노드를 추가하거나 제거하는 등의 유지보수 작업을 수행한다.

 

728x90
반응형