도커 스웜 모드 서비스

정원식·2023년 12월 16일

Docker Swarm 정리

목록 보기
3/7

22년 2월에 작성한 글입니다.

서비스

  • 스웜 모드에서 제어하는 단위는 컨테이너가 아닌 서비스
  • 서비스 는 같은 이미지에서 생성된 컨테이너의 집합
  • 하나의 서비스에 명령시, 해당 컨테이너들에게 명령 전달
  • 서비스 내에 컨테이너는 1개 이상 존재 할수 있으며, 워커노드에게 할당됨 (매니저 노드도 워커노드의 역할을 수행)
  • 이러한 컨테이너들을 태스크 라고 함

태스크

  • 서비스 생성시, 스웜 스케줄러는 각 노드에 태스크를 분산시켜 할당함
  • 이처럼 함께 생성된 태스크를 레플리카라고 함
  • 정해진 레플리카 수만큼 태스크가 스웜 클러스터내에 존재하지 않을시 스웜에서는 다른 노드에 같은 태스크 실행

명령어

서비스 생성

docker service create [OPTIONS] IMAGE [COMMAND] [ARG...]
  • --name: 서비스 이름
  • --replicas: 레플리카 갯수
  • --mode: replicated|global|replicated-job|global-job (default: replicated)
    • replicated: 레플리카 셋의 수 유지
    • global: 모든 노드에 하나씩 생성
  • --with-registry-auth: private registry 사용하는 경우

서비스 목록

docker service ls [OPTIONS]

서비스 상태

docker service ps [OPTIONS] SERVICE [SERVICE...]
  • --no-trunc: 중간에 길이가 길어도 자르지 않음
  • --format: 사용자가 지정한 포맷으로 노출

서비스 삭제

docker service rm SERVICE [SERVICE...]

서비스 롤링 업데이트

docker service update [OPTIONS] SERVICE
  • --image: 이미지
  • --update-delay: 업데이트 간격
  • --update-parallelism: 업데이트 동시 진행 태스크 개수
  • --update-failure-action: pause|continue|rollback

서비스 롤백

docker service rollback [OPTIONS] SERVICE

서비스 디스커버리

  • 스웜 모드는 자체적으로 서비스 디스커버리 기능 제공
  • 서비스 디스커버리는 같은 오버레이 네트워크를 사용하는 서비스에 대해 작동
    • VIP 방식과 DNS RR 방식 이용가능
      • VIP: Client -> VIP -> 포워딩 (A-1, A-2, A-3)
      • DNS RR: Client -> DNS -> Client -> A-1

Reference

profile
매일매일 성장하고 싶은 백엔드 개발자입니다.

0개의 댓글