Docker Stack
- 현재까지 코드의 문제는 컨테이너를 매번 새로 설정해줘야 한다는 점.
- 내가 설정해야할 컨테이너가 너무 많다는 점(이후로 더 많아질 수 있다는 점)
해결해 보자. -> 모든 세팅을 Docker Stack을 통해 관리해보자
- (추가) 컨테이너 중 하나가 종료되었을 경우 Reboot이 필요한데 누가 할것인가? -> 역시 Stack에서 관리가능
Docker Swarm
현재 Docker의 시스템 구성은 아래와 같다
------ Docker --------------
| Nginx + django + mariadb |
----------------------------
이걸 하나의 Node라 하며 시스템이 커질 경우 여러 Node가 존재할 필요가 있다.
------ Docker --------------
| Nginx + django + mariadb |
----------------------------
------ Docker --------------
| Nginx + django + mariadb |
----------------------------
------ Docker --------------
| Nginx + django + mariadb |
----------------------------
...
여러 Node를 묶어서 관리하는 기술을 Swarm이라 한다.
참고) 여러 Node를 묶는 것을 Clustering이라 한다.
Service
추가적으로 컴퓨팅 파워 혹은 다른 이유에 따라 하나의 노드를 아래와 같이 관리할 수 있는데
------ Docker ------------------------
| Nginx + (django + django) + mariadb |
--------------------------------------
django의 컴퓨팅 파워가 필요해 django를 2개로 구성 -> Node를 하나 더 추가해서 django를 추가가능
------ Docker ------------------------
| Nginx + django + mariadb |
--------------------------------------
+
- Docker -
| django |
----------
이때 django를 묶는 단위를 Service라 한다.
이런 여러 Node를 관리하는 기술이 여러개인데
- Docker Swarm
- Kubernetes
- Apache …
Docker Swarm를 쓰는 이유는 쉽다… ㅎ~