Cloud SA's This and That

[Docker] - swarm 모드 서비스 장애 복구 및 관리 본문

Docker

[Docker] - swarm 모드 서비스 장애 복구 및 관리

뽀삐누냐 2023. 7. 21. 10:16
SMALL

Docker network - overlay 테스트에 이어 만약 host2가 다운이 되었을 경우를 테스트해보았다.

 

 > myservice2 서비스를 하나 생성하니 host2에서 Running 상태 확인됨

 

 > host2 종료를 하니 myservice2가 host1에서 Running 확인됨

 > 또한 host2에서 실행중인 컨테이너 모두 host1에서 확인됨

 

 

+ host2 재부팅 테스트

 > 재부팅을 하니 host2에서 my-overlay 네트워크가 리스팅안되고 서비스는 host1에서 계속 Running 중인 것 확인 -> 재균형(rebalance) 작업은 자동으로 되지 않음

 

*이럴땐 docker service scale 명령으로 컨테이너 수를 줄이고 다시 늘리는 방식으로 서비스의 컨테이너 할당의 균형을 맞추면 됨

 

 

만약 마스터 노드는 최대한 부하를 받지 않도록 하고 싶다면 서비스를 할당받지 않게 하거나 위에서 처럼 문제가 발생한 특정 노드를 유지보수 할 때 마스터 노드에 컨테이너를 할당하지 않도록 하면 되는데

이 때 docker node update --availability [AVAILABILITY][HOSTNAME] 명령으로 노드상태를 변경할 수 있다.

 

 > pause 상태 : 스웜 매니저의 스케줄러가 컨테이너를 해당 노드에 더이상 할당하지 않음

 > 컨테이너를 더이상 할당받지 않는다는 점에서는 drain 상태와 같지만 실행 중인 컨테이너가 중지되지 않는다는 점에서 다르다.

 

 Drain 상태의 경우 해당 노드에서 실행 중이던 서비스의 컨테이너는 전부 중지되고 active 상태의 노드로 다시 할당된다.

 이 때 Drain 상태의 노드를 active 상태로 다시 변경해도 서비스의 컨테이너가 다시 분산되어 할당되지 않는다.

 

LIST

'Docker' 카테고리의 다른 글

[Docker] Network - overlay  (0) 2023.07.20