Coding Planet
[Docker Swarm - 9 ] 장애 대응 테스트 본문
반응형
테스트 준비
- 모든 노드에서 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 내의 파일을 읽거나 새로운 파일을 생성하여 테스트할 수 있다.
- 모든 태스크는 현재 Running 상태로, 서비스가 정상적으로 작동 중이다.
- nginx-service.2 태스크는 원래 worknode1-VirtualBox에서 실행되고 있었지만, 테스트를 위해 vm을 내렸기 때문에managernode-VirtualBox로 재배포되었다. 이는 Docker Swarm의 자동 장애 복구 및 태스크 재스케줄링 기능을 보여준다.
- 이제 managernode-VirtualBox 노드에서 두 개의 태스크가 실행 중이며, worknode2-VirtualBox에서 하나의 태스크가 실행 중이다. worknode1-VirtualBox에서는 현재 실행 중인 태스크가 없다.
반응형
Comments