Coding Planet

[Docker Swarm - 9 ] 장애 대응 테스트 본문

카테고리 없음

[Docker Swarm - 9 ] 장애 대응 테스트

jhj.sharon 2024. 3. 14. 16:19
반응형

 

테스트 준비

  • 모든 노드에서 GlusterFS 볼륨이 마운트되어 있고, /mnt/glustervolume 경로에 액세스할 수 있는지 확인한다.
  • Nginx 서비스가 Docker Swarm 클러스터에서 실행 중이며, 모든 레플리카가 정상적으로 작동하고 있는지 확인한다. sudo docker service ls 명령어로 서비스 상태를 확인할 수 있다.

 

 

장애 시뮬레이션

  • 클러스터 내의 워커 노드 중 하나를 선택하여 장애를 시뮬레이션한다. 예를 들어, worknode1을 선택했다고 가정해보자
  • 선택한 노드(worknode1)에서 네트워크 연결을 임시로 끊거나, 가상 머신을 사용하는 경우 가상 머신을 중지시키는 방법으로 의도적으로 장애를 발생시킬 수 있다. vm을 중단시켰다.

 

서비스 가용성 검증

  • worknode1 이외의 노드(예: managernode, worknode2)에서 Nginx 서비스에 접근하여 서비스 가용성을 확인한다. curl http://192.168.0.66 (또는 다른 노드의 IP 주소) 명령어를 사용하여 Nginx 서비스가 여전히 응답하는지 확인한다.
  • GlusterFS 볼륨의 데이터가 여전히 다른 노드에서 접근 가능한지 확인합니다. 예를 들어, /mnt/glustervolume 내의 파일을 읽거나 새로운 파일을 생성하여 테스트할 수 있다.

vm을 내린 워커노드1의 ip는 접근 불가
다른 노드는 정상적으로 가동 중이다.

 

  • 모든 태스크는 현재 Running 상태로, 서비스가 정상적으로 작동 중이다.
  • nginx-service.2 태스크는 원래 worknode1-VirtualBox에서 실행되고 있었지만, 테스트를 위해 vm을 내렸기 때문에managernode-VirtualBox로 재배포되었다. 이는 Docker Swarm의 자동 장애 복구 및 태스크 재스케줄링 기능을 보여준다.
  • 이제 managernode-VirtualBox 노드에서 두 개의 태스크가 실행 중이며, worknode2-VirtualBox에서 하나의 태스크가 실행 중이다. worknode1-VirtualBox에서는 현재 실행 중인 태스크가 없다.

 

반응형
Comments