* 공식 홈페이지 튜토리얼보다 아래의 링크 예제가 더 상세하다. 이 글은 아래 사이트의 (공식 홈페이지 튜토리얼 아님) 내용 중 일부를 요약 정리한 것이다.
https://imaginea.gitbooks.io/consul-devops-handbook/content/server_configuration.html
Server Configuration · Consul DevOps Handbook
imaginea.gitbooks.io
* 이 글을 먼저 읽고 설정하세요. 이어지는 글이 있습니다. :: https://ejrtks.tistory.com/5
* DarkRift 2 - 리눅스(우분투)에서 실행 및 설정 방법
** 이어지는 가이드 입니다. 이전 글을 반드시 읽으세요. [ 우분투 Cousul 설치 및 서버 구성 - Consul/Study :: Linux-Ubuntu ] https://ejrtks.tistory.com/3 * 참고 자료 : https://github.com/DarkRiftNetwork..
ejrtks.tistory.com
** 이 글은 , Unity 에셋 "DarkRift 2 - pro " 의 클러스터링 기능을 구현하기 위해 작성했다. 따라서, DarkRift 2 - Pro (현재 무료 오픈소스 - https://github.com/DarkRiftNetworking ) 에 중점을 맞춘 설명이다.
*** DarkRift 2 문서 페이지 - https://www.darkriftnetworking.com/DarkRift2/Docs/2.10.1/
DarkRift Documentation
DarkRift Documentation Welcome to DarkRift's documentation. Here you'll find all the tutorials, references and articles you need to use DarkRift to its fullest.
www.darkriftnetworking.com
**** DarkRift 2 - Advance - Clustering - 가이드https://www.darkriftnetworking.com/DarkRift2/Docs/2.10.1/advanced/clustering/index.html
Clustering
Clustering Clustering in DarkRift refers to running multiple DarkRift servers together in groups to horizontally scale and develop more modular architectures. Background Traditionally, DarkRift has been primarily scaled vertically, by adding more CPU and m
www.darkriftnetworking.com
***** DarkRift 2 - Consul Connector Example 이 페이지의 src 폴더 내에 스크립트가 필요하다(
( ConsulServerRegisteryConnector.cs - 사용하기 위해서는 Consul.dll , NewtonJson.dll 필요)
https://github.com/DarkRiftNetworking/consul-server-registry-connector
GitHub - DarkRiftNetworking/consul-server-registry-connector: DarkRift ServerRegistryConnector plugin for Consul
DarkRift ServerRegistryConnector plugin for Consul - GitHub - DarkRiftNetworking/consul-server-registry-connector: DarkRift ServerRegistryConnector plugin for Consul
github.com
1. Consul 공식 홈페이지 접속. https://www.consul.io/
Consul by HashiCorp
Consul is a service networking solution to automate network configurations, discover services, and enable secure connectivity across any cloud or runtime.
www.consul.io
공식 홈페이지에서 다운로드.
2. Downloads 메뉴 선택 후, (우분투 기준) 터미널에 다음을 입력한다. ( 2022.8월 기준 - 1.12.3 최신 버전)
wget -O- https://apt.releases.hashicorp.com/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install consul
3. 바로 아래에 Consul 바이너리 파일을 다운 받은 후 , 터미널에 다음을 입력한다. (서버 구성)
sudo mkdir /etc/consul.d/server
sudo unzip consul_1.12.3_linux_amd64
sudo mv consul /usr/local/bin
sudo rm consul_1.12.3_linux_amd64
4. vim 을 열어 /etc/consul.d/server/ 디렉토리 하위에 config.json을 작성한다. ( 작성 기준 서버가 메인 Consul )
* 미리 consul 설치 여부를 확인하고 ( consul -version ) 미리 key를 확보하고 저장해둔다.
consul keygen
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
sudo vim /etc/consul.d/server/config.json
{
"bind_addr": "abc.def.ghi.jkl",
"client_addr": "0.0.0.0",
"datacenter": "dc1",
"data_dir": "/var/consul",
"encrypt": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"log_level": "INFO",
"ui": true,
"domain": "yourName",
"enable_script_checks":true,
"dns_config":{
"enable_truncate": true,
"only_passing":true
},
"enable_syslog": true,
"enable_debug": true,
"node_name": "YourServerNode",
"server": true,
"bootstrap_expect": 3,
"leave_on_terminate": false,
"skip_leave_on_interrupt": true,
"rejoin_after_leave": true,
"retry_join": [
"abc.def.ghi.jkl:8301",
"ABC.DEF.GHI.JKL:8301",
"123.456.789.011:8301"
]
}
- 각 항목에 대한 자세한 설명은 공식 홈페이지를 참조.
* 일부 설명
- bind_addr : 현재 Consul이 실행되고 있는 인스턴스의 IP
- ui : 웹에서 현재 consul 구성 상태를 확인할 수 있다.
- node_name : 엄청나게 중요하다. 다크리프트 스크립트를 작성할 때나, 위의 config.json 모두 같은 이름을 공유해야하고,
서버 마다 각각의 고유 값을 가지면 된다.
- bootstrap_expect : 서버 총 연결 개수 - Consul 측에서는 홀수 로 구성하라고 권고한다. (데이터 손실 방지)
** config.json은 서버마다 각각 작성해야 하며, bind_addr은 각 인스턴스의 아이디를 기입해야한다.
-retry_join에 들어가는 아이피 주소는 , 가동할 모든 ip 주소들을 입력하면 된다. (공통 사항)
-encrypt는 하나로 통일해야한다. ( 메인 Consul 기준 )
-encrypt는 특히 중요한데 하나의 키젠을 클러스터에 포함할 서버들 모두 들고 있어야한다.
1. consul keygen : 공유할 키 한 개 생성
2. consul keyrings -list : 현재 설치된 키 검색
3. consul keyrings -install=키값 : 설치할 키
4. consul keyrings -use=키 값 : 설치된 키 중 하나를 선택해 프라이머리 키로 등록 (주 키 등록)
5. consul keyrings -remove=키 값 : 프라이머리 키가 아닌 키중에서 삭제
* 만약 키가 삭제되지 않는다면 임의의 다른키를 설치하고 use로 주 키를 바꿔준 뒤에 삭제하면 된다.
키젠은 여러번 가능한데 중요한 것은 모든 서버는 같은 키를 들고 있어야한다는 점이다. config.json 작성시 주의 *
* install 로 설치하고 use로 주 키를 등록하는 것을 유의하자 의외로 헷갈린다.
6. Consul을 실행한다. config.json 경로를 적어주면 됩니다.
sudo consul agent -config-dir /etc/consul.d/server
7. 웹페이지를 열어 다음 주소로 접속한다 ( 알파벳 대신 아이피 와 포트 8500 입력, 예시 - http://abc.def.ghi.jkl:8500)

(로컬 호스트 기준 - 그외 : bind_addr 아이피) 이런 화면 뜨면 성공! "ui":true가 없으면, 에러문구가 뜬다.
8. Join 명령어 실행
가장 먼저 접속한 터미널이 리더 자격을 갖는다. 이 리더의 아이피 주소로 서버들을 연결 한다.
모든 서버를 리더 서버로 (예시 consul join 192.168.111.111 ) 입력한 뒤에 , consul members로 모든 서버가 연결이 되었는지 확인한다.
네트워크 상태에 따라 left와 alive 상태를 웹에서 제공한다.만약 오류가 나거나 끊긴다면,
consul agent -config-dir /etc/consul.d/server 를 실행한 터미널에 에러 로그가 나타난다.
1 . 보통 위에서 언급한 encrpty 설정오류
2 . 이 키값이 각 서버에 문서로 작성은 되었지만 , 실제로 설치가 안됨.
3 . 잘못된 아이피 주소. 등의 원인이 있다.
이어지는 글 :: [ * DarkRift 2 - 리눅스(우분투)에서 실행 및 설정 방법 - Unity/[Asset] DarkRift 2 - Study ]
'Consul > Study :: Linux-Ubuntu' 카테고리의 다른 글
| * Consul 관련 참고 링크 (0) | 2022.08.02 |
|---|
댓글