'override.conf'에 해당되는 글 1건

이전 시간에 

1. 도커 설치 https://azebook.tistory.com/5

2. 포테이너 설치 https://azebook.tistory.com/6

 

이번 시간에는 GPU클러스터를 위한 도커 스웜(Docker Swarm)에 대해서 배워보겠습니다.

 

구성 설명 매니져와 워커 노드 

 

첫번째, 매니져 노드에 Swarm init 실행합니다. 

ubuntu@ubuntu:/etc$ sudo docker swarm init
Swarm initialized: current node (vzpzk56a188zeoip4oebe3urz) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-5sd968iiff90k3f4h6gtvu9g5s2pahibhvvy4fs2yun6yy90bp-6sw92gaxrbez9rx5eqn5m0m0f 114.202.170.222:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

두번째, 매니져 노드외에 워커 노드에 Swarm Join 실행합니다.

jason2@jason-zk001:~$ sudo docker swarm join --token SWMTKN-1-5sd968iiff90k3f4h6gtvu9g5s2pahibhvvy4fs2yun6yy90bp-6sw92gaxrbez9rx5eqn5m0m0f 114.202.170.222:2377
This node joined a swarm as a worker.

정말 간단하고 쉽습니다. ^_^ 이제 잘 설치됐는지 확인해 봐야겠습니다. 매니져 노드에서 Swarm 클러스터 확인 

ubuntu@ubuntu:/etc$ sudo docker node ls
ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
mh9prz8rwn5baraec5hsm474o     jason-zk001         Ready               Active                                  18.09.6
vzpzk56a188zeoip4oebe3urz *   ubuntu              Ready               Active              Leader              18.09.6

 

이제 이전시간에 설치한 포테이너에 원격노드로 연결해보자 (이전 강의 참조 : Portainer 설치 https://azebook.tistory.com/6)

우선, [관리IP]:9000 주소로 접속합니다. 그리고, Endpoint 메뉴를 선택한후, 워커노드인 Remote 를 선택합니다.

아래 화면처럼 Host이름과 IP:Port를 입력하여 Join 합니다. 

 

Swarm Join 도 수행했는데도 아래와 같이 " Failure Get ~~~ Connection refused " 에러 메시지가 나온다면, 

아래와 같이 Failure 메세지와 함께 진행이 안된다면, 2375 Port를 Enable 시켜야 한다. 

어 ! 명령어로 확인해봐도 2375 포트를 Listen하지 않네. 도커 이놈

내가 systemctl status docker 로 다 확인했다. 

ubuntu@ubuntu:/etc/systemd/system$ systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2019-06-15 14:19:16 UTC; 43min ago
     Docs: https://docs.docker.com
 Main PID: 21371 (dockerd)
    Tasks: 23
   CGroup: /system.slice/docker.service
           ├─21371 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
           └─21684 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 9000 -container-ip 172.17.0.2 -container-port 9

 

해결방법은 의외로 간단하다. 

매니져와 워커노드에 overridde.conf 파일 생성후 아래와 같이 수정해주면 됩니다. 

파일 위치 : /etc/systemd/system/docker.service.d/override.conf 

ubuntu@ubuntu:/etc/systemd/system/docker.service.d$ cat override.conf
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375

그리고, Docker daemon reload, 도커 서비스 재시작합니다. 

ubuntu@ubuntu:/etc/systemd/system/docker.service.d$ sudo systemctl daemon-reload
ubuntu@ubuntu:/etc/systemd/system/docker.service.d$ sudo systemctl restart docker.service
ubuntu@ubuntu:/etc/systemd/system/docker.service.d$ sudo systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/docker.service.d
           └─override.conf
   Active: active (running) since Sat 2019-06-15 15:11:03 UTC; 8s ago
     Docs: https://docs.docker.com
 Main PID: 23584 (dockerd)
    Tasks: 22
   CGroup: /system.slice/docker.service
           ├─23584 /usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375
           └─23735 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 9000 -container-ip 172.17.0.2 -container-port 9

정상적으로 2375 포트를 LISTEN 상태라는 것을 확인할수 있습니다. 

systemctl status docker

그리고나서 다시, Portainer 웹을 접속하여 Endpoint 메뉴에서 Add Endpoint를 선택합니다.

다음 Host Name과 [Remote IP]를 입력하면 Join 이 완료된 것을 아래와 같이 확인할수 있습니다. 

Portainer 메인화면

매니져 노드가 관리하는 정보는 /var/lib/docker/swarm 에 저장됩니다.

 

다음 시간에는 Docker Swarm 기능을 알아보겠습니다. ~

블로그 이미지

aze

,