ã¹ã¯ãŒã¿ãŒã«ä¹ã£ã女ã®åã å³
Kubernetes ã¯ãã³ã³ãã ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ã«ããã 300 ãã³ãã®ãŽãªã©ã§ãã äžçæ倧çŽã®ã³ã³ãã ã·ã¹ãã ã§åäœããŸãããé«äŸ¡ã§ãã
å°èŠæš¡ããŒã ã®å Žåã¯ç¹ã«è²»çšãããããå€ãã®ãµããŒãæéãšæ¥ãªåŠç¿æ²ç·ãå¿
èŠã«ãªããŸãã ãã㯠XNUMX 人ã®ããŒã ã«ãšã£ãŠãªãŒããŒãããã倧ããããŸãã ããã§ç§ãã¡ã¯ä»£æ¿æ¡ãæ¢ãå§ããŸãã - ãããŠã
ãªãã§ããã
ç§ãã¡ã®ããŒã ã¯ãGo ã§æžãããã¡ããªã¯ã¹ã® API ãšã³ããã€ã³ããPrometheus ãšã¯ã¹ããŒããLogstash ãªã©ã®ãã° ããŒãµãŒãããã³
ãŸããã³ã³ãã ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ã®èŠä»¶ã®ãªã¹ãããå§ããŸããã
- å€æ°ã®ãã·ã³äžã§äžé£ã®ãµãŒãã¹ãå®è¡ããã
- å®è¡äžã®ãµãŒãã¹ã®æŠèŠã
- ãµãŒãã¹éã®ãªã³ã¯ã
- ãµãŒãã¹ãããŠã³ããå Žåã¯èªåçã«åèµ·åããŸãã
- å°äººæ°ã®ããŒã ã«ããã€ã³ãã©ã¡ã³ããã³ã¹ã
ããã«ã次ã®ããšã¯äŸ¿å©ã§ãããå¿ é ã®è¿œå ã§ã¯ãããŸããã
- ãã·ã³ã®æ©èœã«åºã¥ããŠã¿ã°ä»ãããŸã (ããšãã°ãè² è·ã®é«ã I/O ãµãŒãã¹çšã®é«éãã£ã¹ã¯ãåãããã·ã³ã«ã¿ã°ä»ãããŸã)ã
- ãªãŒã±ã¹ãã¬ãŒã¿ãŒããç¬ç«ããŠãµãŒãã¹ãå®è¡ããæ©èœ (ããšãã°ãéçºäž)ã
- æ§æãšç§å¯ãå ±æããããã®å ±éã®å Žæã
- ã¡ããªã¯ã¹ãšãã°ã®ãšã³ããã€ã³ãã
Kubernetes ãåœç€Ÿã«é©ããªãçç±
Kubernetes ã䜿çšããŠãããã¿ã€ããäœæããéãç§ãã¡ã¯ã倧ããäŸåããŠããããžãã¯ã®è€éãªã¬ã€ã€ãŒãè¿œå ããŠããããšã«æ°ã¥ããŸããã
äŸãšããŠãKubernetes ã¯çµã¿èŸŒã¿ã®ãµãŒãã¹æ§æããµããŒãããŠããŸãã
ããã«ãKubernetes ãšã³ã·ã¹ãã ã¯æ¥éã«é²åããŠããŸãã ãã¹ã ãã©ã¯ãã£ã¹ãšææ°ã®ããŒã«ãåžžã«ææ°ã®ç¶æ ã«ä¿ã€ã«ã¯ãå€ãã®æéãšåŽåãããããŸãã Kubectlãminikubeãkubeadmãhelmãtilerãkopsãoc - ãªã¹ãã¯æ°ãåããªãã»ã©ãããŸãã éå§æã«ãããã®ããŒã«ã®ãã¹ãŠãå¿ èŠãªããã§ã¯ãããŸããããäœãå¿ èŠã«ãªããããããªãããããã¹ãŠãèªèããŠããå¿ èŠããããŸãã ãã®ãããåŠç¿æ²ç·ã¯éåžžã«æ¥ã«ãªããŸãã
Kubernetes ã䜿çšããå Žå
åœç€Ÿã§ã¯å€ãã®äººã Kubernetes ã䜿çšããŠãããKubernetes ã«éåžžã«æºè¶³ããŠããŸãã ãããã®ã€ã³ã¹ã¿ã³ã¹ã¯ããµããŒããããªãœãŒã¹ãåãã Google ãŸã㯠Amazon ã«ãã£ãŠç®¡çãããŸãã
Kubernetesã«ã¯ä»å±ããŠããŸã
- 詳现
æš©å©ç®¡ç . ã«ã¹ã¿ã ã³ã³ãããŒã©ãŒ ã¯ã©ã¹ã¿ãŒã«ããžãã¯ãè¿œå ããŸãã ãããã¯ãKubernetes API ãšéä¿¡ããåãªãããã°ã©ã ã§ããèªåã¹ã±ãŒãªã³ã° ïŒ Kubernetes ã¯ããµãŒãã¹ ã¡ããªã¯ã¹ã䜿çšããŠãæåä»å ¥ãå¿ èŠãšããã«ãªã³ããã³ãã§ãµãŒãã¹ãæ¡åŒµã§ããŸãã
åé¡ã¯ãããããã¹ãŠã®æ©èœãæ¬åœã«å¿
èŠãã©ããã§ãã æœè±¡åã ãã«äŸåããããšã¯ã§ããŸããã
ç§ãã¡ã®ããŒã ã¯ã»ãšãã©ã®ãµãŒãã¹ããªã¢ãŒãã§æäŸããŠãããã (ã¡ã€ã³ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã«å¯æ¥ã«æ¥ç¶ããŠãããã)ãç¬èªã® Kubernetes ã¯ã©ã¹ã¿ãŒãæ§ç¯ããããšã¯æãŸãããããŸããã§ããã ç§ãã¡ã¯ãã ãµãŒãã¹ãæäŸãããã£ãã ãã§ãã
é»æ± ã¯å«ãŸããŠããŸãã
Nomad ã¯ãå¿ èŠãªãã®ã® 20% ãæäŸãããªãŒã±ã¹ãã¬ãŒã·ã§ã³ã® 80% ã§ãã å®è¡ããã®ã¯å±éã®ç®¡çã ãã§ãã Nomad ã¯ãããã€ã¡ã³ããåŠçãããšã©ãŒãçºçããå Žåã«ã¯ã³ã³ãããŒãåèµ·åããŸããããã ãã§ãã
Nomad ã®èŠç¹ã¯ãã®æ©èœã§ã æå°: ãã现ããæš©å©ç®¡çããªãããŸãã¯
Nomad ã¯äœ¿ãããããšå®çšæ§ã®éã®å®ç§ãªåŠ¥åç¹ãèŠã€ãããšæããŸãã å°èŠæš¡ãªç¬ç«ãããµãŒãã¹ã«é©ããŠããŸãã ããã«å¶åŸ¡ãå¿ èŠãªå Žåã¯ãèªåã§å€ãèšå®ããããå¥ã®ã¢ãããŒãã䜿çšããå¿ èŠããããŸãã ããã㯠ã¡ããã© ãªãŒã±ã¹ãã¬ãŒã¿ãŒã
Nomad ã®äžçªè¯ããšããã¯ç°¡åãªããšã§ã 眮ãæããã ãã³ããŒã®æ©èœã¯ãµãŒãã¹ã管çããä»ã®ã·ã¹ãã ã«ç°¡åã«çµ±åã§ããããããã³ããŒãšã®ã€ãªããã¯äºå®äžãããŸããã ã¯ã©ã¹ã¿ãŒå ã®ãã¹ãŠã®ãã·ã³ã§éåžžã®ãã€ããªãšåãããã«å®è¡ãããã ãã§ãã
ççµåã³ã³ããŒãã³ãã® Nomad ãšã³ã·ã¹ãã
Nomad ã®æ¬åœã®åŒ·ã¿ã¯ãã®ãšã³ã·ã¹ãã ã§ãã ããã¯ã次ã®ãããªä»ã®å®å
šã«ãªãã·ã§ã³ã®è£œåãšéåžžã«ããçµ±åãããŸãã
template {
data = <<EOH
LOG_LEVEL="{{key "service/geo-api/log-verbosity"}}"
API_KEY="{{with secret "secret/geo-api-key"}}{{.Data.value}}{{end}}"
EOH
destination = "secrets/file.env"
env = true
}
ããã§ããŒãèªã¿åããŸã service/geo-api/log-verbosity
Consul ããååŸããäœæ¥äžã«ç°å¢å€æ°ã«å
¬éããŸãã LOG_LEVEL
ã éµããã¬ãŒã³ãããŸã secret/geo-api-key
ãšããŠä¿ç®¡åº«ãã API_KEY
ã ã·ã³ãã«ã ãã©ãã¯ãã«ïŒ
Nomad ã¯ãã®ã·ã³ãã«ãã«ãããAPI ãä»ããŠä»ã®ãµãŒãã¹ãšç°¡åã«æ¡åŒµã§ããŸãã ããšãã°ãã¿ã¹ã¯ã®ã¿ã°ããµããŒããããŠããŸãã ãã¹ãŠã®ãµãŒãã¹ã«ã¡ããªã¯ã¹ãã¿ã°ä»ãããŸã trv-metrics
ã ãã®ããã«ããŠãPrometheus 㯠Consul çµç±ã§ãããã®ãµãŒãã¹ãç°¡åã«èŠã€ããå®æçã«ãšã³ããã€ã³ãããã§ãã¯ã§ããŸãã /metrics
æ°ããããŒã¿ã®å Žåã ããšãã°ããã°ã«å¯ŸããŠã次ã®ããã«åãããšãã§ããŸãã
æ¡åŒµæ§ã®äŸã¯ä»ã«ããããããããŸãã
- ããã¯ã䜿çšã㊠Jenkins ãžã§ããå®è¡ãããšããµãŒãã¹æ§æãå€æŽããããšãã« Consul ã Nomad ãžã§ãã®åãããã€ã¡ã³ããç£èŠããŸãã
- Ceph ã¯ãåæ£ãã¡ã€ã« ã·ã¹ãã ã Nomad ã«è¿œå ããŸãã
ãã¡ããª è² è·åæ£ã®ããã
ããã«ãããã¹ãŠãå¯èœã«ãªããŸã
å ¬æ£èŠå
å®ç§ãªã·ã¹ãã ã¯ãããŸããã ææ°ã®æ©èœãããã«å®çšŒåç°å¢ã«å°å ¥ããããšã¯ãå§ãããŸããã ãã¡ãããã°ãäžè¶³ããŠããæ©èœã¯ãããŸããããã㯠Kubernetes ã«ãåœãŠã¯ãŸããŸãã
Kubernetes ãšæ¯èŒãããšãNomad ã³ãã¥ããã£ã¯ããã»ã©å€§ãããããŸããã Kubernetes ã«ã¯ãã§ã«çŽ 75 ã®ã³ããããš 000 人ã®ã³ã³ããªãã¥ãŒã¿ãŒãããŸãããNomad ã«ã¯çŽ 2000 ã®ã³ããããš 14 人ã®ã³ã³ããªãã¥ãŒã¿ãŒãããŸãã Nomad 㯠Kubernetes ã®é床ã«ã€ããŠããã®ã«èŠåŽããŸãããããããããããå¿ èŠã¯ãããŸããã ããã¯ããç¹æ®ãªã·ã¹ãã ã§ãããã³ãã¥ããã£ãå°ãããããKubernetes ãšæ¯èŒããŠãã« ãªã¯ãšã¹ãã泚ç®ãããåãå ¥ããããå¯èœæ§ãé«ããªããŸãã
ãµããªãŒ
çµè«: ä»ã®äººããã£ãŠãããããšãã£ãŠ Kubernetes ã䜿çšããªãã§ãã ããã èŠä»¶ãæ éã«è©äŸ¡ããã©ã®ããŒã«ãããæçãã確èªããŠãã ããã
倧èŠæš¡ãªã€ã³ãã©ã¹ãã©ã¯ãã£äžã«å€§éã®åçš®ã®ãµãŒãã¹ããããã€ããããšãèšç»ããŠããå Žåã¯ãKubernetes ãè¯ãéžæè¢ã§ãã è€éããšéçšã³ã¹ããå¢å ããããšã«æ³šæããŠãã ããã äžéšã®ã³ã¹ãã¯ã次ã®ãããªãããŒãžã Kubernetes ç°å¢ã䜿çšããããšã§åé¿ã§ããŸãã
ä¿å®ã容æã§æ¡åŒµå¯èœãªä¿¡é Œæ§ã®é«ããªãŒã±ã¹ãã¬ãŒã¿ãŒãæ¢ããŠããã ããªããNomad ãè©ŠããŠã¿ãŠã¯ãããã§ããããã ããã§ã©ãã ãé ããŸã§è¡ãããé©ããããããããŸããã
Kubernetes ãèªåè»ã«äŸãããšãNomad ã¯ã¹ã¯ãŒã¿ãŒã«çžåœããŸãã ãããã®ãå¿
èŠãªå Žåãããã°ãå¥ã®ãã®ãå¿
èŠãªå ŽåããããŸãã ã©ã¡ãã«ãååšããæš©å©ããããŸãã
åºæïŒ habr.com