sangw0804 / study-docker

0 stars 1 forks source link

3 도커 스웜 #4

Open gyeol1212 opened 3 years ago

gyeol1212 commented 3 years ago

도커 스웜은 왜 필요할까?

스웜 클래식? 도커 스웜 모드?

스웜 클래식

스웜 클래식은 이름에서 부터 느껴지는 legacy 그냥 스웜 모드만 알아보자

도커 스웜 모드

도커 스웜에서 사용하는 용어

스웜(swarm): 직역하면 떼, 군중이라는 뜻을 가지고 있습니다. 도커 1.12버전에서 스웜이 스웜 모드로 바뀌었지만 그냥 스웜이라고도 하는듯 합니다. 스웜 클러스터 자체도 스웜이라고 합니다. (스웜을 만들다. 스웜에 가입하다. = 클러스터를 만들다. 클러스터에 가입하다)

노드(node): 스웜 클러스터에 속한 도커 서버의 단위입니다. 보통 한 서버에 하나의 도커데몬만 실행하므로 서버가 곧 노드라고 이해하면 됩니다. 매니저 노드와 워커 노드가 있습니다.

매니저노드(manager node): 스웜 클러스터 상태를 관리하는 노드입니다. 매니저 노드는 곧 워커노드가 될 수 있고 스웜 명령어는 매니저 노드에서만 실행됩니다.

워커노드(worker node): 매니저 노드의 명령을 받아 컨테이너를 생성하고 상태를 체크하는 노드입니다.

서비스(service): 기본적인 배포 단위입니다. 하나의 서비스는 하나의 이미지를 기반으로 생성하고 동일한 컨테이너를 한개 이상 실행할 수 있습니다.

테스크(task): 컨테이너 배포 단위입니다. 하나의 서비스는 여러개의 테스크를 실행할 수 있고 각각의 테스크가 컨테이너를 관리합니다.

그림으로 알아보자

  1. 스웜 클러스터 구축 image

  2. 개별 노드 접근 image

    • ingress network 생성: 어떤 노드에 접근하더라도, 현재 서비스 중인 컨테이너에 접근하도록 구성
    • 로드밸런서가 활성화된 노드에 라운드 로빈 방식으로 밸런싱
  3. 매니저 노드 죽으면 큰일이다 image

    • Replica 갯수 6개로 설정
    • 알아서 골고루 분배
    • 한 두개 죽어도 정상 동작
    • 죽으면 도커 스웜이 감지하고 컨테이너 재 생성

스웜 모드에서의 볼륨