본사(seoul)와 지사(busan)는 VyOS로 오버레이 네트워크가 구성되어있다.
본사에는 manager 노드, 지사에는 worker1, worker2 노드가 존재한다.
현재 우리 회사는 두가지 방식의 가상환경을 구성하여 고객에게 제공하고자한다.
단, worker1, worker2에 존재하는 모든 VM의 이미지들은 manager 노드의 LVM 디스크(20GB,30GB,50GB)에 존재하여 마이그레이션 가능해야하며 worker1 및 worker2에 존재하는 VM들은 서로 통신이 가능해야한다.
답안) vm을 2개 생성하여 서로 통신 되는 스샷.
선택2-1) Dockerfile 작성을 통해 centos7을 기반으로 하는 tomcat과 mysql의 이미지를 작성. 단일 yml 파일로 2 tier 구성하여 오케스트레이션 되도록 구성하시오. (단, DB는 manager에 존재)
답안) Dockerfile 및 yml 파일, docker stack ps 스샷
선택2-2) Dockerfile 작성을 통해 centos7을 기반으로 하는 httpd과 tomcat과 mysql의 이미지를 작성. 단일 yml 파일로 3tier를 구성하여 오케스트레이션 되도록 구성하시오.
답안) Dockerfile 및 yml 파일, docker stack ps 스샷
(단, DB는 manager에 존재)
2-2. portainer 및 visualizer를 단일 yml 파일로 작성하여 오케스트레이션 환경을 모니터링 및 관리할 수 있는 환경을 구성하시오.
답안) yml 파일, docker stack ps 스샷
2-3. wordpress 는 워커노드들에, mysql은 manager노드에 존재하도록 단일 yml을 작성하시오.
vi mon.yml
****
<mon.yml>
services:
visual:
image: dockersamples/visualizer
ports:
- "8081:8080"
volumes:
-/var/run/docker.sock:/var/run/docker.sock
deploy:
mode: global
placement:
constraints: [node.role == manager]
networks:
- web
portainer:
image: portainer/portainer
ports:
- "9000:9000"
deploy:
replicas: 1
placement:
constraints: [node.role == manager]
volumes:
- /var/run/docker.sock:/var/run/docker.sock
networks:
web:
external: true
portainer
****