-
CentOS 7 Docker Cluster(orchestration) 환경 구성하기DOOKER 이야기 2021. 4. 7. 23:29
1. docker swarm 이란?
docker swarm 이란, 여러 docker container를 하나의 구조로 이뤄진 형태의 container로 만들어 주는 도구 입니다.
이와같은 경우를 orchestration 이라고 부르는데, 통합 된 구조의 형태를 말합니다.2. docker swarm master 생성
docker는 master node, manager node, worker node로 구성 되어 있습니다.
그중에 master node는 전반적으로 cluster를 관리하고, 스퀘줄링 서비스, swarm http api endpoint를 제공하는 작업을 합니다.
master node를 구성하는 방법은 아래와 같습니다.$ docker swarm init --advertise-addr [master node IP] ex> $ docker swarm init --advertise-addr 121.0.0.1
내용을 수행하게 되면 다음과 같은 내용이 나옵니다.
Swarm initialized: current node (bvz81updecsj6wjz393c09vti) is now a manager. To add a worker to this swarm, run the following command: docker swarm join \ --token (worker-token-value) \ 121.0.0.1:2377 <== worker node를 구성 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions. <== manager node를 구성
위 내용은 docker swarm을 만들기 위해서 초기화 내용이며, worker node를 구성하기 위해 token이 정의된 명령어가 나와 있습니다.
또한, 친절하게도 manager node를 추가하는 방법도 자세하게 나와 있습니다.3. docker swarm manager node 및 worker node 추가
master node 생성에 나와있는 내용을 토대로 worker node와 manager node를 생성해 보도록 하겠습니다.
먼저 manager node의 키를 발급받기 위해서 위에서 나온 내용을 master node에 쳐서 manager node teken값을 받습니다.$ docker swarm join-token manager To add a manager to this swarm, run the following command: docker swarm join \ --token (namager-token-value) \ 121.0.0.1:2377
실제 명령어 자체는 worker node와 manager node token 값이 다를 뿐, 구조는 같습니다.
manager node를 설정할 때, 추가적으로 알아야 할 사항이 항상 홀수의 manager node를 가져가야 한다는 것입니다.
이는 대부분의 cluster 구조의 선점 방식과 같은 이유로, 동률이 존재하는 문제를 해결하기 위해서 입니다.
manager node는 실제로 master node의 역할을 분담하며, master node의 상태가 dead일 경우, 대체 됩니다.
다음은 worker node를 생성합니다. worker node는 초기화에서 나온 token값을 적용하면 실행됩니다.$ docker swarm join \ --token (worker-token-value) \ 121.0.0.1:2377
위 내용을 토대로 7대의 node에 적용 된 구조입니다. (master node 1대, manager node 2대, worker node 4대)
$ docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION fij3odftvme79g6pvugrvnhgw * suseong1 Ready Active Reachable 18.09.3 oxik3pwrhaiuuy163xkkps0ci suseong2 Ready Active Leader 18.09.3 pfisybyypatxodybp90z178fu suseong3 Ready Active Reachable 18.09.3 op5oc5mdn0sr3idi245g3pxg9 suseong4 Ready Active 18.09.3 yaay2ct2u8xxleimghj58tccr suseong5 Ready Active 18.09.3 mzatqu658kfxq4z4fs666lhfr suseong6 Ready Active 18.09.3 r4conyyg0uesr2unr41re5r55 suseong7 Ready Active 18.09.3
4. docker swarm worker 탈퇴 방법
docker worker node가 필요없어진 경우 제거해야 합니다.
제거를 위해서는 아래와 같은 명령어를 제거하고자 하는 node에 실행해 주면 됩니다.$ docker swarm leave
만약 강제로 제거해야하는 상황이 온다면, 옵션으로 --force 을 주면 됩니다.
$ docker swarm leave --force
'DOOKER 이야기' 카테고리의 다른 글
CentOS 7 DOCKER 설치가이드 (1) 2021.04.07