티스토리 뷰
스웜 모드는 롤링 업데이트를 자체적으로 지원하며, 매우 간단하게 사용할 수 있다. 롤링 업데이트를 테스트하기 위한 서비스를 먼저 생성해 보자. 컨테이너 생성에 사용될 이미지는 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
그리고 서비스 내의 컨테이너 목록을 확인하면 각 컨테이너의 이미지가 변경된 것을 알 수 있다.
출력 결과 중 NAME 항목이 \_myweb2.1인 컨테이너가 롤링 업데이트의 대상이 되어 삭제된 컨테이너이고, \_가 붙지 않은 컨테이너가 롤링 업데이트로 새롭게 생성된 컨테이너이다.
서비스를 생성할 때, 롤링 업데이트의 주기, 업데이트를 동시에 진행할 컨테이너의 개수, 업데이트에 실패했을 때 어떻게 할 것인지를 설정할 수 있다. 다음의 예는 각 컨테이너 레플리카를 10초 단위로 업데이트하며 업데이트 작업을 한 번에 2개의 컨테이너에 수행한다는 것을 의미한다. 만약 이를 설정하지 않으면 주기 없이 차례대로 컨테이너를 한 개씩 업데이트한다.
docker service create \
--replicas 4 \
--name myweb3 \
--update-delay 10s \
--update-parallelism 2 \
nginx:1.10
이렇게 설정한 서비스의 롤링 업데이트 설정은 docker service inspect 또는 docker inspect --type service 명령어로 확인할 수 있다.
docker service inspect --pretty myweb3
위 출력 결과 중 On failure 항목이 pause로 설정되어 있는 것을 볼 수 있는데, 이는 업데이트 도중 오류가 발생하면 롤링 업데이트를 중지하는 것을 의미하는 설정이다. 업데이트 실패에 대해 아무런 설정도 하지 않으면, On failure 항목은 pause로 설정되지만 서비스를 생성할 때 --update-failure-action 인자의 값을 continue로 지정해 업데이트 도중 오류가 발생해도 계속 롤링 업데이트를 진행하게 할 수 있다.
docker service create --name myweb4 \
--replicas 4 \
--update-failure-action continue \
nginx:1.10
Ref : 시작하세요! 도커/쿠버네티스
'DevOps > Docker' 카테고리의 다른 글
[Docker] Docker Compose로 Load Balancing 수행하기 (4) | 2023.05.07 |
---|---|
[Docker] Github Actions, Docker Hub, Swarmpit을 이용해 CI/CD 파이프라인 구축하기 (9) | 2023.01.17 |
[Docker] Docker Swarm Service (2) | 2023.01.11 |
[Docker] Docker Swarm Cluster 생성 (5) | 2023.01.09 |
- Total
- Today
- Yesterday
- fiber
- algorithm
- paging
- Database
- soft delete
- 공지
- Operating System
- GORM
- go
- network
- cs
- java
- ARP
- spring
- Effective Java
- mmu
- OS
- 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 |