TL; DRïŒ Kube-Router ãš Kube-OVN ãé€ãããã¹ãŠã® CNI ãæ£åžžã«åäœããŸããèªå MTU æ€åºãé€ãã°ãCalico ãæé©ã§ãã
éå»ã®ãã§ãã¯èšäºã®æŽæ° (
ææšã®èª¬æã«å ¥ãåã«...
2019 幎 XNUMX æ以éã®æ°æ©èœã¯äœã§ãã?
- ç¬èªã®ã¯ã©ã¹ã¿ãŒã§ãã¹ãå¯èœ: ããŒã«ã䜿çšããŠç¬èªã®ã¯ã©ã¹ã¿ãŒã§ãã¹ããå®è¡ã§ããŸãã Kubernetes ãããã¯ãŒã¯ ãã³ãããŒã¯:
KNB - æ°ããã¡ã³ããŒãç»å ŽããŸãã
ã¢ã³ãã¬ã¢ VMware Tanzu ãããã¥ãŒã-OVN alauda.ioãã
- æ°ããã·ããªãª: çŸåšã®ãã§ãã¯ã§ã¯ãPod-to-Podããããã¯ãŒã¯ ããã©ãŒãã³ã¹ ãã¹ããå®è¡ãããŸãããå®éã®æ¡ä»¶ã«è¿ããã¹ããå®è¡ããæ°ãããPod-to-Serviceãã¹ã¯ãªãããè¿œå ãããŸããã å®éã«ã¯ãAPI ãåãããããã¯ããããã® IP ã¢ãã¬ã¹ãéããŠã§ã¯ãªãããµãŒãã¹ãšããŠããŒã¹ãšé£æºããŸã (ãã¡ãããäž¡æ¹ã®ã·ããªãªã§ TCP ãš UDP ã®äž¡æ¹ããã§ãã¯ããŸã)ã
- ãªãœãŒã¹æ¶è²»: åãã¹ãã«ã¯ç¬èªã®ãªãœãŒã¹æ¯èŒãå«ãŸããããã«ãªããŸããã
- ã¢ããªã±ãŒã·ã§ã³ ãã¹ãã®åé€: ã³ãã¥ããã£ããã³ CNI ã¡ã³ãããšã®æçãªã³ã©ãã¬ãŒã·ã§ã³ã«ãããCNI ã®èµ·åé 延 (Pod ã®æåã®æ°ç§) ã«ãã TCP çµç±ã® iperf çµæãšcurl çµæãšã®éã«ã®ã£ãããããããšãå€æãããããHTTPãFTPãããã³ SCP ãã¹ãã¯è¡ããªããªããŸãããå®éã®ç¶æ³ã§ã¯äžè¬çã§ã¯ãããŸãã)ã
- ãªãŒãã³ãœãŒã¹: ãã¹ãŠã®ãã¹ã ãœãŒã¹ (ã¹ã¯ãªãããyml èšå®ãå
ã®ãçãããŒã¿) ãå©çšå¯èœ
ããã§
ãªãã¡ã¬ã³ã¹ãã¹ããããã³ã«
ãããã³ã«ã詳ãã説æãããŠããŸã
è©äŸ¡çšã® CNI ã®éžæ
ãã®ãã¹ãã¯ãXNUMX ã€ã® yaml ãã¡ã€ã«ã§æ§æããã CNI ãæ¯èŒããããšãç®çãšããŠããŸã (ãããã£ãŠãVPP ãªã©ã®ã¹ã¯ãªããã«ãã£ãŠã€ã³ã¹ããŒã«ããããã¹ãŠã® CNI ã¯é€å€ãããŸã)ã
æ¯èŒã®ããã«éžæãã CNI:
- ã¢ã³ãã¬ã¢ v.0.9.1
- ãã£ãªã³ v3.16
- Canal v3.16 (Flannel ãããã¯ãŒã¯ + Calico ãããã¯ãŒã¯ ããªã·ãŒ)
- ç¹æ¯ 1.8.2
- ãã©ã³ãã« 0.12.0
- Kube ã«ãŒã¿ãŒã®ææ°æ å ± (2020â08â25)
- ãŠã£ãŒãããã 2.7.0
CNI ã® MTU ã®æ§æ
ãŸããèªå MTU æ€åºã TCP ããã©ãŒãã³ã¹ã«äžãã圱é¿ã確èªããŸãã
TCP ããã©ãŒãã³ã¹ã«å¯Ÿãã MTU ã®åœ±é¿
UDP ã䜿çšãããšãããã«å€§ããªã®ã£ãããèŠã€ãããŸãã
UDP ããã©ãŒãã³ã¹ã«å¯Ÿãã MTU ã®åœ±é¿
ãã¹ãã§æããã«ãªã£ãããã©ãŒãã³ã¹ãžã®å€å€§ãªåœ±é¿ãèæ ®ããŠãç§ãã¡ã¯ãã¹ãŠã® CNI ã¡ã³ãããŒã«åžæã®æçŽãéããããšæããŸããèªå MTU æ€åºã CNI ã«è¿œå ããŠãã ããã åç«ããŠãã³ãŒã³ããããŠæãããããåç«ãå°ããªãããããããæãããšãã§ããŸãã
ãã ããèªå MTU æ€åºããµããŒãããã« CNI ã䜿çšããå¿ èŠãããå Žåã¯ãæåã§èšå®ããŠããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãã ãã㯠CalicoãCanalãWeaveNet ã«é©çšãããããšã«æ³šæããŠãã ããã
é䌎ãã CNI ãžã®ç§ã®å°ããªãé¡ãã§ã...
CNI ãã¹ã: çããŒã¿
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãCNI ãšæ£ãã MTU (èªåçã«æ±ºå®ãŸãã¯æåã§èšå®) ãæ¯èŒããŸãã ããã§ã®äž»ãªç®çã¯ãçããŒã¿ãã°ã©ãã§è¡šç€ºããããšã§ãã
è²ã®å¡äŸ:
- ã°ã¬ãŒ - ãµã³ãã« (ã€ãŸãã裞ã®é)
- ç· - 9500 Mbpsãè¶ ãã垯åå¹
- é»è² - 垯åå¹ ã 9000 Mbps ãè¶ ãã
- ãªã¬ã³ãž - 8000 Mbps ãè¶ ãã垯åå¹
- èµ€ - 垯åå¹ ã 8000 Mbps æªæº
- é - ãã¥ãŒãã©ã« (垯åå¹ ãšã¯ç¡é¢ä¿)
ç¡è² è·æã®ãªãœãŒã¹æ¶è²»é
ãŸããã¯ã©ã¹ã¿ãŒããã¹ãªãŒããããŠãããšãã®ãªãœãŒã¹æ¶è²»éã確èªããŸãã
ç¡è² è·æã®ãªãœãŒã¹æ¶è²»é
ãããé
ãã®ã·ããªãªã¯ãã¯ã©ã€ã¢ã³ã ãããã IP ã¢ãã¬ã¹ã䜿çšããŠãµãŒã㌠ãããã«çŽæ¥æ¥ç¶ããããšãåæãšããŠããŸãã
ãããéã®ã·ããªãª
TCP
ãããéã® TCP çµæãšããã«å¯Ÿå¿ãããªãœãŒã¹æ¶è²»é:
UDP
ãããéã® UDP çµæãšããã«å¯Ÿå¿ãããªãœãŒã¹æ¶è²»:
ããããããµãŒãã¹ãž
ãã®ã»ã¯ã·ã§ã³ã¯å®éã®ãŠãŒã¹ã±ãŒã¹ã«é¢é£ããŠãããã¯ã©ã€ã¢ã³ã Pod 㯠ClusterIP ãµãŒãã¹çµç±ã§ãµãŒã㌠Pod ã«æ¥ç¶ããŸãã
ããããããµãŒãã¹ãžã®ã¹ã¯ãªãã
TCP
ããããããµãŒãã¹ãžã® TCP çµæãšããã«å¯Ÿå¿ãããªãœãŒã¹æ¶è²»:
UDP
ããããããµãŒãã¹ãžã® UDP çµæãšããã«å¯Ÿå¿ãããªãœãŒã¹æ¶è²»:
ãããã¯ãŒã¯ããªã·ãŒã®ãµããŒã
äžèšã®äžã§å¯äžæ¿æ²»ãæ¯æããŠããªãã®ã¯ãã©ã³ãã«ã§ãã ä»ã®ãã¹ãŠã¯ãã€ã³ããŠã³ããšã¢ãŠãããŠã³ããå«ããããã¯ãŒã¯ ããªã·ãŒãæ£ããå®è£ ããŸãã ãããã£ãïŒ
CNIæå·å
ãã§ãã¯ããã CNI ã®äžã«ã¯ãPod éã®ãããã¯ãŒã¯äº€æãæå·åã§ãããã®ãå«ãŸããŸãã
- IPsec ã䜿çšããã¢ã³ãã¬ã¢
- ã¯ã€ã€ãŒã¬ãŒãã䜿çšãããã£ãªã³
- IPsecã䜿çšããCilium
- IPsec ã䜿çšãã WeaveNet
ã¹ã«ãŒããã
æ®ã£ãŠãã CNI ãå°ãªããªã£ãã®ã§ããã¹ãŠã®ã·ããªãªã XNUMX ã€ã®ã°ã©ãã«ãŸãšããŠã¿ãŸãããã
è³æºã®æ¶è²»
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãTCP ããã³ UDP 㧠Pod éã®éä¿¡ãåŠçãããšãã«äœ¿çšããããªãœãŒã¹ãè©äŸ¡ããŸãã è¿œå æ å ±ãæäŸãããªããããããããããµãŒãã¹ãžã®ã°ã©ããæç»ããŠãæå³ããããŸããã
ãã¹ãŠãäžç·ã«å ¥ããŠ
ãã¹ãŠã®ã°ã©ããç¹°ãè¿ããŠã¿ãŸããããã§ã¯å°ã䞻芳ãå°å ¥ããå®éã®å€ããéåžžã«éããããäœãããªã©ã®èšèã«çœ®ãæããŸãã
çµè«ãšç§ã®çµè«
çµæã«ã€ããŠç§èªèº«ã®è§£éãäŒããŠãããããããã¯å°ã䞻芳çã§ãã
æ°ãã CNI ãç»å ŽããAntrea ã®ããã©ãŒãã³ã¹ãè¯ããèªå MTU æ€åºãæå·åãç°¡åãªã€ã³ã¹ããŒã«ãªã©ãåæã®ããŒãžã§ã³ã§ãå€ãã®æ©èœãå®è£ ãããŠããããšãå¬ããæããŸãã
ããã©ãŒãã³ã¹ãæ¯èŒãããšãKube-OVN ãš Kube-Router ãé€ããã¹ãŠã® CNI ãè¯å¥œã«åäœããŸãã Kube-Router ã MTU ãæ€åºã§ããŸããã§ãããããã¥ã¡ã³ãã®ã©ãã«ã MTU ãæ§æããæ¹æ³ãèŠã€ãããŸããã§ãã (
ãªãœãŒã¹æ¶è²»ã®ç¹ã§ã¯ãCilium ã¯äŸç¶ãšããŠä»ã®ãã®ãããå€ãã® RAM ã䜿çšããŸãããã¡ãŒã«ãŒã¯æããã«å€§èŠæš¡ãªã¯ã©ã¹ã¿ãŒãã¿ãŒã²ããã«ããŠãããããã¯æããã« XNUMX ããŒã ã¯ã©ã¹ã¿ãŒã§ã®ãã¹ããšåãã§ã¯ãããŸããã Kube-OVN ã CPU ãš RAM ãªãœãŒã¹ã倧éã«æ¶è²»ããŸãããOpen vSwitch ã«åºã¥ããè¥ã CNI ã§ã (Antrea ãšåæ§ãããã©ãŒãã³ã¹ãé«ããæ¶è²»éãå°ãªããªããŸã)ã
Flannel ãé€ãå šå¡ããããã¯ãŒã¯ ããªã·ãŒãæã£ãŠããŸãã ç®æšã¯èžããã«ããããåçŽã§ã軜ãã»ã©è¯ãããã圌ã¯æ±ºããŠåœŒãããµããŒãããªãå¯èœæ§ãéåžžã«é«ãã§ãã
ãŸããäœãããæå·åã®ããã©ãŒãã³ã¹ãçŽ æŽãããã§ãã Calico ã¯æãå€ã CNI ã® 9000 ã€ã§ãããæå·åãè¿œå ãããã®ã¯ã»ãã®æ°é±éåã§ãã 圌ã㯠IPsec ã®ä»£ããã«ã¯ã€ã€ãŒã¬ãŒããéžæããŸãããç°¡åã«èšãã°ãããã¯éåžžã«çŽ æŽãããæ©èœãããã¹ãã®ãã®éšåã§ã¯ä»ã® CNI ãå®å šã«äžåããŸããã ãã¡ãããæå·åã«ãããªãœãŒã¹ã®æ¶è²»éã¯å¢å ããŸãããéæãããã¹ã«ãŒãããã«ã¯ããã ãã®äŸ¡å€ããããŸã (Calico ã¯ãXNUMX äœã® Cilium ãšæ¯èŒããŠæå·åãã¹ã㧠XNUMX åã®åäžã瀺ããŸãã)ã ããã«ãCalico ãã¯ã©ã¹ã¿ãŒã«ãããã€ããåŸã¯ãã€ã§ãã¯ã€ã€ãŒã¬ãŒããæå¹ã«ããããšãã§ããå¿ èŠã«å¿ããŠçæéãŸãã¯æ°žä¹ ã«ç¡å¹ã«ããããšãã§ããŸãã ããã䟿å©ãªãã§ããã©ãïŒ Calico ã¯çŸåš MTU ãèªåæ€åºããªãããšã«æ³šæããŠãã ãã (ãã®æ©èœã¯å°æ¥ã®ããŒãžã§ã³ã§äºå®ãããŠããŸã)ããã®ããããããã¯ãŒã¯ããžã£ã³ã ãã¬ãŒã (MTU XNUMX) ããµããŒãããŠããå Žåã¯ãå¿ ã MTU ãèšå®ããŠãã ããã
ãšããããCilium ã¯ã¯ã©ã¹ã¿ãŒ ããŒãé (ãããéã ãã§ãªã) ã®ãã©ãã£ãã¯ãæå·åã§ããããšã«æ³šæããŠãã ãããããã¯ãããªã㯠ã¯ã©ã¹ã¿ãŒ ããŒãã«ãšã£ãŠéåžžã«éèŠã«ãªãå¯èœæ§ããããŸãã
çµè«ãšããŠã次ã®äœ¿çšäŸããå§ãããŸãã
- éåžžã«å°ããªã¯ã©ã¹ã¿ãŒã«ã¯ CNI ãå¿
èŠããŸãã¯ã»ãã¥ãªãã£ã¯å¿
èŠãããŸããïŒ ãšé£æº ãã©ã³ãã«ãæã軜éã§æãå®å®ãã CNI (圌ã¯ãŸãããã¢ã»ã¯ãã«ããŠãã¥ã¹ãŸãã¯ãã¢ã»ã³ã³ã¿ã€ãã«ã¹ã«ãã£ãŠçºæãããäŒèª¬ã«ãããšãæå€ã®äººç©ã®äžäººã§ããããŸããïŒã æãç¬åµçãªãããžã§ã¯ãã«ãèå³ããããããããŸãã
k3s ã ãã§ãã¯ïŒ - éåžžã®ã¯ã©ã¹ã¿ãŒã«ã¯ CNI ãå¿ èŠ: ãµã©ãµ - ä»»æã§ãããå¿ èŠã«å¿ã㊠MTU ãèšå®ããããšãå¿ããªãã§ãã ããã ç°¡åãã€èªç¶ã«ãããã¯ãŒã¯ ããªã·ãŒãæäœããããæå·åããªã³ãŸãã¯ãªãã«ãããããããšãã§ããŸãã
- (éåžžã«) 倧èŠæš¡ãªã¯ã©ã¹ã¿ãŒã«ã¯ CNI ãå¿ èŠ: ããã§ããããã®ãã¹ãã§ã¯å€§èŠæš¡ãªã¯ã©ã¹ã¿ãŒã®åäœã¯ç€ºãããŠããŸãããåãã§ãã¹ããå®æœãããã®ã§ããã10Gbps æ¥ç¶ãåãããµãŒããŒãæ°çŸå°ããããŸããã ãããã£ãŠãæè¯ã®éžæè¢ã¯ãå°ãªããšã Calico ãš Cilium ã䜿çšããŠãå€æŽãããã¹ããããŒãäžã§å®è¡ããããšã§ãã
åºæïŒ habr.com