반응형
1. 구동 중인 task에 health check 값을 줘서 실패시 마이그레이션 TEST
## docker1에서 curl <url>로 cmd를 주고 일정 시간간격으로 체크
## 주의 : cmd로 줄 명령어가 해당 컨테이너에 포함 되어 있어야 함.
[root@docker1 ~]# docker service update --health-cmd 'curl <url>' --health-interval 3s --health-retries 2 --health-timeout 2s test1
test1
overall progress: 1 out of 1 tasks
1/1: running [==================================================>]
[root@docker1 ~]# docker service inspect --pretty test1
ID: 9cojrp5cc4w5taf5dp89eze86
Name: test1
Service Mode: Replicated
...
Resources:
Networks: plo
Endpoint Mode: vip
Healthcheck:
Interval = 3s
Retries = 2
StartPeriod = 0s
Timeout = 2s
Tests:
Test = CMD-SHELL
Test = curl <url>
## 호스트 iptables에서 <url> ip 주소를 막아보았다.
[root@docker1 ~]# iptables -I FORWARD -s <url ip> -j DROP
## 서비스 프로세스 관찰
## docker1에서 "task: non-zero exit" 에러 발생으로 shutdown 되며 새로운 task를 생성
## 최종 docker3에서 성공하여 running
[root@docker1 ~]# docker service ps test1
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
k9yzy12hl3jk test1.1 centos:7 docker3 Running Running 3 minutes ago
o4tv6bla0cij \_ test1.1 centos:7 docker1 Shutdown Failed 2 minutes ago "task: non-zero exit (137): do…"
gr3irhx4xn1n \_ test1.1 centos:7 docker1 Shutdown Failed 3 minutes ago "task: non-zero exit (137): do…"
woy12w1rmisz \_ test1.1 centos:7 docker1 Shutdown Failed 3 minutes ago "task: non-zero exit (137): do…"
890tszgo0gdn \_ test1.1 centos:7 docker1 Shutdown Shutdown 6 minutes ago
## 몇번 테스트 해보지는 않았지만 docker1에서 실패하면 다른 node에서 task를 생성하는 것이 아니고 docker1에 또다른 task를 복제 하기를 몇번 반복 하였다.
## 이로인한 지연이 수분소요되어 replica 가 1인 서비스는 서비스 중단이 발생된다.
반응형
'Micro Service Architecture > Docker' 카테고리의 다른 글
17. [docker] Private Registry(Harbor) 설치 및 Portainer 연동 (0) | 2021.03.16 |
---|---|
16. [docker] Portainer 설치 (0) | 2021.03.16 |
14. [docker] Service로 CentOS, Ubuntu 등의 Base OS를 실행할때 오류 (0) | 2021.03.16 |
13. [docker] 특정 node에 서비스 task 할당 (0) | 2021.03.16 |
12. [docker] drain (0) | 2021.03.16 |