![](https://habrastorage.org/files/d85/9e3/300/d859e3300f784d428f12c89e2d6d5be2.png)
æåŸã®éšåã§ã¯ãConsulãDNSãããã³ã«ãšã©ã®ããã«æ©èœãããã調ã¹ãHTTP APIã®åºæ¬çãªãªã¯ãšã¹ããåæãã䜿çšã§ãããã«ã¹ãã§ãã¯ã®çš®é¡ã確èªãããã¡ãããK / Vã¹ãã¬ãŒãžã®çšéã確èªããŸãã ãããŠæãéèŠãªããšã¯ãå®éã®æ©èœã®ããã€ãã詳ããèŠãŠããããšã§ãã
DNSã€ã³ã¿ãŒãã§ã€ã¹
Consulã¯ãDNSãããã³ã«ã䜿çšããŠã¯ãšãªã«å¿çã§ããä»»æã®DNSã¯ã©ã€ã¢ã³ããã¯ãšãªã«äœ¿çšã§ããŸãã DNSã€ã³ã¿ãŒãã§ã€ã¹ã¯ãããŒã8600ã®ããŒã«ã«ãã¹ãäžã®ã³ã³ããŒãã³ãã§äœ¿çšã§ããŸããConsulãžã®çŽæ¥èŠæ±ã«å ããŠãããããªãŸã«ããšããŠã·ã¹ãã ã«ç»é²ããåå解決ã«ééçã«äœ¿çšãããã¹ãŠã®å€éšèŠæ±ãäžæµã®ãæ¬æ ŒçãªãDNSãµãŒããŒã«ãããã·ããèŠæ±ã解決ããããšãã§ããŸããã©ã€ããŒããŸãŒã³.consulã®ã¿ã
ãã£ã¬ã¯ããªå ã«åãååã§ç°ãªãIPã¢ãã¬ã¹ãæã€è€æ°ã®ãµãŒãã¹ãããå Žåã«ããªããã£ãDNSãã©ã³ã·ã³ã°ãå®è£ ããããã«ãConsulã¯å¿çå ã®IPã¢ãã¬ã¹ãã©ã³ãã ã«æ··åããŸãã
ã¯ã©ã¹ã¿ãŒå ã§ã®ãã¡ã€ã³å解決ã®çŽæ¥èŠæ±ã«å ããŠãã«ãã¯ã¢ãããã§ããŸãã æ€çŽ¢ã¯ããµãŒãã¹ïŒãµãŒãã¹æ€çŽ¢ïŒãšã¯ã©ã¹ã¿ãŒã®ããŒãïŒããŒãæ€çŽ¢ïŒã®äž¡æ¹ã«å¯ŸããŠå®è¡ã§ããŸãã
consulã¯ã©ã¹ã¿ãŒå ã®DNSã¯ãšãªäžã®ãã¡ã€ã³åã®åœ¢åŒã¯å³å¯ã«å®çŸ©ãããŠãããå€æŽã§ããŸããã
ã¯ã©ã¹ã¿ãŒããŒã
ããã¯ãååã§ã¯ã©ã¹ã¿ãŒããŒãã®IPã¢ãã¬ã¹ãè¿ãéåžžã®DNSã¯ãšãªã§ãïŒããŒãåã¯ããšãŒãžã§ã³ãã-nodeãã©ã¡ãŒã¿ãŒã䜿çšããŠèµ·åãããšãã«èšå®ãããŸãïŒã DNSã¯ãšãªã®ãã¹ãå圢åŒãæ€èšããŠãã ããã
[node].node[.datacenter].[domain]
- [ããŒã]-å¿ é ã®éšåãããŒãåã
- .node-ããŒãæ€çŽ¢ãè¡ã£ãŠãããšããäºå®ãžã®ãã€ã³ã¿ãŒã
- [.datacenter]-ãªãã·ã§ã³ã®éšåã§ããããŒã¿ã»ã³ã¿ãŒã®ååïŒãããã«äœ¿çšã§ãããconsulã¯åãã¯ã©ã¹ã¿ãŒå ã®è€æ°ã®ããŒã¿ã»ã³ã¿ãŒãæ€åºã§ããŸããããã©ã«ãã§ã¯ãdc1ãšããååã䜿çšãããŸããããŒã¿ã»ã³ã¿ãŒã®ååãæå®ãããªãå ŽåãçŸåšã®ããŒã¿ã»ã³ã¿ãŒã䜿çšãããŸãããªã¯ãšã¹ããå®è¡ãããŠãããšãŒãžã§ã³ããèµ·åãããïŒã
- ã[ãã¡ã€ã³]-å¿
é ã®éšåã第1ã¬ãã«ã®Consulãã©ã€ããŒããã¡ã€ã³ã ããã©ã«ãã§ã¯
.consul
å€ã.consul
ãŸãã
ãããã£ãŠãnodeserviceãªã©ã®ååãæã€ããŒãã®ãã¡ã€ã³åã¯æ¬¡ã®ããã«ãªããŸãã
nodeservice.node.consul.
ã芧ã®ãšãããããŒã¿ã»ã³ã¿ãŒã®ååã¯ãããŸããããååã¯æ¬¡ã®ããã«æ§æããããšãã§ããŸãã
nodeservice.node.dc1.consul.
åãDCå ã§åãååãæã€è€æ°ã®ããŒãã¯èš±å¯ãããŸããã
ãµãŒãã¹
ååã§ãµãŒãã¹ãæ€çŽ¢ããèŠæ±ã¯ãã¯ã©ã¹ã¿ãŒã®ãã¹ãŠã®ããŒãã§å®è¡ãããŸãã ãã¹ãåã解決ãããªã¯ãšã¹ããšã¯ç°ãªãããµãŒãã¹ãæ€çŽ¢ãããªã¯ãšã¹ãã«ã¯ããå€ãã®ãªãã·ã§ã³ããããŸãã ããã«ãå®éã«ã¯ããµãŒãã¹ã®IPã¢ãã¬ã¹ïŒã€ãŸããAã¬ã³ãŒãïŒã䜿çšããŠãSRVã¬ã³ãŒãã®èŠæ±ãå®è¡ãããµãŒãã¹ãå®è¡ãããŠããããŒããèŠã€ããããšãã§ããŸãã
ããã¯ã
rls
ãšããååã®ãµãŒãã¹ãå®è¡ããŠãããã¹ãŠã®ããŒããæ€çŽ¢ããå žåçãªã¯ãšãªã®ãã
rls
ïŒ
root@511cdc9dd19b:~# dig @127.0.0.1 -p 8600 rls.service.consul. ; <<>> DiG 9.9.5-3ubuntu0.7-Ubuntu <<>> @127.0.0.1 -p 8600 rls.service.consul. ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26143 ;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;rls.service.consul. IN A ;; ANSWER SECTION: rls.service.consul. 0 IN A 172.17.0.2 rls.service.consul. 0 IN A 172.17.0.3 ;; Query time: 4 msec ;; SERVER: 127.0.0.1#8600(127.0.0.1) ;; WHEN: Thu Feb 18 07:23:00 UTC 2016 ;; MSG SIZE rcvd: 104
ãã®åçãããã¯ã©ã¹ã¿ãŒå ã«
rls
ãšããååã®ãµãŒãã¹ãå®è¡ãããŠãã2ã€ã®ããŒãããããConsul DNSã€ã³ã¿ãŒãã§ã€ã¹ããã¹ãŠã®ããŒãã®IPã¢ãã¬ã¹ãè¿ããããšã
rls
ãŸãã ãªã¯ãšã¹ããæ°åç¹°ãè¿ããšãã¬ã³ãŒããå®æçã«å Žæãå€æŽããããšãããããŸããã€ãŸããæåã«èŠã€ãã£ããµãŒãã¹ã«ã¯æåã®å Žæãå²ãåœãŠãããŠããŸããã ããã¯ãäžã§èª¬æããåçŽãªDNSãã©ã³ã·ã³ã°ã®äŸã§ãã
SRVã¬ã³ãŒãããªã¯ãšã¹ãããå Žåãçãã¯æ¬¡ã®ããã«ãªããŸãã
root@511cdc9dd19b:/# dig @127.0.0.1 -p 8600 rls.service.consul. SRV ; <<>> DiG 9.9.5-3ubuntu0.7-Ubuntu <<>> @127.0.0.1 -p 8600 rls.service.consul. SRV ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8371 ;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 2 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;rls.service.consul. IN SRV ;; ANSWER SECTION: rls.service.consul. 0 IN SRV 1 1 80 agent-two.node.dc1.consul. rls.service.consul. 0 IN SRV 1 1 80 agent-one.node.dc1.consul. ;; ADDITIONAL SECTION: agent-two.node.dc1.consul. 0 IN A 172.17.0.3 agent-one.node.dc1.consul. 0 IN A 172.17.0.2 ;; Query time: 5 msec ;; SERVER: 127.0.0.1#8600(127.0.0.1) ;; WHEN: Thu Feb 18 07:39:22 UTC 2016 ;; MSG SIZE rcvd: 244
ANSWER SECTION
ã¯ãConsulãå¿ èŠãšãã圢åŒã§ããŒãã®ãã¡ã€ã³åããªã¹ãããŸãïŒããŒãã§ã¯ãªãããµãŒãã¹ã§ã¯ãªãããšã«æ³šæããŠãã ããïŒïŒãããŠãèŠæ±ããããµãŒãã¹ãå®è¡ãããŠããããŒãã ããŒãïŒããã³ãããã«å¿ããŠãµãŒãã¹ïŒã®IPã¢ãã¬ã¹
ADDITIONAL SECTION
å¿çã®
ADDITIONAL SECTION
ãªã¹ããããŸãã
DNSã¯ãšãªã®ãµãŒãã¹åã®åœ¢åŒã¯æ¬¡ã®ããã«ãªããŸãã
[tag.][service].service[.datacenter].[domain]
- [ã¿ã°]ã¯ãªãã·ã§ã³ã®éšåã§ãã ã¿ã°ã§ãµãŒãã¹ããã£ã«ã¿ãªã³ã°ããããã«äœ¿çšãããŸãã åãååã§ç°ãªãã¿ã°ã®ãµãŒãã¹ãããå Žåãã¿ã°åãè¿œå ãããšçµæãé€å€ã§ããŸãã
- [ãµãŒãã¹]-å¿ é ã®éšåããµãŒãã¹åã
- .service-ãµãŒãã¹æ€çŽ¢ãè¡ã£ãŠãããšããäºå®ãžã®ãã€ã³ã¿ã
- [.datacenter]-ãªãã·ã§ã³ã®éšåãããŒã¿ã»ã³ã¿ãŒã®ååã
- ã[ãã¡ã€ã³]-å¿ é ã®éšåã第1ã¬ãã«ã®Consulãã©ã€ããŒããã¡ã€ã³ã
ãããã£ãŠãnginxãšããååã§webãšããååã®ã¿ã°ãæã€ãµãŒãã¹ã¯ããã¡ã€ã³ã§è¡šãããšãã§ããŸãã
web.nginx.service.consul
RFC-2782ã«åŸã£ãŠãµãŒãã¹ãæ€çŽ¢ããSRVèŠæ±
ãã¡ã€ã³åã®ãéåžžã®ãæ§æã«å ããŠãSRVã¬ã³ãŒãã®èŠæ±ãæºããããã«ãããå³æ ŒãªRFC-2782ã«ãŒã«ã«åŸã£ãŠãã¡ã€ã³åãæ§ç¯ã§ããŸãã ååã®åœ¢åŒã¯æ¬¡ã®ããã«ãªããŸãã
_service._tag.service[.datacenter].[domain]
ãµãŒãã¹åãšã¿ã°ã«ã¯ããã¬ãã£ãã¯ã¹ãšããŠã¢ã³ããŒã¹ã³ã¢ïŒ_ïŒããããŸãã ïŒã¿ã°ã®ä»£ããã«å ã®RFCã§ã¯ããããã³ã«ã®ååã䜿çšããå¿ èŠããããŸããããã¯ãèŠæ±äžã®è¡çªãé²ãããã«è¡ãããŸãïŒã
RFC-2782圢åŒã®ååã䜿çšããå Žåãnginxãšããååã®ãµãŒãã¹ãšwebãšããååã®ã¿ã°ãæã€ãµãŒãã¹ã¯æ¬¡ã®ããã«ãªããŸãã
_web._nginx.service.consul
çãã¯ããåçŽãªããªã¯ãšã¹ãã®å ŽåãšãŸã£ããåãã§ãã
root@511cdc9dd19b:/# dig @127.0.0.1 -p 8600 _rls._rails.service.consul. SRV ; <<>> DiG 9.9.5-3ubuntu0.7-Ubuntu <<>> @127.0.0.1 -p 8600 _rls._rails.service.consul. SRV ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26932 ;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 2 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;_rls._rails.service.consul. IN SRV ;; ANSWER SECTION: _rls._rails.service.consul. 0 IN SRV 1 1 80 agent-one.node.dc1.consul. _rls._rails.service.consul. 0 IN SRV 1 1 80 agent-two.node.dc1.consul. ;; ADDITIONAL SECTION: agent-one.node.dc1.consul. 0 IN A 172.17.0.2 agent-two.node.dc1.consul. 0 IN A 172.17.0.3 ;; Query time: 6 msec ;; SERVER: 127.0.0.1#8600(127.0.0.1) ;; WHEN: Thu Feb 18 07:52:59 UTC 2016 ;; MSG SIZE rcvd: 268
ããã©ã«ãã§ã¯ãConsulå ã®ãã¹ãŠã®ãã¡ã€ã³åã¯TTL = 0ã«ãªããŸããã€ãŸãããã£ãã·ã¥ãããŸããã ãããèŠããŠããå¿ èŠããããŸãã
HTTP API
HTTP REST APIã¯äž»èŠãªConsulã¯ã©ã¹ã¿ãŒç®¡çããŒã«ã§ãããéåžžã«å¹ åºãæ©èœãæäŸããŸãã APIã®ãã¬ãŒã ã¯ãŒã¯å ã§ã¯ã10åã®ãšã³ããã€ã³ããå®è£ ããããããããConsulã®ç¹å®ã®æ©èœé¢ã®æ§æãžã®ã¢ã¯ã»ã¹ãæäŸããŸãã ãã¹ãŠã®ãšããã€ã³ãã®è©³çŽ°ãªèª¬æã¯Consulã®ããã¥ã¡ã³ãã«ãããŸããAPIã®æ©èœãè¡šãããã«ãåãšããã€ã³ãã«ã€ããŠç°¡åã«èª¬æããŸãã
- acl-ã¢ã¯ã»ã¹å¶åŸ¡ã
- agent-ãšãŒãžã§ã³ã管çé äº;
- ã«ã¿ãã°-ã¯ã©ã¹ã¿ãŒããŒããšãµãŒãã¹ã®ç®¡çã
- 座æš-ãããã¯ãŒã¯åº§æšã
- ã€ãã³ã-ãŠãŒã¶ãŒã€ãã³ãã
- å¥åº·-å¯çšæ§ãã§ãã¯;
- kv-ããŒ/å€ã¹ãã¬ãŒãžã
- ã¯ãšãª-æºåãããã¯ãšãªã
- ã»ãã·ã§ã³-ã»ãã·ã§ã³;
- status-ã·ã¹ãã ã®ã¹ããŒã¿ã¹ã
acl
ååã瀺ãããã«ãaclã¯ConsulãµãŒãã¹ã®ã¢ã¯ã»ã¹å¶åŸ¡ãå¶åŸ¡ããŸãã ãµãŒãã¹ãããŒãããŠãŒã¶ãŒã€ãã³ãã«é¢ããããŒã¿ãåä¿¡ããã³å€æŽããããã®ã¢ã¯ã»ã¹ãå¶åŸ¡ããk / v-storageãžã®ã¢ã¯ã»ã¹ãå¶åŸ¡ã§ããŸãã
代ç人
ããŒã«ã«ãšãŒãžã§ã³ã管çé äºã ãã®ãšã³ããã€ã³ãã§å©çšå¯èœãªãã¹ãŠã®æäœã¯ãããŒã«ã«ãšãŒãžã§ã³ãããŒã¿ã«åœ±é¿ããŸãã ãšãŒãžã§ã³ãã®çŸåšã®ç¶æ ãã¯ã©ã¹ã¿ãŒå ã§ã®åœ¹å²ã«é¢ããæ å ±ãååŸããããããŒã«ã«ãµãŒãã¹ã®ç®¡çã«ã¢ã¯ã»ã¹ãããã§ããŸãã ããŒã«ã«ãµãŒãã¹ã«å ããããå€æŽã¯ãã¯ã©ã¹ã¿ãŒå ã®ãã¹ãŠã®ããŒããšåæãããŸãã
ã«ã¿ãã°
ã°ããŒãã«ã¬ãžã¹ããªç®¡çé äºã ããŒããšãµãŒãã¹ã®æäœã¯ããã«éäžããŠããŸãã ãã®ãšã³ããã€ã³ãå ã§ããµãŒãã¹ãç»é²ããã³ç¡å¹åã§ããŸãããµãŒãã¹ã䜿çšããå Žåã¯ã
agent
ã䜿çšããããããã®ã»ã¯ã·ã§ã³ã䜿çšããæ¹ãæãŸããã§ãã
catalog
äœæ¥
catalog
ããç°¡åã§æ確ã§ã åãšã³ããããŒã«è²¢ç®ããŸãã
ã³ãŒãã£ããŒããã
Consulã¯ã ãããã¯ãŒã¯ãã¢ã°ã©ãã£ãŒã䜿çšããŠãããã¯ãŒã¯åº§æšãèšç®ããŸãã ãããã®åº§æšã¯ãã¯ã©ã¹ã¿ãŒå ã®å¹æçãªã«ãŒããšãããšãã°ãç¹å®ã®ãµãŒãã¹ã§æãè¿ãããŒããèŠã€ãããäºæ ã®å Žåã«æãè¿ãããŒã¿ã»ã³ã¿ãŒã«åãæ¿ãããªã©ãå€ãã®äŸ¿å©ãªæ©èœãæ§ç¯ããããã«äœ¿çšãããŸãã ãã®ã»ã¯ã·ã§ã³ã®APIé¢æ°ã¯ããããã¯ãŒã¯åº§æšã®çŸåšã®ç¶æ ã«é¢ããæ å ±ãååŸããããã«ã®ã¿äœ¿çšãããŸãã
åºæ¥äº
ã«ã¹ã¿ã ã€ãã³ãã®åŠçã ã«ã¹ã¿ã ã€ãã³ãã¯ãã¯ã©ã¹ã¿ãŒå ã§ä»»æã®ã¢ã¯ã·ã§ã³ãå®è¡ããããã«äœ¿çšãããŸããããšãã°ããªãŒã±ã¹ãã¬ãŒã·ã§ã³ããã»ã¹ã®äžéšãšããŠããµãŒãã¹ã®èªåå±éãåèµ·åãç¹å®ã®ã¹ã¯ãªãããŸãã¯ãã®ä»ã®ã¢ã¯ã·ã§ã³ã®å®è¡ãªã©ã§ãã
å¥åº·
ããŒãããã³ãµãŒãã¹ã®çŸåšã®ã¹ããŒã¿ã¹ã確èªããŸãã ãã®ãšã³ããã€ã³ãã¯èªã¿åãå°çšã§ãããããŒããšãµãŒãã¹ã®çŸåšã®ç¶æ ãããã³å®è¡ããããã§ãã¯ã®ãªã¹ããè¿ããŸãã
kv
ãã®ãšã³ããã€ã³ãã«ã¯ã¡ãœããã1ã€ãããªããConsulãæäŸããåæ£ããŒ/å€ã¹ãã¬ãŒãžã®ããŒã¿ã管çããããã«äœ¿çšãããŸãã ãã®ãšã³ããã€ã³ãã®å¯äžã®ã¡ãœããã¯æ¬¡ã®ããã«ãªããŸãã
/v1/kv/[key]
åŠçã®éãã¯ãªã¯ãšã¹ãã¡ãœããã§ãã GETã¯ããŒã§å€ãè¿ããPUTã¯æ°ããå€ãä¿åãããå€ãå€ãäžæžãããDELETEã¯ã¬ã³ãŒããåé€ããŸãã
åãåãã
ã¯ãšãªç®¡çã®æºåã ãã®ãããªèŠæ±ã«ãããConsulã®æ§æã«å¯ŸããŠè€éãªæäœãå®è¡ã§ããä¿åããŠåŸã§å®è¡ã§ããŸãã ä¿åãããã¯ãšãªã«ã¯äžæã®IDãå²ãåœãŠãããŸãã ãã®å©ããåããŠãäœåºŠãæºåãããããšãªãããã€ã§ãèŠæ±ãæºããããšãã§ããŸãã
ã»ãã·ã§ã³
Consulã»ãã·ã§ã³ãšã³ãžã³ã¯ãåæ£ããã¯ãæ§ç¯ããããã«äœ¿çšãããŸãã ã»ãã·ã§ã³ã¯ããã§ãã¯å¯Ÿè±¡ã®ããŒããšk / vã¹ãã¢éã®æ¥ç¶å±€ã§ãã åã»ãã·ã§ã³ã«ã¯ååãããããªããžããªã«ä¿åã§ããŸãã ãã®ååã¯ã競åã¢ãŒãã®ããŒãããã³ãµãŒãã¹ã䜿çšããé 次ã¢ã¯ã·ã§ã³ã®äžéšãšããŠããã¯ãå®è£ ããããã«äœ¿çšãããŸãã ã»ãã·ã§ã³ã®ã¡ã«ããºã ã¯ã Consulã®ããã¥ã¡ã³ãã§èª¬æãããŠããŸã ã
ç¶æ
ãã®ãšã³ããã€ã³ãã¯ãã¯ã©ã¹ã¿ãŒã®ã¹ããŒã¿ã¹æ å ±ãååŸããããã«äœ¿çšãããŸãã ããã§ã¯ãçŸåšã®ãªãŒããŒãèŠã€ããŠããã¹ãŠã®ã¯ã©ã¹ã¿ãŒã¡ã³ããŒã«é¢ããæ å ±ãååŸã§ããŸãã
ãã«ã¹ãã§ãã¯
åã«ãDNSã䜿çšããåäžãªè² è·åæ£ã«ã€ããŠèª¬æããŸããã次ã«ãããŒããšãµãŒãã¹ã®ç¶æ ããã§ãã¯ããã¡ã«ããºã ãæ€èšããŸãã ãã«ã¹ãã§ãã¯ã¯å®æçã«å®è¡ãããæäœã§ããããã®çµæã«ããããã§ãã¯å¯Ÿè±¡ã®ã·ã¹ãã ã®ã¹ããŒã¿ã¹ãå€æã§ããŸãã å®éãããã¯ã¯ã©ã¹ã¿ãŒã®ç¶æ ãå¥å šãªç¶æ ã«ç¶æããã¢ã€ãã«ç¶æ ã®ããŒããšãµãŒãã¹ãã¯ãªãŒã³ã¢ããããå¥å šæ§å埩ã®äºå®ã«åºã¥ããŠæ©èœããããã«æ»ãèªåç£èŠã§ãã Consulã¯ãããã€ãã®ã¿ã€ãã®ãã§ãã¯ããµããŒãããŠããŸãã
- ã¹ã¯ãªãããã§ãã¯-æå®ããé »åºŠã§ç¹å®ã®ããŒãã§ç¹å®ã®ã¹ã¯ãªãããå®è¡ããŸãã çµäºã³ãŒãã«å¿ããŠïŒãŒã以å€ã®ã³ãŒãã¯ãã§ãã¯ã«åæ Œããªãã£ãããšãæå³ããŸãïŒãããŒããŸãã¯ãµãŒãã¹ããªã³ãŸãã¯ãªãã«ããŸãã
- HTTPãã§ãã¯-æå®ãããURLãããŒãããããšããå¿çã³ãŒãã«å¿ããŠããã§ãã¯ããããªããžã§ã¯ãããªã³ãŸãã¯ãªãã«ãããã§ãã¯ïŒä»»æã®2xx-ãã¹ãŠãæ£åžžã§ãToo Many Requestsã³ãŒã429ãèŠåãçæããä»ã®ã³ãŒãã¯ãšã©ãŒã瀺ããŸãïŒã
- TCPãã§ãã¯-æå®ãããã¢ãã¬ã¹ãšããŒããžã®æå®ãããééã§TCPæ¥ç¶ã確ç«ããããšãããã§ãã¯ã æ¥ç¶ã®ç¢ºç«ã®å€±æã¯ããã¹ãã倱æããããšãæå³ããŸãã
- TTLãã§ãã¯ã¯ãHTTP APIãä»ããŠå®æçã«æŽæ°ããå¿ èŠããããã§ãã¯ã§ãã ãã®æ¬è³ªã¯ãç¹å®ã®ãµãŒãã¹ãç¹å®ã®ééå ã§ãã®ãã§ãã¯ãæŽæ°ããªãã£ãå Žåãã¢ã€ãã«ãšããŠããŒã¯ãããããšã§ãã ããã¯ããã·ããã§ãã¯ã§ããã€ãŸãããµãŒãã¹èªäœãåäœããŠããããšãå®æçã«å ±åããå¿ èŠããããŸãã æå®ãããééã§ã¬ããŒããåä¿¡ãããªãã£ãå Žåããã§ãã¯ã¯äžåæ ŒãšèŠãªãããŸãã
- Docker Check-Dockerã³ã³ããã§å®è¡ãããŠãããµãŒãã¹ã確èªããŸãã Consulã¯ãDocker Exec APIã䜿çšããŠãã³ã³ããå ã§ã¹ã¯ãªãããå®è¡ã§ããŸãã ãã§ãã¯ã®çµæã¯çµäºã³ãŒãã«äŸåãããŒã以å€ã¯å€±æããŸãã
K / vã¹ãã¬ãŒãž
ConsulãæäŸããã¹ãã¬ãŒãžã¯ãåæ£ããŒãšå€ã®ããŒã¿ããŒã¹ã§ãããã¯ã©ã¹ã¿ãŒã®ä»»æã®ã¡ã³ããŒã䜿çšå¯èœãªããŒã¿ãä¿åããããã«äœ¿çšã§ããŸãïŒãã¡ããACLã«ãŒã«ã«åŸã£ãŠïŒã ãµãŒãã¹ã¯ããã®ã¹ãã¬ãŒãžã«ä»ã®ã¯ã©ã¹ã¿ãŒã¡ã³ããŒã«å¿ èŠãªããŒã¿ãä¿åã§ããŸãã ãããã¯ãæ§æãªãã·ã§ã³ã®å€ãããã€ãã®èšç®ã®çµæããŸãã¯äžèšã§ç€ºããããã«ãk / vã¹ãã¬ãŒãžã䜿çšããŠãã»ãã·ã§ã³ã¡ã«ããºã ã䜿çšããŠåæ£ããã¯ãå®è£ ã§ããŸãã k / vã¹ãã¬ãŒãžã䜿çšãããšãã¯ã©ã¹ã¿ãŒã®å¹çãåäžããæåã«ããä»å ¥ã®å²åãæžããããšãã§ããŸãã ãµãŒãã¹ã¯ãã¯ã©ã¹ã¿ãŒãä¿èšŒããã¹ãã¬ãŒãžå ã®æ å ±ã«å¿ããŠãç¶æ ã調æŽã§ããŸãã ãã®ã¹ãã¬ãŒãžã«ã¯ããµãŒãã¹ã®ããžãã¹ããžãã¯ã«é¢é£ããããŒã¿ãä¿åããªãã§ãã ããã ConsulãæäŸããã¹ãã¬ãŒãžã¯ãã¯ã©ã¹ã¿ãŒã¡ã³ããŒãåŠçããããŒã¿ã§ã¯ãªããã¯ã©ã¹ã¿ãŒã¡ã³ããŒã®ã¹ããŒã¿ã¹ã«é¢ããã¡ã¿æ å ±ãä¿åããã³é åžããããã«äœ¿çšãããŸãã
ãããã«
倧èŠæš¡ãªãããžã§ã¯ãã§åæ£ã¢ãŒããã¯ãã£ãæ§ç¯ããããã»ã¹ã§ã®çºèŠãµãŒãã¹ã®åœ¹å²ãé倧è©äŸ¡ããããšã¯å°é£ã§ãã é äºã¯ãã®åœ¹å²ã«æé©ã§ãã ãã®è£œåã¯éçºããããŸãŸã§ãããå€ãã®æçšãªæ©èœãå®è£ ãããŠããŸããããã¯ãå€æ°ã®ã³ã³ããŒãã³ããåããã·ã¹ãã ã®ç°¡åãªã¡ã³ããã³ã¹ã«å¿ èŠã§ãã ããã«ãConsulã¯Goã§èšè¿°ãããåäžã®å®è¡å¯èœãã¡ã€ã«ãšããŠé åžããããããæŽæ°ãšãµããŒãã®ããã»ã¹ãéåžžã«äŸ¿å©ã«ãªããŸãã