
ãããã¯ãŒãã³ã°ã¯åºç¯ãªãããã¯ã§ãã ããã€ã¹ãããŒã¹ãããã³ã³ã³ããã䜿çšããŠãããã¯ãŒã¯ãæ§æããæ¹æ³ã¯å€æ°ãããŸãã Kubernetesã¯ããã«éå®ããŸããã ãã®ãã©ãããã©ãŒã ã§èŠå®ãããŠããã®ã¯ãçåºçšã®ãã©ããã¢ãã¬ã¹ã¹ããŒã¹ãåããé«ã¬ãã«ã®ãããã¯ãŒã¯ã¢ãã«ã§ãã ãã®ã¹ããŒã¹å ã§ãããŸããŸãªæ©èœãšããŸããŸãªç°å¢ã«å¯Ÿå¿ããå€ãã®åªãããœãªã¥ãŒã·ã§ã³ãå®è£ ã§ããŸãã ãã®ã»ã¯ã·ã§ã³ã§ã¯ããããã®ããã€ããèŠãŠãããããKubernetesãããã¯ãŒã¯ã¢ãã«ã«ã©ã®ããã«é©åããããç解ããããšããŸãã
ããŒããŠã§ã¢ã¯ã©ã¹ã¿ãŒã§ã®ããªããžã®äœæ
æãåçŽãªç°å¢ã¯ãéåžžã®L2ã¬ãã«ã®ç©çãããã¯ãŒã¯ã§ãããã¢ã¡ã¿ã«ã¯ã©ã¹ã¿ãŒã§ãã ã³ã³ããããã®ãããªãããã¯ãŒã¯ã«æ¥ç¶ããã«ã¯ãæšæºã®Linuxããªããžã䜿çšã§ããŸãã ããã¯ãbrctlãip addrãip routeãip linkãnsenterãªã©ã®äœã¬ãã«Linuxãããã¯ãŒã¯ã³ãã³ãã®çµéšãå¿ èŠãšããããªã骚ã®æããæé ã§ãã次ã®ã¬ã€ããèªãããšã§ããã®ãœãªã¥ãŒã·ã§ã³ã®å®è£ ãéå§ã§ããŸããblog.oddbit.com/
2014/08/11 / four-ways-to-connect-a-docker /ïŒLinux Bridgeããã€ã¹ã䜿çšããã»ã¯ã·ã§ã³ãæ¢ããŠãã ããïŒã
Contiv
Contivã¯æ±çšãããã¯ãŒã¯ã¢ããªã³ã§ãã CNIãä»ããŠã³ã³ãããæ¥ç¶ããããã«èšèšãããŠãããDockerïŒçŽæ¥ïŒãMesosãDocker Swarmãããã³åœç¶ã®ããšãªããKubernetesã§äœ¿çšã§ããŸãã Contivã¯ãããã¯ãŒã¯ããªã·ãŒãæ±ããKubernetesã®åæ§ã®ãªããžã§ã¯ããéšåçã«è€è£œããŸãã 以äžã¯ããã®ãããã¯ãŒã¯ã¢ããªã³ã®æ©èœã®äžéšã§ãã
- libnetworkã§ã®CNMããã³CNIä»æ§ã®ãµããŒãã
- ã»ãã¥ãªãã£ãšäºæž¬å¯èœãªã¢ããªã±ãŒã·ã§ã³å±éãæäŸããæ©èœè±å¯ãªããªã·ãŒãšã³ãžã³ã
- ã¯ã©ã¹æé«ã®ã³ã³ããããã©ãŒãã³ã¹ã
- ãã«ãããã³ã·ãŒãåé¢ãããã³éè€ãããµããããã
- IPAMçµ±åãšãµãŒãã¹æ€åºã
- ç©çããããžã®å¹
åºãéžæïŒ
aïŒã¬ã€ã€ãŒ2ãããã³ã«ïŒVLANïŒã
bïŒã¬ã€ã€ãŒ3ãããã³ã«ïŒBGPïŒã
cïŒãªãŒããŒã¬ã€ãããã¯ãŒã¯ã
dïŒCisco SDNïŒACIïŒ; - IPv6ãµããŒãã
- ã¹ã±ãŒã©ãã«ãªããªã·ãŒãšã«ãŒãã®å²ãåœãŠã
- 以äžãå«ãã¢ããªã±ãŒã·ã§ã³ãã³ãã¬ãŒããšã®çµ±åïŒ
aïŒDocker-compose;
bïŒKuberneteså±éãããŒãžã£ãŒã
cïŒãæ±-西ãã¿ã€ãïŒæ±-西ïŒã®ãã€ã¯ããµãŒãã¹ã®ãã©ã³ãµãŒã«çµã¿èŸŒãŸãããµãŒãã¹ã®è² è·åæ£ã
dïŒã¹ãã¬ãŒãžãã¢ã¯ã»ã¹å¶åŸ¡ïŒetcd / consulãªã©ïŒããããã¯ãŒã¯äŒéããã³ç®¡çäžã®ãã©ãã£ãã¯ã®åé¢ã
Contivã«ã¯å€ãã®æ©èœããããŸãã ãã®ããŒã«ã¯ããŸããŸãªã¿ã¹ã¯ãå®è£ ããããŸããŸãªãã©ãããã©ãŒã ããµããŒãããŠãããããKubernetesã«ãšã£ãŠæé©ãªããŒã«ãã©ããã¯ããããŸããã
vswitchãéã
Open vSwitchã¯ãä»®æ³ïŒãœãããŠã§ã¢ïŒã¹ã€ãããäœæããããã®æçãããœãªã¥ãŒã·ã§ã³ã§ãããåžå Žã®å€ãã®äž»èŠãªãã¬ãŒã€ãŒã«ãã£ãŠãµããŒããããŠããŸãã Open Virtualization NetworkïŒOVNïŒã·ã¹ãã ã䜿çšãããšãããŸããŸãªä»®æ³ãããã¯ãŒã¯ããããžãæ§ç¯ã§ããŸãã 圌女ã¯Kubernetesçšã®ç¹å¥ãªã¢ããªã³ãæã£ãŠããŸãããèšå®ããã®ã¯éåžžã«å°é£ã§ãïŒ github.com/openvswitch/ovn-kubernetesããã¥ã¢ã«ãåç §ïŒã ãªãã³CNIã¢ããªã³ã®æ©èœã¯å°ãªãã§ããããã®æ§æã¯ã¯ããã«ç°¡åã§ãïŒ github.com/John-Lin/linen-cni ãªãã³CNIæ§é ãå³ã«ç€ºããŸãã 10.6ã

Open vSwitchã¯ãç©çãµãŒããŒãVMãããã³ããã/ã³ã³ãããŒãåäžã®è«çãããã¯ãŒã¯ã«çµ±åã§ããŸãã ãã®ã·ã¹ãã ã¯ããªãŒããŒã¬ã€ã¢ãŒããšç©çã¢ãŒãã®äž¡æ¹ããµããŒãããŠããŸãã
äž»ãªæ©èœã®äžéšã次ã«ç€ºããŸãã
- ãã©ã³ã¯ããŒããšãããªãã¯ããŒããåããæšæº802.1Q VLANã¢ãã«ã
- äžäœã¬ãã«ã¹ã€ããçšã®LACPã䜿çšããããŸãã¯äœ¿çšããªãNICãã€ã³ãã£ã³ã°
- NetFlowãsFlow®ããã³ãã©ãŒãªã³ã°ã«ãããèŠèªæ§ãåäžããŸããã
- QoSæ§æïŒãµãŒãã¹å質ïŒãšããªã·ãŒã
- GeneveãGREãVXLANãSTTãããã³LISPããã³ããªã³ã°ããŸãã
- 802.1agã®ãã¬ãŒã¯ã³ã³ãããŒã«ã
- OpenFlow 1.0ãšå€æ°ã®ã¢ããªã³ã
- Cããã³Pythonã®ãã€ã³ãã£ã³ã°ã䜿çšããŠæ§æãä¿åããããã®ãã©ã³ã¶ã¯ã·ã§ã³ããŒã¿ããŒã¹ã
- Linuxã«ãŒãã«ã¢ãžã¥ãŒã«ã䜿çšããé«æ§èœãªãªãã€ã¬ã¯ãã
Nuage Networks VCS
Virtualized Cloud ServicesïŒVCSïŒã¯Nuageã®è£œåã§ããNuageã¯ããœãããŠã§ã¢å®çŸ©ãããã¯ãŒã¯ïŒSoftware-Defined NetworkingãSDNïŒãæ§ç¯ããããã®æ¡åŒµæ§ã®é«ãããªã·ãŒããŒã¹ã®ãã©ãããã©ãŒã ã§ãã ããã¯ããªãŒãã³ã·ã¹ãã Open vSwitchïŒããŒã¿ãªãã€ã¬ã¯ãçšïŒãšãªãŒãã³ã¹ã¿ã³ããŒãã«åºã¥ããŠæ§ç¯ãããå€æ©èœSDNã³ã³ãããŒã©ãŒã«åºã¥ããšã³ã¿ãŒãã©ã€ãºã¬ãã«ã®ãœãªã¥ãŒã·ã§ã³ã§ãã
Nuageãã©ãããã©ãŒã ã¯ãKubernetesããããšãµãŒãããŒãã£ç°å¢ïŒä»®æ³ããã³ããŒããŠã§ã¢ïŒãééçãªãªãŒããŒã¬ã€ãããã¯ãŒã¯ã«çµåããããŸããŸãªã¢ããªã±ãŒã·ã§ã³ã®è©³çŽ°ãªããªã·ãŒãèšè¿°ããããšãã§ããŸãã ãªã¢ã«ã¿ã€ã åæãšã³ãžã³ã«ãããKubernetesã¢ããªã±ãŒã·ã§ã³ã®å¯èŠæ§ãšã»ãã¥ãªãã£ãç£èŠã§ããŸãã
ããã«ããã¹ãŠã®VCSã³ã³ããŒãã³ããã³ã³ãããšããŠã€ã³ã¹ããŒã«ã§ããŸãã ç¹å®ã®ããŒããŠã§ã¢èŠä»¶ã¯ãããŸããã
éæ²³
Canalã¯ãCalicoãšFlannelã®2ã€ã®ãªãŒãã³ãœãŒã¹ãããžã§ã¯ããçµã¿åããããã®ã§ãã ãããã£ãŠãååã CoreOSããŒã ã«ãã£ãŠéçºãããFlannelãããžã§ã¯ãã¯ãã³ã³ããã®ãããã¯ãŒã¯æ©èœãæ±ããCalicoã¯ãããã¯ãŒã¯ããªã·ãŒãæ åœããŸãã åœåããããã¯äºãã«å¥ã ã«éçºãããŸãããããŠãŒã¶ãŒã¯ããããäžç·ã«äœ¿çšããããšèããŠããŸããã CanalãªãŒãã³ãœãŒã¹ãããžã§ã¯ãã¯ãCalicoãšFlannelãåå¥ã®CNIã¢ããªã³ãšããŠã€ã³ã¹ããŒã«ããããã®å±éãã³ãã¬ãŒãã§ãã Calicoã®åµèšè ã«ãã£ãŠäœæãããTigeraã¯ãäž¡æ¹ã®ãããžã§ã¯ãããµããŒãããããã«ç·å¯ãªçµ±åãèšç»ããŠããŸããããKubernetesã®ã¢ããªã±ãŒã·ã§ã³éã®ã»ãã¥ã¢ãããã¯ãŒãã³ã°ã®ããã®ç¬èªã®ãœãªã¥ãŒã·ã§ã³ããªãªãŒã¹ããŠä»¥æ¥ãçµ±åãœãªã¥ãŒã·ã§ã³ãéçºããã®ã§ã¯ãªããFlannelãšCalicoã®æ§æãšçµ±åãç°¡çŽ åããããšã«éç¹ã移ããŸããã å³ 10.7ã¯ãCanalã·ã¹ãã ã®çŸåšã®ã¹ããŒã¿ã¹ãšãKubernetesãMesosãªã©ã®ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãã©ãããã©ãŒã ãšã®é¢ä¿ã瀺ããŠããŸãã

Kubernetesãšçµ±åããå ŽåãCanalã¯etcdã«çŽæ¥ã¢ã¯ã»ã¹ãããKubernetes APIãµãŒããŒã«ã¢ã¯ã»ã¹ããããšã«æ³šæããŠãã ããã
ãã©ã³ãã«
ãã©ã³ãã«ã¯ãã³ã³ããã©ã³ã¿ã€ã ãæäœããããã®ä»®æ³ãããã¯ãŒã¯ãåããŒãã«æäŸããä»®æ³ãããã¯ãŒã¯ã§ãã åããŒãã§ãflaneldãšãŒãžã§ã³ããèµ·åãããetcdã¯ã©ã¹ã¿ãŒã«ä¿åãããŠããäºçŽæžã¿ã¢ãã¬ã¹ã¹ããŒã¹ã«åºã¥ããŠãµãããããäžããŸãã ã³ã³ãããšãäžè¬çã«ã¯ããŒãéã®ãã±ãã亀æã¯ãããã€ãã®ãµãŒããŒã®ããããã«ãã£ãŠè¡ãããŸãã ã»ãšãã©ã®å ŽåããµãŒããŒã¯ããã©ã«ãã§ããŒã8285ãä»ããŠãã©ãã£ãã¯ããã³ããªã³ã°ããTUNããã€ã¹ã§UDPã䜿çšããŸãïŒãã¡ã€ã¢ãŠã©ãŒã«ã§éãããšãå¿ããªãã§ãã ããïŒã
å³ 10.8ã§ã¯ããã©ã³ãã«ãããã¯ãŒã¯ã®ããŸããŸãªã³ã³ããŒãã³ãããããäœæããä»®æ³ãããã¯ãŒã¯ããã€ã¹ãããã³docker0ããªããžãä»ããããŒãããã³ããŒã¹ãšã®éä¿¡æ¹æ³ã«ã€ããŠè©³ãã説æããŠããŸãã ããã§ã¯ãUDPãã±ãããã«ãã»ã«åããããã»ã¹ãšãããŒãéã®ãã±ããã®ç§»åã確èªã§ããŸãã

ä»ã®ãããã¯ãŒã¯ãã¯ãããžãŒããµããŒããããŠããŸãã
- vxlan-ã«ãŒãã«å ã§VXLANã䜿çšããŠãã±ãããã«ãã»ã«åããŸãã
- host-gw-ãªã¢ãŒããµãŒããŒã®IPã¢ãã¬ã¹ãä»ããŠãµãããããžã®IPã«ãŒããäœæããŸãã ããã«ã¯ãFlannelãå®è¡ããŠãããµãŒããŒéã®2çªç®ã®ãããã¯ãŒã¯å±€ã§ã®çŽæ¥æ¥ç¶ãå¿ èŠã§ããããšã«æ³šæããŠãã ããã
- aws-vpc â Amazon VPCã«ãŒãã£ã³ã°ããŒãã«ã«IPã«ãŒããäœæããŸã
- gce-Google Compute Engineãããã¯ãŒã¯äžã«IPã«ãŒããäœæããŸã
- alloc-ãµããããã®å²ãåœãŠã®ã¿ãå®è¡ãããã±ããã®ãªãã€ã¬ã¯ãã¯å®è¡ããŸããã
- ali-vpc-Alicloud VPCã«ãŒãã£ã³ã°ããŒãã«ã«IPã«ãŒããäœæããŸãã
ãã£ãªã³ãããžã§ã¯ã
Calicoã¯ãã³ã³ãããšãããã¯ãŒã¯ã»ãã¥ãªãã£éã®ãããã¯ãŒã¯ã®ããã®å®å šãªãœãªã¥ãŒã·ã§ã³ã§ãã ãã¹ãŠã®äž»èŠãªãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãã©ãããã©ãŒã ããã³ã©ã³ã¿ã€ã ãšçµ±åã§ããŸãã
- KubernetesïŒCNIã®ã¢ããªã³ïŒ;
- MesosïŒCNIã®ã¢ããªã³ïŒ;
- DockerïŒlibneworkã®ã¢ããªã³ïŒ;
- OpenStackïŒNeutronã®ã¢ããªã³ïŒã
Calicoã¯ããã¹ãŠã®æ©èœãä¿æããªãããããŒã«ã«ãŸãã¯ãããªãã¯ã¯ã©ãŠãã«å±éããããšãã§ããŸãã ãããã¯ãŒã¯ããªã·ãŒã®é©çšã¯è² è·ã«äŸåããå¯èœæ§ããããããã«ããæ£ç¢ºãªãã©ãã£ãã¯å¶åŸ¡ãæäŸããããã±ãããåžžã«ç®çã®å®å ã«å°éããããšãä¿èšŒãããŸãã Calicoã¯ããªãŒã±ã¹ãã¬ãŒã·ã§ã³ãã©ãããã©ãŒã ãããããã¯ãŒã¯ããªã·ãŒãèªåçã«ã€ã³ããŒãã§ããŸãã å®éã圌ã¯Kubernetesã§ãããã¯ãŒã¯ããªã·ãŒãå®è£ ãã責任ããããŸãã
ãããŒã
Romanaã¯ãã³ã³ããéã®ãããã¯ãŒã¯åã®ããã®ææ°ã®ãœãªã¥ãŒã·ã§ã³ã§ãã ããšããšã¯ã¯ã©ãŠãã§äœ¿çšããããã«èšèšãããŠãããIPã¢ãã¬ã¹ã管çããæšæºçãªæ¹æ³ã«äŸåããŠã3çªç®ã®ãããã¯ãŒã¯å±€ã§åäœããŸãã Romanaã§ã¯ãLinuxããŒã¹ã®ãµãŒããŒã䜿çšããŠã²ãŒããŠã§ã€ãšã«ãŒããäœæããããšã«ããããããã¯ãŒã¯å šäœãåé¢ã§ããŸãã 3çªç®ã®ãããã¯ãŒã¯å±€ã§ã®äœæ¥ã«ã¯ãã«ãã»ã«åã¯å¿ èŠãããŸããã ãããã¯ãŒã¯ããªã·ãŒã¯ãåæ£ãã¡ã€ã¢ãŠã©ãŒã«ã®åœ¢ã§ãã¹ãŠã®ãšã³ããã€ã³ãããã³ãµãŒãã¹ã«é©çšãããŸãã Romanaã¯ãä»®æ³ãªãŒããŒã¬ã€ãããã¯ãŒã¯ãæ§æããå¿ èŠããªããªããããç°ãªãã¯ã©ãŠããã©ãããã©ãŒã éã®ãªã³ãã¬ãã¹ããã³ãã€ããªããå±éã容æã«ããŸãã
Romanaã«æè¿ç»å Žããä»®æ³IPã¢ãã¬ã¹ã«ãããããŒã«ã«ãŠãŒã¶ãŒã¯ãå€éšã¢ãã¬ã¹ãšãµãŒãã¹ã®ä»æ§ã䜿çšããŠã第2ã¬ãã«ã®ããŒã«ã«ãããã¯ãŒã¯ã®ãµãŒãã¹ãžã®ã¢ã¯ã»ã¹ãéãããšãã§ããŸãã
Romanaéçºè ã¯ã圌ãã®ã¢ãããŒããããã©ãŒãã³ã¹ãå€§å¹ ã«æ¹åãããšäž»åŒµããŠããŸãã å³ å³10.9ã¯ãVXLANã«ãã»ã«åã®æåŠãšãšãã«ãå€ãã®ãªãŒããŒããããåãé€ãæ¹æ³ã瀺ããŠããŸãã

ç¹ãããã
Weave Netãããžã§ã¯ãã®äž»ãªæ©èœã¯ã䜿ãããããšæ§æã®æ¬ åŠã§ãã VXLANã«ãã»ã«åã䜿çšããåããŒãã«ãã€ã¯ãDNSãã€ã³ã¹ããŒã«ããŸãã éçºè ãšããŠãé«åºŠãªæœè±¡åã«å¯ŸåŠããŸãã ã³ã³ããã«ååãä»ãããšãWeave Netã§æšæºããŒãã«æ¥ç¶ããé©åãªãµãŒãã¹ãæå¹ã«ã§ããŸãã ããã¯ãæ¢åã®ã¢ããªã±ãŒã·ã§ã³ããã€ã¯ããµãŒãã¹ããã³ã³ã³ããåãã©ãããã©ãŒã ã«ç§»è¡ããã®ã«åœ¹ç«ã¡ãŸãã Weave Netã¯ãKubernetesããã³Mesosãšé£æºããããã®CNIã¢ããªã³ãæäŸããŸãã Kubernetes 1.4以éãWeave Netãšã®çµ±åã¯ãDaemonSetããããã€ããåäžã®ã³ãã³ãã§å®çŸã§ããŸãã
kubectl apply -f https://git.io/weave-kube
åããŒãã«ããWeave Netãããã¯ãä»ã®ãããã€ã³ã¹ã¿ã³ã¹ãWeaveãããã¯ãŒã¯ã«æ¥ç¶ãã圹å²ãæãããŸãã Weave Netã¯ããããã¯ãŒã¯ããªã·ãŒã䜿çšããŠAPIããµããŒãããå®å šã§ç°¡åãªæ§æãœãªã¥ãŒã·ã§ã³ãæäŸããŸãã
ãããã¯ãŒã¯ããªã·ãŒã®å¹æçãªäœ¿çš
Kubernetesãããã¯ãŒã¯ããªã·ãŒã¯ãç¹å®ã®ããããšåå空éã«åãããããã©ãã£ãã¯ãå¶åŸ¡ããããã«èšèšãããŠããŸãã Kubernetesã§ããããããã«ãå±éãããæ°çŸã®ãã€ã¯ããµãŒãã¹ã管çããå Žåãå²çè£éã®ãããã¯ãŒã¯ãåé¢ã«åºãŠããŸãã ãã®ã¡ã«ããºã ã¯ã»ãã¥ãªãã£ã«éæ¥çã«ã®ã¿é¢é£ããŠããããšãç解ããããšãéèŠã§ãã æ»æè ãå éšãããã¯ãŒã¯ã«äŸµå ¥ã§ããå Žåããããã¯ãŒã¯ããªã·ãŒã«æºæ ããä»ã®çãšã®ç¡æéä¿¡ãèš±å¯ããçã®ç¬èªã®ã€ã³ã¹ã¿ã³ã¹ãäœæã§ããå¯èœæ§ãé«ããªããŸãã åã®ã»ã¯ã·ã§ã³ã§ã¯ãKubernetesã®ããŸããŸãªãããã¯ãŒã¯ãœãªã¥ãŒã·ã§ã³ã«ã€ããŠããããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ã«çŠç¹ãåœãŠãŠèª¬æããŸããã ããã§ã¯ããããã®ãœãªã¥ãŒã·ã§ã³ã®äžã«å®è£ ããããããã¯ãŒã¯ããªã·ãŒã«çŠç¹ãåœãŠãŸãããäž¡æ¹ã®ã³ã³ããŒãã³ãã¯å¯æ¥ã«çžäºæ¥ç¶ãããŠããŸãã
Kubernetesã®ãããã¯ãŒã¯ããªã·ãŒã¢ãŒããã¯ãã£
ãããã¯ãŒã¯ããªã·ãŒã¯ãçåºã®ãµãã»ãããçžäºã«ãããã³ä»ã®ãããã¯ãŒã¯ãšã³ããã€ã³ããšçžäºäœçšããæ¹æ³ã決å®ããŸãã NetworkPolicyãªãœãŒã¹ã¯ãã©ãã«ã䜿çšããŠå²çè£ãéžæããéžæãããå²çè£ã€ã³ã¹ã¿ã³ã¹ã«ãã©ãã£ãã¯ãèªå°ããèš±å¯ã«ãŒã«ã®ãªã¹ããå®çŸ©ããŸãïŒç¹å®ã®ããŒã ã¹ããŒã¹ã®åé¢ããªã·ãŒã§æ¢ã«èš±å¯ãããŠãããã®ã«å ããŠïŒã
»æ¬ã®è©³çŽ°ã«ã€ããŠã¯ãåºç瀟ã®ãŠã§ããµã€ããã芧ãã ãã
» ã³ã³ãã³ã
» æç²
Kuvrozhitelã®ã¯ãŒãã³ã®20ïŒ å²åŒ-Kubernetes
æ¬ã®çŽçãæ¯æããããšãé»åçã®æ¬ãé»åã¡ãŒã«ã§éä¿¡ãããŸãã
PSïŒæ¬ã®ã³ã¹ãã®7ïŒ ãæ°ããã³ã³ãã¥ãŒã¿ãŒæ¬ã®ç¿»èš³ã«è²»ããããŸã ãå°å·äŒç€Ÿã«æž¡ãããæ¬ã®ãªã¹ãã¯ãã¡ãã§ãã