지난 시간에 도커환경 위에서 Portainer를 설치해봤다. 

너무 간단히 설치돼서 사용자 설정이 있었으면 하는 아쉬움이 있었다. 그래서 Document를 찾아보니 역시 Portainer !!! 많은 옵션 --flag 들이 있었다. ^__^ 그래서 그중 정말 실속있는 몇가지 실습을 해보도록 하겠다. 

 

먼저, Docker Compose File을 다운받아보자 

curl -L https://downloads.portainer.io/portainer-agent-stack.yml -o portainer-agent-stack.yml

실습. portainer volume 생성 및 compose file download

다운로드 받은 Portainer Agent Compose File을 확인하고 싶다면, 다운로드 위치에 portainer-agent-stack.yml 파일을 cat 이나 vi 로 열어서 확인할수 있습니다. 아래 실습들의 기능 추가들은 Compose File 에 설정을 추가하면서 진행하겠습니다. 

실습. portainer-agent-stack.yml 파일

 

Compose File을 받아서 바로 Swarm 환경에서 Portainer를 배포해보고 싶었으나, "아차, Docer Swarm 설치를 안했다."

docker swarm init 명령어를 수행하면 swarm 매니져노드 기본설정 끝입니다. 워커노드 추가 및 연결 실패 등 발생시 조치방법은 이전 페이지에서 자세히 다뤘으니 참고하시기 바랍니다. 

2019/06/15 - [관리프로그램 potainer] - 도커 관리 프로그램 Portainer 설치

2019/06/16 - [오케스트레이션 orchestration] - 클러스터 구성 도커스웜 설치와 Portainer Docker Swarm 우분투

실습. docker swarm init

docker swarm 설치후, 준비해놓은 Compose File 로 Portainer를 배포합니다.  

docker stack deploy --compose-file=portainer-agent-stack.yml portainer

제 노트북에서는 9초 걸렸네요~ (Mac 2.3Ghz, 8GB) 

 

설치했으니, 그럼 접속해봐야 합니다. [IP]:9000 를 웹브라우져에 입력합니다. 

저처럼 노트북에 설치하신 분들 [Localhost]:9000 를 입력하면 아래와 같은 창이 뜨면 성공입니다. 

실습. Portainer 메인 화면 접속


조금 전문가스럽고 있어보이기 위해서, Logo를 변경해보겠습니다. Porainer.io 가 아니라 회사 CI 나 Logo로 변경함을 말씀드립니다. 

우선, Logo에 넣고 싶은 이미지의 링크주소를 찾습니다. 주로 구글링으로 원하는 이미지명과 svg를 입력하면 잘 찾아졌습니다. ( copy link ) 

 

실습. portainer-agent-stack.yml 파일에 logo 설정 넣기
실습. portainer-agent-stack.yml 파일 설정을 추가했으나, 실패 1 
실습. 명령어로 시도해봐도 실패2

로고 이미지 사이즈를 반드시 155 x 55 (px) 픽셀로 하여야 합니다. 먼저 이미지 사이즈를 각자 사진툴로 조정하신후, 아래 명령어를 수행합니다.

$ docker run -d -p 9000:9000 -/var/run/docker.sock:/var/run/docker.sock portainer/portainer --logo [file 경로]  

 

'관리프로그램 potainer' 카테고리의 다른 글

도커 관리 프로그램 Portainer 설치  (0) 2019.06.15
블로그 이미지

aze

,

이전 시간에 

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

,