,

현재 이 워드프레스는 qnap에 설치되어있습니다.
qnap은 당연히 스냅샷과 백업을 지원해줍니다.

최근데 제가 오라클 free tier를 통해 두대의 가상머신을 구했음에도 Qnap을 이용하는 가장 큰 이유입니다.
하지만 qnap에는 단점이 존재합니다.
재시동입니다.
qnap은 가끔이라도 os를 업데이트하게 될텐데, 이 동안 wordpress는 당연히 볼수 없습니다.
게다가 업데이트가 있으면 재시작을 두번하게 되는데, 이 때는 거의 1시간의 시간이 소요됩니다.

그래서 swarm을 이용하려고 했습니다.
오라클 가상 머신 서버와 Qnap을 멀티 매니저로 설정하여 운영하려고 했지요.
오라클 서버에서 qnap의 파일을 NFS로 마운트하는 경우 wordpress가 너무 느려질것 같아 rsync도 많이 공부했습니다.
로컬 네트워크가 아닌 만큼 NFS로 마운트 하는 경우 파일 5개를 불러오는데는 적어도 3초는 걸릴 것이라고 생각 되었기 때문입니다.
(NFS로 시도해보지는 않았습니다.)
rsync를 이용해 10초마다 연결해서 업데이트 하게 하는 스크립트까지도 구상해뒀죠.

하지만 제목처럼.. 실패했습니다.

먼저 구성하면서 참조한 글은 아래와 같습니다.
Docker Swarm 을 이용한 Container Orchestration 환경 만들기(https://tech.osci.kr/2019/02/13/59736201)

방화벽 포트 열기 및 포트포워딩

이 작업을 수행하기 전에 오라클에서 방화벽을 열어줘야 합니다.
오라클 클라우드 네트워크에서 보안 목록에서 포트를 열어줍니다.

그리고 우분투에서도 아래 명령을 수행하여 열어줍니다.
qnap에서도 수행합니다.

iptables -I INPUT 5 -p tcp --dport 2376 -j ACCEPT
iptables -I INPUT 6 -p tcp --dport 2377 -j ACCEPT
iptables -I INPUT 7 -p tcp --dport 7946 -j ACCEPT
iptables -I INPUT 8 -p udp --dport 7946 -j ACCEPT
iptables -I INPUT 9 -p udp --dport 4789 -j ACCEPT

그리고 공유기에서도 포트포워딩을 해줍니다.

multi manager로 swarm 구성하기

일단은 매니저가 하나라면 매니저가 꺼지는 경우는 당연히 접속이 불가능합니다
따라서 매니저 두개는 필수입니다.

오라클에서 init 수행 후 Qnap에서 연결

오라클 서버에서 docker swarm init --advertise-addr [Manager Node IP]를 수행합니다.
외부와 연결되는 네트워크 인터페이스가 한개라면 advertise-addr 옵션은 이용하지 않아도 됩니다.
그러면 아래와 같은 형식의 결과가 return 됩니다.

(Oracle ubuntu)

↳ docker swarm init
Swarm initialized: current node (fseohd9bxfsmf1cue3b6zymfg) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-5ebpbyneicf9ucx753hg1lfzqlci7q4bwe0l0c6j7zn34pcw7p-b63v1mzlciq0pmls1mxsa5rno 10.1.0.5:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

이 때 우리는 매니저로 추가할 예정이므로 docker swarm join-token manager를 입력합니다.

(Oracle ubuntu)

↳ docker swarm join --token 
To add a manager to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-5ebpbyneicf9ucx753hg1lfzqlci7q4bwe0l0c6j7zn34pcw7p-abwemyqd7g1wc2mjrr81w3bt0 10.1.0.5:23

docker swarm join –token <키> 10.1.0.5:2377 명령어가 출력이 되는데, 이 코드를 qnap에서 사용합니다.
10.1.0.5는 가상머신의 로컬 ip이므로 공용ip나 dns를 설정해두었다면 domain으로 바꿔서 적으면 됩니다.

오랜 시간이 걸린 후 에러가 환됩니다.
(Qnap)

docker swarm join --token <토큰> **.colah16.com:2377          
Error response from daemon: Timeout was reached before node joined. The attempt to join the swarm will continue in the background. Use the "docker info" command to see the current swarm status of your node.

하지만 장시간이 지나도 docker info 에서는 error가 확인됩니다.
(Qnap)

***
Swarm: active
 NodeID: s7w9jkn8ocdh5j7bbvisqsmh3
 Error: rpc error: code = Unknown desc = The swarm does not have a leader. It's possible that too few managers are online. Make sure more than half of the managers are online.
 Is Manager: true
 Node Address: 10.1.1.1
 Manager Addresses:
  10.1.1.1:2377
  193.122.126.159:2377
***

Qnap에서 init 후 Oracle vm에서 연결

그래서 반대로 시도해보았습니다.
Qnap에서 docker swarm init --advertise-addr [Manager Node IP]를 수행하고, oracle에서 연결하는 것이지요.
위와 같은 과정이므로 Oracle에서 Join을 시도한 것부터 작성하겠습니다.

(Oracle ubuntu)

↳ docker swarm join --token <토큰> **.colah16.com:2377
This node joined a swarm as a manager.

와우! Joined as a manager!
하지만 이게 성공했으면 왜 실패기였겠어요..ㅠㅠ

(Oracle ubuntu)

↳ docker node inspect self                                                                                                            
[]
Status: Error response from daemon: rpc error: code = DeadlineExceeded desc = context deadline exceeded, Code: 1

자료 조사

위 오류 내용을 기준으로 검색해보니 프록시를 사용 중인 경우 저런 현상이 일어난다고 합니다.
하지만 아쉽게도 큐냅도 우분투도 프록시는 이용중이지 않습니다.
방화벽과 포트포워딩도 열어주었구요.

나중에 시간 나면 다시 찾아보고, 성공하면 성공기를 올리겠습니다.

영 안되면 wordpress를 Oracle에 올리고 rsync로 qnap에 백업, qanp으로 구글 드라이브에 백업하는 방법을 이용하는 것도 고려해봐야겠습니다.ㅠㅠ

Ads Blocker Image Powered by Code Help Pro

광고 차단 감지됨!

닫기를 누르면 이용하실 수 있지만, 광고 차단은 해제해주시면 좋겠습니다.
Powered By
100% Free SEO Tools - Tool Kits PRO