-
[Docker] Docker Swarm 클러스터 구축Docker & Kubernetes 2022. 12. 26. 16:09
* 시나리오
: Master-node, Worker-node 2대로 구성
: CentOS7 환경에서 진행
* 공통 셋업 사항
: CentOS7 설치
: 클러스터간 통신을 위해 사용되는 포트 방화벽 해제
firewall-cmd --permanent --zone=public --add-port=2377/tcp firewall-cmd --permanent --zone=public --add-port=7946/tcp firewall-cmd --permanent --zone=public --add-port=7946/udp firewall-cmd --permanent --zone=public --add-port=4789/tcp firewall-cmd --permanent --zone=public --add-port=4789/udp firewall-cmd --reload
: Docker 설치
yum install -y docker systemctl start docker systemctl enable docker
* Master Node 초기화
: 아래 구문을 마스터노드에서 실행하면 워커노드가 조인할 수 있는 조인 커맨드가 자동 생성되어 복사 & 붙여넣기를 워커노드에서 해주면 된다.
docker swarm init --advertise-addr [마스터노드ip][:포트(안쓰면 default 2333)] ex) docker swarm init --advertise-addr 172.30.1.100
# 토큰을 분실하더라도 아래 커맨드로 재생성 가능 docker swarm join-token worker
* Worker Node Join
: 위에서 생성된 조인 커맨드 실행
# 예시 docker swarm join --token SWMTKN-1-17a8g5y4jnm1ch4mzrdo22p7w97hvkqupej4k6b8sawqbjebqn-ayoihym0yeewvz83zn3hvo815 172.30.1.100:2377
* 매니저 노드 추가
: 실제 운영환경에서 매니저 노드가 죽을 수 있으므로 가용성 측면에서 매니저 노드를 여럿 셋팅 할 수 있다.
: 아래 구문을 마스터 노드에서 실행 하고 나온 결과를 매니저로 만들 노드에서 실행 하면 된다.
docker swarm join-token manager
* 노드 목록 확인
docker node ls
* 서비스 생성 및 체크
: 서비스 생성
※ --with-registry-auth 옵션 : 매니저 노드에서 허브에 로그인 되어 있다면 워커 노드에서 로그인 되어 있지 않아도 허브 레지스크리에서 이미지를 받아올 수 있다.
docker service create --name my-web --publish published=80,target=80 --replicas 1 nginx:latest
: 서비스 체크
※ 각 노드에서 서비스를 붙어보면 서비스가 배포되지 않은 노드에서도 서비스가 실행되는것을 볼 수 있다.
※ 서비스와 관련된 커맨드는 꼭! 매니저노드에서 실행해야 먹힌다.
docker service ls # 위에서 확인한 이미지 명을 넣어서 아래 커맨드를 입력하면 어느 노드에서 실행중인지 상세히 알수 있다. docker service ps my-web
: 실행중인 노드에서 서비스를 상세히 체크 하기
docker ps --format "table {{.Names}}\t{{.Status}}"
: 서비스 삭제
docker service rm my-web
* 서비스 스케일링
docker service scale my-web=2
* 참고자료
https://yoo11052.tistory.com/183
[Docker] Docker Swarm Cluster 구축하기(Swarm Mode)
이번 포스팅에서는 도커 스웜 모드 기반의 클러스터를 구축하는 법에 대해 알아보도록 하겠습니다. 도커 스웜 모드 클러스터 구축 아래 예제들은 3개의 AWS EC2(Amazon Linux 2) 인스턴스를 사용하여
yoo11052.tistory.com
[Docker 기본(7/8)] Docker Swarm의 구조와 Service 배포하기
이제는 구성된 Docker Swarm에 Application을 배포해보겠습니다. Docker Swarm에 Application Image를 배포하기 위해선, Service를 생성해야 합니다. Service는 큰 Application Context…
medium.com
https://team-platform.tistory.com/51
Docker : 도커스웜 클러스터 구축 편
지난 Docker : 컨테이너 오케스트레이션 개요 편에서는 한 서비스가 점차 확장되면서 컨테이너 증가에 따른 관리의 필요성과 다수의 컨테이너를 효과적으로 다룰 수 있는 컨테이너 오케스트레이
team-platform.tistory.com
'Docker & Kubernetes' 카테고리의 다른 글
[Docker] Docker 로그 관리 (0) 2023.03.15 [Docker] GlusterFS volume-plugin 구성 (feat.CentOS7) (0) 2023.02.08 [Kubernetes] Dashboard 셋업 및 외부 접속 설정 (1) 2022.11.23 [Kubernetes] 클러스터 환경 구축 (0) 2022.11.04 [Docker] Code-server 구축 (0) 2022.11.04