이번에는 Docker Compose를 사용해서 WAS를 Scale out하는 상황을 만들고, Load Balancing 까지 수행하는 Application을 만들어보려고 한다. Scale Out Scale out이 필요한 Server Application을 굳이 복잡하게 만드는 것이 목적이 아니기 때문에.. 아래와 같은 간단한 코드를 작성해보자. @RestController @Slf4j public class TestController { @GetMapping("/test") public String test() { log.info("하위"); return "test"; } } "/test" URL로 요청을 받는 Spring App을 만들었다. 이제 이 서버를 띄우기 위해 아래와 같은 docker-com..
[Docker] Docker Swarm Service 스웜 모드 서비스 개념 Docker Swarm 모드를 사용하지 않고, 사용하는 도커 명령어의 제어 단위는 컨테이너이다. 예를 들어 docker run 명령어는 컨테이너를 생성하고, docker rm 명령어는 컨테이너를 삭 jojaeng2.tistory.com 이전에 Docker Swarm Service를 생성하고 사용해 봤다. Docker Swarm은 사용법이 어렵지 않아 3대의 서버에 Cluster를 쉽게 구축할 수 있었지만, 서비스가 업데이트돼야 할 때마다 매번 manager 노드로 가서 업데이트하는 작업이 귀찮다고 느껴졌고 CI/CD 파이프라인을 구축하기로 결정했다. 큰 흐름은 아래의 그림과 같다. Worker Node에 대한 설정은 이전 글에 ..
스웜 모드는 롤링 업데이트를 자체적으로 지원하며, 매우 간단하게 사용할 수 있다. 롤링 업데이트를 테스트하기 위한 서비스를 먼저 생성해 보자. 컨테이너 생성에 사용될 이미지는 nginx 1.10으로 설정했다. docker service create --name myweb2 \ --replicas 3 \ nginx:1.10 docker service update 명령어를 사용하면 생성된 서비스의 각종 설정을 변경할 수 있는데, 이미지를 업데이트하려면 update 명령어의 --image 옵션을 설정하면 된다. 아래의 명령어는 위에서 생성한 myweb2 서비스의 이미지를 nginx:1.11로 업데이트하는 명령어이다. docker service update \ --image nginx:1.11 \ myweb2 ..
스웜 모드 서비스 개념 Docker Swarm 모드를 사용하지 않고, 사용하는 도커 명령어의 제어 단위는 컨테이너이다. 예를 들어 docker run 명령어는 컨테이너를 생성하고, docker rm 명령어는 컨테이너를 삭제한다. 그러나 스웜 모드에서 제어하는 단위는 컨테이너가 아닌 '서비스(Service)'이다. 서비스는 같은 이미지에서 생성된 컨테이너의 집합이며, 서비스를 제어하면 해당 서비스 내의 컨테이너에 같은 명령이 수행된다. 서비스 내에 컨테이너는 1개 이상 존재할 수 있으며, 컨테이너들은 각 워커 노드 혹은 매니저 노드에 할당된다. 이렇게 서비스 내의 컨테이너를 '태스크(Task)'라고 부르기도 한다. 예를들어, ubuntu 이미지로 서비스를 생성하고 컨테이너의 수를 3개로 설정했다고 가정해 ..
Docker Swarm을 사용하는 이유 일반적인 도커 사용법은 대부분 하나의 호스트를 기준으로 한다. 예를 들어 docker ps 명령어는 하나의 도커 엔진에 존재하는 컨테이너의 목록을 출력하며 create, run 명령어 또한 하나의 도커 엔진에 컨테이너를 생성한다. 그러나 실제 도커를 서비스 환경에 적용한다면 문제가 생길 수 있다. 만약 하나의 호스트 머신에서 도커 엔진을 구동하다가 CPU나 메모리, 디스크 용량과 같은 자원이 부족하면 어떻게 해결할까? 가장 간단한 해결 방법은 '성능이 좋은 서버를 새로 구매'하는 방법일 것이다. 하지만, 자원의 확장성 측면이나 비용 측면에서도 이는 좋은 해답이 아니다. 자원이 부족할 때마다 성능이 좋은 서버를 구매할 수 없을 뿐만 아니라 높은 가격의 서버를 사고 유..
- Total
- Today
- Yesterday
- cs
- OS
- paging
- mmu
- Effective Java
- Operating System
- GORM
- java
- 공지
- Database
- algorithm
- soft delete
- network
- ARP
- fiber
- spring
- go
- effective
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |