Cosul by HashiCorp~ 서비스·할인 발리 입문~
14708 단어 consul
@zembutsu(개인용)
https://pocketstudio.net
http://www.slideshare.net/zembutsu
Consul
이른바 Consuul
인프라 시설의 서비스 설정과 서비스 할인을 위한 도구
개방원으로 개발, 공개
https://github.com/hashicorp/consul
아키텍처
에이전트가 Consuul 서버와 통신
다른 도구와 비교
Consuul 사용
다운로드
consul
에이전트 실행 $ wget -O conzul.zip https://releases.hashicorp.com/consul/0.6.4/consul_0.6.4_linux_amd64.zip
$ unzip consul.zip
$ ./consul version
Consul v0.6.4
Consul Protocol: 3 (Understands back to: 1)
$ nohup consul agent -server \
-data-dir="/tmp/consul" \
-bootstrap-expect 1 \
-node=consul1 \
-config-dir=/etc/consul.d &
$ ./consul members
Node Address Status Type Build Protocol DC
web 172.17.0.1:8301 alive server 0.6.4 2 dc1
$ consul join <ノード> <ノード>
API$ consul members
Node Address Status Type Build Protocol DC
web.zem.jp 128.199.84.221:8301 alive server 0.5.2 2 dc1
node1.zem.jp 128.199.130.243:8301 alive client 0.5.2 2 dc1
node2.zem.jp 128.199.137.114:8301 alive client 0.5.2 2 dc1
서비스 등록 예web.json
{
"service": {
"name": "web",
"tags": [ "httpd" ],
"port": 80,
"check": {
"script": "curl localhost:80 >/dev/null 2>&1",
"interval": "10s"
}
},
"key": "web",
"handler": "/opt/consul/consul-handler.sh"
}
HTTP
$ curl http://127.0.0.1:8500/v1/catalog/nodes
[{"Node":"web.zem.jp","Address":"128.199.84.221"}]
DNS$ dig @127.0.0.1 -p 8600 web.zem.jp.node.consul
;; QUESTION SECTION:
;web.zem.jp.node.consul. IN A
;; ANSWER SECTION:
web.zem.jp.node.consul. 0 IN A 128.199.84.221
$ dig @127.0.0.1 -p 8600 web.service.consul
;; QUESTION SECTION:
;web.service.consul. IN A
;; ANSWER SECTION:
web.service.consul. 0 IN A 128.199.137.114
web.service.consul. 0 IN A 128.199.130.243
DNS$ dig @127.0.0.1 -p 8600 web.service.consul
;; QUESTION SECTION:
;web.service.consul. IN A
;; ANSWER SECTION:
web.service.consul. 0 IN A 128.199.137.114
web.service.consul. 0 IN A 128.199.130.243
$ consul watch –http-addr=127.0.0.1:8500 \
-type=service \
–service=mysql \
/opt/action.sh
service
mysql
/opt/action.sh
$ consul watch –http-addr=127.0.0.1:8500 \
-type=service \
–service=mysql \
/opt/action.sh
service
mysql
/opt/action.sh
Consul Template
host-node.tmpl
# consul nodes{{range nodes}}
{{.Address}} {{.Node}}{{end}}
템플릿 예host-node.tmpl
# consul nodes{{range nodes}}
{{.Address}} {{.Node}}{{end}}
$ consul-template -consul <Consulサーバ>:<HTTP port> \
-template "テンプレートのファイル名:出力先:コマンド(オプション)" \
-template "同上" (オプション) \
-dry (オプション)
템플릿 예host-node.tmpl
# consul nodes{{range nodes}}
{{.Address}} {{.Node}}{{end}}
$ consul-template -consul <Consulサーバ>:<HTTP port> \
-template "テンプレートのファイル名:出力先:コマンド(オプション)" \
-template "同上" (オプション) \
-dry (オプション)
/etc/hosts# consul nodes
192.168.39.3 sion.pocketstudio.net
192.168.39.11 web1
192.168.39.12 web2
nginx에 사용되는 예upstream frontend { {{range service "web"}}
server {{.Address}}:{{.Port}};{{end}}
}
server {
listen 80 default_server;
location / {
proxy_pass http://frontend;
}
}
nginx에 사용되는 예upstream frontend { {{range service "web"}}
server {{.Address}}:{{.Port}};{{end}}
}
server {
listen 80 default_server;
location / {
proxy_pass http://frontend;
}
}
$ sudo yum -y install git golang
$ export GOPATH=/usr/local/src/go
$ git clone https://github.com/hashicorp/consul-template.git
$ cd consul-templae
$ make
$ sudo cp ./bin/consul-template /usr/bin/
$ consul-template --version
consul-template v0.7.1.dev
만약 그렇게 생각한다면, 지금은 2진법이 있기 때문에 간단하게 사용할 수 있습니다!https://releases.hashicorp.com/consul-template/0.15.0/
(회의장의 알림에 감사합니다!)
돌아보다
Consul는
references
Serf/Consuul 입문~ 일을 즐겨라~
Serf/Consuul을 통한 자동 관리!~실천적인 기법을 소개합니다~:특집|gihyo.jp...기술평론사
민들레회를 처치한 Consuul Template
Serf2 Excel-serf를 실제로 적용하면 + Consul
Hashicorp 도구 모음 및 데모
Reference
이 문제에 관하여(Cosul by HashiCorp~ 서비스·할인 발리 입문~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/zembutsu/items/1e4424314a0ad98bcc40텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)