etcdïŒãšãã·ãŒãã£ãŒïŒ ãšã¯ïŒ
- ããŒãšå€ã®ãã¢ã§ããŒã¿ãä¿åãã忣ã¹ãã¢ã§ãRaftã¢ã«ãŽãªãºã ã«ãã匷ãäžè²«æ§ãä¿èšŒãã
- Kubernetesã§ã¯ãã¹ãŠã®ã¯ã©ã¹ã¿ç¶æ ïŒPodæ å ±ãèšå®ãã·ãŒã¯ã¬ãããªã©ïŒãetcdã«ä¿åããã
- Watchãšããä»çµã¿ã§ããŒã¿å€æŽããªã¢ã«ã¿ã€ã ã«éç¥ã§ãããµãŒãã¹ãã£ã¹ã«ããªã«ã䜿ããã
etcdã£ãŠKubernetesã®è©±ã§ããèããã ãã©ãäœãããŠãã®ïŒ
etcdã¯Kubernetesã®ãèšæ¶ããæ åœããŠãããã ããã¯ã©ã¹ã¿ã«ã©ããªPodãããããã©ããªèšå®ããããŠããããã·ãŒã¯ã¬ããæ å ±ã¯äœãââãããã£ãã¯ã©ã¹ã¿ã®ãã¹ãŠã®ç¶æ ãetcdã«ä¿åãããŠãããã ãKubernetesã®è³ã¿ããšèšã£ãŠãããã
ããŒã¿ããŒã¹ã¿ãããªãã®ãªã®ïŒ
ããã ããããŒããªã¥ãŒã¹ãã¢ãšããã·ã³ãã«ãªããŒã¿ããŒã¹ã®äžçš®ã ããã/pods/my-appãã¿ãããªããŒã«å¯ŸããŠãPodã®æ å ±ãJSON圢åŒã§ä¿åããããæ®éã®ããŒã¿ããŒã¹ãšéã£ãŠããŒãã«ãSQLã¯ãªããããŒãæå®ããŠå€ãèªã¿æžãããã ãã®ã·ã³ãã«ãªä»çµã¿ã ã
ã·ã³ãã«ãªã®ã«Kubernetesã§äœ¿ãããŠãã®ã¯ãªããªã®ïŒ
æå€§ã®åŒ·ã¿ã¯ã忣ç°å¢ã§ã®åŒ·ãäžè²«æ§ãã ããetcdã¯è€æ°å°ã®ãµãŒããŒã§åããŠããŠãRaftãšããåæã¢ã«ãŽãªãºã ã䜿ã£ãŠãéåæ°ã®ããŒããåæããããŒã¿ã ããæ£åŒã«èšé²ããããã ãã ãããµãŒããŒã1å°èœã¡ãŠããããŒã¿ã倱ããããççŸãããããªããã ã
Raftã£ãŠäœã ãé£ãããã ãïŒ
ä»çµã¿èªäœã¯æå€ãšã·ã³ãã«ã ãã3å°ã5å°ã®etcdããŒãã®äžãããªãŒããŒã1å°éžã°ããŠãæžã蟌ã¿ã¯ãŸããªãŒããŒãåãåãããªãŒããŒãä»ã®ããŒãã«ããã®ããŒã¿ãæžããŸããããšäŒããŠãéåæ°ããOKããšè¿ããã確å®ããããªãŒããŒãèœã¡ããæ®ãã®ããŒãã§æ°ãªãŒããŒãèªåéžåºãããã
etcdãå£ãããKubernetesã¯ã©ããªãã®ïŒ
etcdãå šæ» ãããšKubernetesã¯æ°ããæäœãäžåã§ããªããªãããæ¢ã«åããŠããPodã¯ããã«ã¯æ¢ãŸããªããã©ãæ°ãããããã€ãã¹ã±ãŒãªã³ã°ãã§ããªããªããã ããetcdã®ããã¯ã¢ããã¯æ¬çªç°å¢ã§ã¯è¶ éèŠã§ãetcdctlãšããããŒã«ã§ã¹ãããã·ã§ããã宿ååŸããã®ãéåãªãã
Kubernetes以å€ã§ãetcdã¯äœ¿ãããŠãã®ïŒ
å®ã¯Kubernetes以å€ã§ãçµæ§äœ¿ãããŠããããCoreDNSã®ãµãŒãã¹ãã£ã¹ã«ããªãFlannelã®ãããã¯ãŒã¯èšå®ç®¡çãM3DBã®ã¯ã©ã¹ã¿ç®¡çãªã©ã ããç¹ã«Watchãšããæ©èœã䟿å©ã§ãããããŒã®å€ãå€ãã£ãç¬éã«ãªã¢ã«ã¿ã€ã ã§éç¥ãåãåãããããèšå®å€æŽãå³åº§ã«åæ ããããããªçšéã«åããŠãããã ã
etcdãéçšãããšãã«æ°ãã€ããããšã£ãŠããã®ïŒ
ãŸãããŒãæ°ã¯3å°ã5å°ã®å¥æ°ãåºæ¬ã ããå¶æ°ã ãšãªãŒããŒéžåºæã«åæ°ã«ãªã£ãŠããŸãããšããããããšetcdã¯ãã£ã¹ã¯I/Oã«ææã ãããSSDã䜿ãã®ãæšå¥šãããŠããããããããKubernetesã®èŠæš¡ã倧ãããªããšetcdã®ããŒã¿éãå¢ããããã宿çã«ããã©ã°ã¡ã³ããŒã·ã§ã³ïŒcompactionïŒãè¡ãã®ã倧åã ã