도커 스웜 모드 노드

정원식·2023년 12월 16일

Docker Swarm 정리

목록 보기
7/7

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

노드 AVAILABILITY 변경하기

명령어

docker node update \
--availability <active> \
NODE

종류

  • active: 활성 상태
  • pause: 더이상 태스크를 할당받지 않음
  • drain: 더이상 태스크를 할당받지 않음 & 해당 노드에서 실행중인 노드 정지

노드 라벨 변경

노드 라벨 추가

docker node update \
--label-add <label> \
NODE

노드 라벨 삭제

docker node update \
--label-rm <label> \
NODE

라벨 확인

docker node inspect --pretty NODE

서비스 제약 설정

docker service create --constraint '제약사항'

제약 사항

  • == 또는 != 사용하여 매치 조건 생성
노드 attribute설명예시
node.idNode IDnode.id==2ivku8v2gvtg4
node.hostnameNode hostnamenode.hostname!=node-2
node.roleNode role (manager/worker)node.role==manager
node.platform.osNode operating systemnode.platform.os==windows
node.platform.archNode architecturenode.platform.arch==x86_64
node.labelsUser-defined node labelsnode.labels.security==high
engine.labelsDocker Engine’s labels
도커 데몬 실행 옵션 변경 필요
engine.labels.operatingsystem==ubuntu-14.04

예시

  • 특정 노드에 centos 라벨을 생성한뒤 아래처럼 서비스 생성시, 5개 태스크가 전부 해당 노드에 설정된것을 확인할수 있음
docker service create --name label_test \
--constraint 'node.labels.os == centos' \
--replicas=5 \
ubuntu:14.04 \
ping docker.com

Reference

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

0개의 댓글