ÔÚDocker¼¼ÊõÁ÷ÐпªÀ´Ö®Ç°£¬±£Ö¤Èí¼þ½»¸¶µÄÖÊÁ¿ºÍËٶȶÔÓÚ´ó¶àÊýÆóÒµÀ´Ëµ¶¼ÊÇÀ§Äѵġ£ÒµÎñµÄ¸´ÔÓÐÔ´øÀ´ÁËÓ¦Óõĸ´ÔÓÐÔ£¬Ãæ¶Ô³ÉǧÉÏÍòµÄ²»Í¬Ó¦Óã¬ÔËά²¿ÃÅÐèҪʱ¿ÌÓ¦¶ÔÀ´×Ô²»Í¬Ó¦Óᢲ»Í¬»·¾³µÄÌôÕ½¡£ÌرðÊÇÔÚ×Ô¶¯»¯ÔËά³Ì¶È²»¸ßµÄÆóÒµ£¬¡°ÈËÈâÔËά¡±³ÉÁ˽â¾öÎÊÌâµÄ³£ÓÃÊֶΣ¬ÈËÈâÔËάʹÈí¼þ½»¸¶µÄÖÜÆÚ±äµÃÂþ³¤¡¢ÈËΪʹʷçÏÕÉý¸ß¡£ 2013Ä꣬Dockerºá¿Õ³öÊÀ£¬ËüµÄ"Build once, Run anywhere"µÄÌØÐÔÈÃÈí¼þ½»¸¶»ÀȻһС£ÎÒÃÇÔÚÈÏÕæµ÷ÑÐÁËDocker¼¼Êõºó£¬¾ö¶¨¹¹½¨×Ô¼ºµÄ˽ÓÐÈÝÆ÷ÔÆ£¬±³¾°ºÍÄ¿±êÈçÏ£º
ʵÏÖÔËά×Ô¶¯»¯ÊÇÎÒÃÇÁ¢ÏîÖ®³õ×îÖ÷ÒªµÄÄ¿±ê£¬¶øËüÓÖÊÇʵÏÖºóÃæÄ¿±êµÄ»ù´¡¡£Õâ¸öÒòËØÖ±½Ó¾ö¶¨ÁËÎÒÃǵļ¼ÊõÑ¡ÐÍ¡£
¼¼ÊõÑ¡ÐÍ
ÎÒÃÇÊÇÔÚ2015Äê6Ô·ݿªÊ¼µ÷Ñм¼Êõ£¬2015Äê8Ô·ݿªÊ¼ÈÝÆ÷ÔÆÁ¢ÏÊ×ÏÈÒªÃæ¶ÔµÄÎÊÌ⣬¾ÍÊÇÈçºÎ½øÐÐÈÝÆ÷±àÅÅÒýÇæµÄÑ¡ÐÍ£¬¿É¹©Ñ¡ÔñµÄÓÐSwarm£¬Mesos£¬Kubernetes£¬ÉõÖÁ×ÔÖ÷Ñз¢¼¯Èº±àÅÅ£¬ÎÒÃÇÈÏÕæµ÷ÑÐÁËÿһÖÖ·½°¸£º

Swarmµ±Ê±ÊÇ0.4°æ±¾£¬¹¦ÄÜ»¹Ïà¶Ô¼òµ¥£¬ÓÅÊÆÊǼ¼ÊõÕ»±È½Ï¼òµ¥£¬Ð¡ÍŶӼ´¿É¼ÝÔ¦£¬µ«ÊÇ¿¼Âǵ½Ëü²»ÊÇÎȶ¨°æ£¬ËäÈ»Ëü·¢Õ¹ºÜ¿ì£¬µ«ÊÇûÓнâ¾öÎÒÃÇÏÖÓеÄÎÊÌ⣬ËùÒÔSwarm²»±»ÓÅÏÈ¿¼ÂÇ¡£
Mesosµ±Ê±ÊÇ0.23°æ±¾£¬ËüÄܹ»Ê¤Èδó¹æÄ£³¡¾°µÄÈÝÆ÷±àÅÅ£¬Æ«ÖØÓÚ×ÊÔ´³éÏó£¬ÓëÎÒÃÇ´ó¶àÊýÊÇJava WebµÄÓ¦Óõij¡¾°²»·û£¬ÁíÍ⣬Mesos¼¼ÊõÕ»ÓëÎÒÃÇÏÖÓм¼ÊõÕ»²î±ðÌ«´ó£¬²»µÃ²»·ÅÆúÕâ¸öÑ¡Ôñ¡£
×ÔÖ÷Ñз¢ÈÝÆ÷±àÅÅÒýÇæÎÒÃÇÒ²¿¼Âǹý£¬µ«ÊǾ¹ýÈÏÕæµÄ̽ÌÖ£¬×ÔÑбàÅÅÒýÇæ¶Ô±êÈý¸ö¿ªÔ´µÄ×é¼þµÄ¹¦ÄÜ£¬Ñз¢Í¶ÈëÐèÒªºÜ¶àµÄ³É±¾£¬¿ÉÄܽá¹û²¢²»ÄÜ´ïµ½Ô¤ÆÚ£¬Í¶Èë²ú³ö±ÈµÍ¡£ÁíÍ⣬ÈÝÆ÷ÔÆ×÷Ϊµ×²ãµÄ»ù´¡ÉèÊ©£¬Ñ¡Ôñ¸üÒªÉ÷ÖØ£¬Èç¹û×ÔÑÐÏîĿʧ°Ü£¬¿ÉÄÜ»áÀëÖ÷Á÷µÄÈÝÆ÷¼¼ÊõÔ½À´Ô½Ô¶£¬»ú»á³É±¾Ì«¸ß£¬ËùÒÔ×ÔÑеÄ·ÏßÒ²±»·ñ¶¨¡£
KubernetesÊÇÎÒÃǵÄ×îÖÕÑ¡Ôñ£¬Ëüµ±Ê±ÊÇ1.0.2°æ±¾£¬ÒѾÊÇ"Production Ready"£¬ÎÒÃÇÑ¡ÔñKubernetesµÄ×îÖ÷ÒªµÄÔÒòÊÇËüÀíÄîµÄÏȽø£¬¶øÇҷdz£ÊʺÏÎÒÃǹ«Ë¾µÄÖ÷Á÷Ó¦Óã¬Java WebÓ¦Óö¼ÊÇLong time runningµÄÈÎÎñ£¬KubernetesµÄ"Replication controller"¶ÔËüÖ§³Ö·Ç³£ºÃ¡£KubernetesÒÔÓ¦ÓÃΪÖÐÐĵÄÀíÄîºÍÉçÇøµÄ»îÔ¾¶È¸üÊǼᶨÁËÎÒÃǵÄÑ¡Ôñ£¬ÀúʱÈý¸öÔµļ¼ÊõÑ¡ÐÍÖÕÓÚÂäÏÂá¡Ä»£¬ÎÒÃǾö¶¨Ê¹ÓÃKubernetes¹¹½¨ÎÒÃǵÄ˽ÓÐÈÝÆ÷ÔÆÆ½Ì¨¡£
ÀíÂÛ»ù´¡ºÍÔÔò
ÔÚÎÒÃǾö¶¨Ê¹ÓÃKubernetesµÄ×÷ΪÈÝÆ÷±àÅÅÒýÇæºó£¬¹ØÓÚÑ¡Ð͵ÄÕùÂÛ³ÖÐøÁ˺ܳ¤µÄÒ»¶Îʱ¼ä£¬µ±Ê±¹úÄÚKubernetesµÄʹÓÃÕß»¹±È½ÏÉÙ£¬ºÜÄÑÕÒµ½³É¹¦µÄ°¸Àý¡£ÎÒÃÇÐèÒªÉîÈëµÄÑо¿Docker, KubernetesÏà¹ØµÄÈÝÆ÷¼¼Êõ£¬È·±£ÎÒÃǵľö²ßÊÇÕýÈ·µÄ£¬Õâ¶ÔÎÒÃǹ¹½¨ÈÝÆ÷ÔÆÖÁ¹ØÖØÒª¡£¾¹ýºÜ¶àµÄµ÷ÑкÍÌÖÂÛ£¬ÎÒÃÇ·¢ÏÖÈÝÆ÷ÔÆµÄÊÇÓÐÒ»Ì×Íê³ÉµÄÀíÂÛ»ù´¡Ö§³ÅµÄ£¬ÕâЩÀíÂÛÓÖÒýÉê³öÎÒÃǹ¹½¨ÈÝÆ÷ÔÆµÄÔÔò£º

²»¿É±ä»ù´¡ÉèÊ©£¬ÊÇÀûÓÃDocker¾µÏñµÄ²»¿É±äÐÔ£¬ÒÔ¸ü¼Ó±ã½ÝµÄ·½Ê½Î¬»¤»ù´¡ÉèÊ©:µ±»ù´¡ÉèÊ©Ë𻵻òÕß±ä¸üʱ£¬ÒÔÖ±½ÓÌæ»»µÄ·½Ê½´ïµ½Ä¿µÄ£¬¶ø²»ÊÇͨ¹ýÐÞÉÉË𻵵Ļù´¡ÉèÊ©£¬Õâô×öÐèÒªÌæ»»µÄ³É±¾×ã¹»µÍ£¬DockerÏÔÈ»×öµ½ÁËÕâÒ»µã£»¶ÔÓÚÒѾÔËÐеÄDockerÈÝÆ÷£¬Èç¹ûËü³öÏÖÒì³££¬²»ÔÙÊÇ´«Í³sshÉÏÈ¥µ÷ÊԵķ½Ê½£¬Ó¦¸ÃÊÇɱµôÕâ¸öÈÝÆ÷£¬ÖØÐÂÆô¶¯Ò»¸öеÄÈÝÆ÷£»Ìæ»»²Ù×÷¾ßÓпìËٺͿÉÖØ¸´µÄÌØÐÔ£¬ÈκβÙ×÷¶¼¿ÉÒÔËæÊ±»Ø¹ö£¬°²È«¿É¿¿£»¶ÔÓÚÉú²ú»·¾³µÄÔËά£¬²»¿É±ä»ù´¡ÉèÊ©µÄÀíÄîÓÈÎªÖØÒª£¬ºÜ¶àʹʶ¼ÊÇÔÚÉú²ú»·¾³ÖÐÖ±½ÓÐÞ¸ÄÔì³ÉµÄ¡£
»ù´¡ÉèÊ©¼´´úÂ룬¹ÜÀí»ù´¡ÉèÊ©Ïñ¹ÜÀí´úÂëÒ»Ñù£¬Ã¿¸ö»ù´¡ÉèÊ©¶¼ÊÇ¡°¿ÉÃèÊö¡±µÄ£¬ÀýÈçKubernetesÖеÄNode¸ÅÄËûÃÇÒ²Ó¦¸Ã×÷Ϊ¡°´úÂ롱µÄÒ»²¿·ÖÒÔ´úÂëµÄ·½Ê½½øÐйÜÀí¡£
¿É±à³ÌµÄ»ù´¡ÉèÊ©£¬»ù´¡ÉèÊ©²»½ö½öÊÇÌṩ¼ÆËã¡¢´æ´¢¡¢ÍøÂç×ÊÔ´£¬»¹ÒªÎªÉϲãÓ¦ÓÃÌṩ¿É±à³ÌµÄ½Ó¿Ú£¬ÈÃÉϲãÓ¦ÓÿÉÒÔ¸ü¼ÓÁé»îµÄʹÓûù´¡ÉèÊ©£¬ÈÝÆ÷ÔÆ´ÓÁ¢ÏîÖ®³õ¾Í¿¼Âǵ½ÁËÕâÒ»µã£¬ÈÝÆ÷ÔÆÆ½Ì¨ÓÐÒ»Ì×ÍêÕûµÄ¶ÔÍâRestful API£¬¿É¹©ÉϲãÓ¦Óã¬ÉõÖÁÍⲿӦÓõ÷Óá£
±£Ö¤¹¹½¨ÈÝÆ÷ÔÆµÄ¹ý³ÌÄܹ»ÕýÈ·µÄ½øÐУ¬»¹ÐèҪһЩÔÔò£¬¡±Build once£¬Run anywhere"£¬Ò»¸öDocker¾µÏñÒª¹á´©QAµ½Éú²ú»·¾³µÄÿ¸ö»·½Ú£¬²»ÔÊÐíQAºÍÉú²úµÄ¾µÏñ³öÏÖ²»Ò»ÖµÄÇé¿ö¡£"All in one"£¬¶ÔÓÚJava WebÓ¦Óã¬ÓÉÓÚÀúÊ·ÔÒò£¬¿ÉÄܶà¸öWeb AppÔËÐÐÔÚͬһ¸öTomcatÖУ¬ÒªÇóÿ¸öDocker¾µÏñÖÐÖ»ÔËÐÐÒ»¸öWeb App¡£
ÒÔÓ¦ÓÃΪÖÐÐÄ£¬ÊÇÎÒÃÇ×îÖØÒªµÄÔÔò£¬Ò²Êǽ¨ÉèÈÝÆ÷ÔÆµÄ³ö·¢µã£¬Õâ¸öÔÔòÈ·±£ÎÒÃǹØ×¢µÄÖØµãÊÇÓ¦Ó㬶ø²»ÊǽøÐмÆËã×ÊÔ´µÄ³éÏóºÍ×ÊÔ´µÄµ÷¶È£¬ÎÒÃǵÄÀíÏëÄ¿±êÊÇ£¬ÔÚ¡°ÓÅÑŵء°¹ÜÀíÓ¦ÓõÄÕû¸öÉúÃüÖÜÆÚͬʱ£¬Ë³±ã×öºÃ×ÊÔ´³éÏó£¬Ìá¸ß×ÊÔ´µÄÀûÓÃÂÊ¡£
·Ö²ãÖÎÀí£¬»ù´¡ÉèÊ©µÄÖÎÀíÓÉÈÝÆ÷ÔÆÍê³É£¬ÉϲãÓ¦ÓõÄÖÎÀíÓÉÓ¦ÓÃÖÎÀí²ã¸ºÔ𣬴ÓSaaS£¬µ½PaaS£¬ÔÙµ½CaaS£¬·Ö²ãÖÎÀí£¬¸÷²ãͨ¹ý½Ó¿ÚÏ໥µ÷Ó㬲ãÓë²ãÖ®¼ä»¥²»ÇÖÈë¡£
ÒÔKubernetesΪÖÐÐĹ¹½¨ÈÝÆ÷ÔÆ

ÈÝÆ÷ÔÆµÄÄ¿±ê¾ö¶¨ÁËÎÒÃÇÃæ¶ÔµÄÊÇÓ¦ÓõĹÜÀí£¬¼´Ó¦ÓöÔÓ¦µÄDockerÈÝÆ÷µÄ¹ÜÀí£¬Õâ¾ÍÒªÇóÎÒÃÇÒªÒÔKubernetesΪÖÐÐĹ¹½¨ÈÝÆ÷ÔÆ£¬¶ø²»ÊÇÒÔDockerΪÖÐÐÄ¡£DockerÖ»×÷ΪӦÓôò°ü¡¢´«µÝ¡¢ÔËÐÐʱµÄ¹¤¾ß£¬ËùÓеÄAPI¶¼ÒªÃæÏòKubernetes½øÐÐÉè¼Æ¡£
ÈÝÆ÷ÔÆÒªÊµÏָ߿ÉÓõĻù´¡ÉèÊ©£¬Äܹ»Ö§³Ö¶à¸öÊý¾ÝÖÐÐÄ¡£¶ÔÓÚÓ¦Óã¬ÒªÓжàά¶ÈµÄ¸ß¿ÉÓñ£Ö¤£¬Òª¹áͨ²¿ÊðÁ÷Ë®Ïߣ¬Í¨¹ýCI/CDʵÏÖ¿ìËÙ½»¸¶£¬ÁíÍ⣬ÈÝÆ÷ÔÆµÄ½¨Éè¼ç¸ºµÄ¶îÍâÄ¿±êÊÇҪΪδÀ´2~4ÄêµÄ¼¼Êõ·¢Õ¹×öÆÌµæ£¬ÎªÓ¦ÓõÄCloudNative¸ÄÔìºÍÕû¸ö¼¼ÊõÍŶӵÄDevOpsʵ¼ùµì¶¨»ù´¡¡£
ÈÝÆ÷ÔÆµÚÒ»²½ÊÇʵÏÖÓ¦ÓõÄÈ«ÉúÃüÖÜÆÚ¹ÜÀí£¬ÈÃÓ¦ÓÃʵÏÖÃë¼¶µÄÉÏÏß¡¢»Ø¹ö¡¢Éý¼¶¡¢À©ÈÝ/ËõÈÝ¡¢ÏÂÏß¡£ÓÉÓÚÀúÊ·µÄÔÒò£¬ÓÐЩӦÓõÄÅäÖúͻ·¾³ñîºÏÔÚÒ»Æð£¬ÓеÄÓ¦ÓÃÊǶÔÓÚÍⲿÒÀÀµÊÇÓ²±àÂ루ÀýÈç·þÎñ·½µÄIPµØÖ·£©µÈ£¬ÕâЩӦÓÃÔÚÇ¨ÒÆÖÁÈÝÆ÷ÔÆÖ®Ç°ÐèÒª½øÐиÄÔì¡£
ÈÝÆ÷ÔÆÒªÊµÏÖ¶àÊý¾ÝÖÐÐĶà»î£¬ÒÔ±£Ö¤Êý¾ÝÖÐÐļ¶µÄ¸ß¿ÉÓÃÐÔ¡£¶ÔÓÚµ¯ÐÔÀ©ÈÝ£¬ÎÒÃǵļƻ®ÊÇÏÈʵÏÖÊÖ¶¯À©ÈÝ£¬ÔÙʵÏÖ×Ô¶¯À©ÈÝ; ¶ÔÓÚ×Ô¶¯À©ÈÝ£¬ÏÈʵÏÖ»ùÓÚCPU/MemoryµÄ×Ô¶¯À©ÈÝ£¬ÔÙʵÏÖ»ùÓÚCustom MetricsµÄ×Ô¶¯À©ÈÝ¡£Óë´ó¶àÊý¹¹½¨ÈÝÆ÷ÔÆµÄ·½Ê½²»Í¬£¬ÎÒÃÇÊ×ÏȽâ¾öÉú²ú»·¾³µÄÔËά×Ô¶¯»¯µÄÎÊÌ⣬Æä´ÎÔÙ½â¾öÈÝÆ÷µÄ¹¹½¨ÎÊÌ⣨¼´CI/CD)¡£ÎÒÃǵÄÍøÂçÑ¡ÐÍÊÇflannel£¬ÍòÕ×ÍøÂ磬flannelËä˵ÓÐÐÔÄÜËðʧ£¬µ«Ô¶ÄÜÂú×ãÎÒÃǵÄʵ¼ÊÐèÒª¡£´æ´¢ÎÒÃÇʹÓÃCephµÄRBD·½Ê½£¬Ê¹ÓÃÒ»Äê¶àÀ´£¬RBDµÄ·½°¸·Ç³£Îȶ¨¡£Ceph FSµÄ·½Ê½ÎÒÃÇÒ²Óг¢ÊÔ£¬µ«ÊÇÓÉÓÚÍŶӾ«Á¦ÓÐÏ޺ͿÉÄܵķçÏÕ£¬Ò»Ö±Ã»ÓÐÕýʽʹÓá£
¸ß¿ÉÓûù´¡ÉèÊ©
ÈÝÆ÷ÔÆÒªÊµÏָ߿ÉÓõĻù´¡ÉèÊ©£¬¶àά¶È±£Ö¤Ó¦ÓÃ/·þÎñµÄ¸ß¿ÉÓÃÐÔ£º
ÔÚÓ¦ÓòãÃæ£¬Ã¿¸öÓ¦ÓÃÓÐÖÁÉÙ3¸ö¸±±¾£¬Í¨¹ýKubernetes ReplicationController/ReplicaSetsÀ´±£Ö¤¡£Ç¿ÖÆÃ¿¸öÓ¦Óñ©Â¶½¡¿µ¼ì²é½Ó¿Ú£¬Í¨¹ýÉèÖÃlivenessºÍreadness±£Ö¤Ó¦ÓÃÒì³£ºóÄܹ»±»¼°Ê±µÄ·¢ÏÖ£¬´Ó¶øÓÃеÄʵÀý´úÌæ¡£
KubernetesµÄ×é¼þҲҪʵÏָ߿ÉÓã¬ÌرðÊÇETCD¼¯ÈºµÄ¸ß¿ÉÓ㬶¨ÆÚ±¸·ÝETCDµÄÊý¾ÝÊǸöºÃϰ¹ß¡£
ΪÁ˱£Ö¤Êý¾ÝÖÐÐļ¶±ðµÄ¸ß¿ÉÓã¬ÎÒÃÇÔÚÿ¸öÊý¾ÝÖÐÐIJ¿ÊðÁËÒ»Ì×Kubernetes¼¯Èº£¬Ã¿¸öÊý¾ÝÖÐÐÄÄܹ»¶ÀÁ¢´æ»î£¬¶à¸öÊý¾ÝÖÐÐÄ»¥ÏàÔÖ±¸¡£
¼ÆËã×ÊÔ´QoSÓ볬Âô

ÓÉÓÚ×ÊÔ´ÏÞÖÆ£¬¼¼ÊõÈËÔ±ÍùÍù¹ýÓÚ¹Ø×¢µ¥»úµÄ×ÊÔ´ÀûÓÃÂÊ¡£Docker£¨Cgroup¡¢Namespace£©ÌṩµÄ×ÊÔ´¹²ÏíÓë¸ôÀëµÄ»úÖÆ£¬ÈÃÎÒÃǶÔ×ÊÔ´ÀûÓÃÂÊÓÐÁËеÄÈÏʶ£¬ÌرðÊÇʹÓÃÈÝÆ÷±àÅÅÒýÇæºó£¬ÎÒÃǶÔ×ÊÔ´µÄÀí½âÓ¦¸ÃÔÚ¼¯ÈºÎ¬¶È½øÐп¼Á¿£¬¶ø²»ÊÇÔÚ¿¼Âǵ¥»úµÄÀûÓÃÂÊ¡£Í¬Ñù£¬ÔÚÕû¸öÊý¾ÝÖÐÐÄ£¬ÉõÖÁ¶à¸öÊý¾ÝÖÐÐĽøÐÐ×ÊÔ´ÀûÓÃÂʵÄ×ۺϿ¼Á¿Ò²ÊǷdz£±ØÒªµÄ¡£
ÔÚÌá¸ß×ÊÔ´ÀûÓÃÂÊ¡¢½µµÍ³É±¾µÄͬʱ£¬ÐèÒªÔÚ·þÎñµÄQoSÓëÓÅ»¯×ÊÔ´ÀûÓÃÂÊÖ®¼äÓиöƽºâ¡£ÎÒÃǵÄÔÔòÊÇÔÚ±£Ö¤·þÎñÖÊÁ¿µÄͬʱ£¬¾¡Á¿Ìá¸ß×ÊÔ´µÄÀûÓÃÂÊ¡£
¸ù¾ÝKubernetesµÄ×ÊÔ´Ä£ÐÍ£¬ÔÚPod levelµÄQoS·ÖΪÈý¸öµÈ¼¶£ºGuarantee¡¢Burstable¡¢BestEffort£¬ÎÒÃÇÒ²ÊÇÒÀÕÕÕâÈý¸ö¼¶±ð¶ÔÓ¦ÎÒÃÇÓ¦ÓõÄÓÅÏȼ¶À´Öƶ¨×ÊÔ´³¬ÂôµÄ±ê×¼¡£
ÎÒÃǶÔÓ¦ÓÃÉèÖõÄQoS±ê×¼£º
- Kubernetes×Ô´øµÄ×é¼þʹÓÃGuarantee
- ÖØÒªµÄ×é¼þºÍÓ¦Ó㬱ÈÈçZooKeeper¡¢Redis£¬Óû§·þÎñµÈʹÓÃGuarantee
- ÆÕͨµÄÓ¦Óã¨Burstable£©°´ÕÕÖØÒªÐÔ·Ö¼¶£¬°´ÖØÒª³Ì¶ÈCPU·ÖΪ2£¬5£¬10Èý¸ö³¬Âô±ê×¼£¬10±¶³¬ÂôÊʺÏbossºǫ́ÀàµÄÓ¦Ó㬴ó¶àÊýÊʺϷÃÎÊÁ¿²»¸ß¡£ÄÚ´æÊ¹Óù̶¨µÄ1.5±¶³¬Âô±ê×¼¡£
ÓÐÒ»µãÐèÒªÌØ±ð×¢Ò⣬ÔÚÉú²ú»·¾³ÖУ¬²»ÒªÊ¹ÓÃBestEffortµÄ·½Ê½£¬Ëü»áÒý·¢²»È·¶¨µÄÐÐΪ¡£
ÈÝÆ÷ÔÆ¹ÜÀíÆ½Ì¨

Ëæ×ÅÔ½À´Ô½¶àµÄÓ¦ÓÃÇ¨ÒÆµ½ÈÝÆ÷ÔÆÖУ¬ÐèÒª½¨Á¢Ò»¸ö¿ÉÊÓ»¯µÄ¹ÜÀíϵͳ£¬ÎÒÃÇʹÓÃKubernetesÔÉúAPI´î½¨Ò»Ì×Web¹ÜÀíϵͳ£¬Í¨¹ý¶ÔNamespace/ResourceQuota/Deployment/Service/EndpointµÈAPIµÄµ÷ÓÃʵÏÖ×ÊÔ´Åä¶îµÄ»®·ÖºÍÓ¦ÓÃÉúÃüÖÜÆÚµÄ¹ÜÀí¡£
ÈÝÆ÷ÔÆÆ½Ì¨ÔÚÒ×ÓÃÐÔ·½Ãæ×î´óµÄÌôÕ½ÊÇTroubleshootingµÄ»·½Ú£¬ÈÝÆ÷ÔÆ×îÖÕÊÇÒª½»¸¶¿ª·¢ÈËԱʹÓã¬ËûÃǶÔKubernetes²¢²»Á˽⣬ÕâÈÃTroubleshootingµÄ»·½Ú³äÂúÌôÕ½£¬ÎÒÃÇÏÖÔÚÖ»ÊÇÏëͨ¹ýwebsocket½«kubectl execµÄconsoleչʾ¸øÓû§£¬»òÕßÈÃÓû§ÔÚÈÕÖ¾ÖÐÐÄ(EFK)Öв鿴ÈÕÖ¾£¬»¹Ã»ÓиüºÃµÄ·½°¸£¬Èç¹û¸÷λÓиüºÃµÄ·½°¸£¬Çë²»Áߴͽ̡£
ÈÝÆ÷ÔÆÎ´À´ÒªÊµÏÖÕû¸öÊý¾ÝÖÐÐĵĿÉÊÓ»¯£¬ÈÃÔËά¶ÔËùÓеÄÊý¾ÝÖÐÐĵÄʵʱÔËÐÐÇé¿öһĿÁËÈ»£¬µ±È»£¬ÊµÏÖÕâһĿ±êÓÐÏ൱µÄÄѶȡ£
ÈÝÆ÷ÔÆµÄ¼à¿Ø²ÉÓÃHeapsterµÄ·½°¸£¬ÕýÔÚÏòPrometheus·½Ê½×ª±ä¡£
ÈÕÖ¾ÊÕ¼¯ÊÇÖ÷Á÷µÄEFKµÄ×éºÏ·½Ê½¡£
ÈÝÆ÷ÔÆ¹ÜÀíϵͳµÄ»ù±¾¹¦ÄÜÈçÏÂͼËùʾ£º

ÈÕÖ¾ÊÕ¼¯·½°¸ÈçÏÂͼËùʾ£º

ÎÒÃÇΪJavaÓ¦ÓÃÌṩÁËÒ»¸ö¹«¹²ÈÕÖ¾×é¼þ¡ª¡ªAppenders£¬Ëü»á½«JavaµÄÈÕÖ¾Á÷ʽÊä³öµ½FluentdÖÐת£¬Êä³öµ½FluentdÖÐתµÄÔÒòÊÇÓëÏÖÓеÄÈÕÖ¾ÖÐÐIJ¢ÐÐÔËÐС£ÆäËûµÄ²¿·Ö¸úÖ÷Á÷µÄEFKģʽûÓÐÈκÎÇø±ð¡£Ê¹ÓÃDaemonSetÔËÐÐFluentdºÍFluentdÓëÓ¦ÓÃÒÔSidecarµÄ·½Ê½½øÐÐÈÕÖ¾²É¼¯Ò²ÊDZȽϺõÄÑ¡Ôñ¡£
ÔÚÈÝÆ÷ʱ´ú£¬CloudNativeÓ¦ÓÃÊDZØÈ»µÄÑ¡Ôñ£¬¹¹½¨ÔÆÔÉúÓ¦ÓõÄÔÔòÇë²Î¿¼12Òò×Ó¡£
ÈÝÆ÷ÔÆ¹ÜÀíϵͳ×ÔÉíÒ²ÊÇCloudNativeÓ¦Óã¬ËüͬÑùÔËÐÐÔÚKubernetesÖУ¬Ó봫ͳµÄÉÏÏß¹¤¾ß²»Í¬µÄÊÇ£¬ËüÄܹ»½øÐÐ×ÔÎÒÉúÃüÖÜÆÚ¹ÜÀí¡£
Container based¡¢Mircoservices OrientedÊÇCloud Native³«µ¼£¬Ö»ÓÐÓ¦ÓÃÏòCloud Nativeת»¯£¬²ÅÄܸüºÃµÄ·¢»ÓÈÝÆ÷ÔÆµÄЧÁ¦¡£
CI/CD½¨Éè

°´ÕÕÎÒÃÇÔ¤ÏȵÄRoadmap£¬ÏȽâ·ÅÉú²ú»·¾³µÄÔËά¹¤×÷£¬ÔÙ½â¾öÓ¦ÓõĹ¹½¨¡¢¼¯³ÉµÄÎÊÌâ¡£ÏÖÔÚ£¬ÈÝÆ÷ÔÆµÄ¹ÜÀíϵͳ»ù±¾ÉÏÌæ´úÁËÈÕ³£Î¬»¤µÄÊÖ¹¤²Ù×÷£¬Æµ·±µÄÊÖ¹¤´¥·¢¹¹½¨³ÉÁËÈÝÆ÷ÔÆÍÆ½øµÄÆ¿¾±£¬ËùÒÔ£¬¹¹½¨CI/CDƽ̨±äµÃ·Ç³£½ôÆÈ¡£
¾¹ýǰÆÚµ÷ÑУ¬ÎÒÃǾö¶¨Ê¹ÓÃGitlab + Jenkins + Docker RegistryµÄ¼¼ÊõÕ»¹¹½¨CI/CDƽ̨¡£ÎªÁËͳһ¼¼Êõ±ê×¼ºÍ¾¡Á¿¼õÉÙ¹¹½¨¹ý³ÌÖеIJ»È·¶¨ÐÔ£¬ÎÒÃDzÉÓÃ×Ô¶¯Éú³ÉDockerfileµÄ·½Ê½£¬¶ø²»ÊÇÈÿª·¢×Ô¼º±àдDockerfile¡£ÎÒÃDzÉÓÃÎȶ¨Ö÷¸ÉµÄ·½Ê½£¬MR×Ô¶¯´¥·¢¹¹½¨¹ý³Ì£¬¾¹ýµ¥Ôª²âÊÔ£¬´ò°ü£¬±àÒëºÍDocker¹¹½¨£¬ÈÝÆ÷ÔÆµÄ½çÃæ»áʵʱÏÔʾ¹¹½¨µÄ¹ý³Ì£¬ÔÚ¹¹½¨½áÊøºó£¬Óû§»áÊÕµ½¹¹½¨µÄ½á¹ûµÄÓʼþ¡£×îÖÕ£¬CI²ú³öµÄDocker¾µÏñ»á±»ÍÆËÍÖÁQA»·¾³µÄRegistryÉÏ¡£
¶ÔÎÒÃÇÀ´Ëµ£¬CI/CD×îÖØÒªºÍ×îÄѵĻ·½ÚÊÇ×Ô¶¯»¯²âÊÔ£¬ÓÈÆäÊÇ×Ô¶¯»¯¼¯³É²âÊÔ£¬ÎÒÃÇÕýÔÚŬÁ¦½â¾ö¡£
CIµÄ¹ý³ÌÎÒÃÇ»¹×öÁË´úÂëµÄÒÀÀµ¿â¼ì²é£¬´úÂë°æ±¾×·×ÙºÍDocker¾µÏñ×ÔÃèÊöµÈ£¬ÈÃDocker¾µÏñ´Ó²úÉú¿ªÊ¼£¬ÔÚ²âÊÔ£¬Éú²ú²âÊÔ£¬Éú²úµÈÿ¸ö»·½Ú¶¼ÊÇ¿É×·Ëݵġ£ÕâÑù±ãÓÚÎÒÃDzéÕÒÎÊÌâºÍ¶ÔCIµÄ¹ý³Ì½øÐгÖÐøµÄ¸Ä½ø¡£
¶Ô³£Óü¼ÊõÕ»ºÍÅäÖýøÐбê×¼»¯Ò²ÊÇCI½¨ÉèµÄÒ»¸öÖØÒªÄ¿±ê¡£±£Ö¤CI²ú³öµÄ¾µÏñµÄÖÊÁ¿£¨ÀàËÆ´ÎÆ·ÂÊ£©ÊǶÔCIϵͳ¿¼ºËµÄÖØÒª±ê×¼¡£
ÏÂͼÊÇÎÒÃÇCI/CDƽ̨µÄ¹¤×÷Á÷ʾÒâͼ£º

ÏÂͼչʾÁËÕû¸ö²¿ÊðÁ÷Ë®Ïߣ¬¾µÏñ´Ó¹¹½¨µ½Éú²ú²¿ÊðµÄÈ«¹ý³Ì£¬ÒÔ¼°¹ý³Ì¡¢½á¹ûµÄ·´À¡£º

Óöµ½µÄÎÊÌâºÍÌôÕ½
µ½Ä¿Ç°ÎªÖ¹£¬»Ø¹ËÕû¸öÈÝÆ÷ÔÆµÄ¹¹½¨¹ý³Ì£¬À´×Ô¼¼ÊõÉϵÄÌôÕ½²¢²»¶à£¬µ«ÊÇÒ²²ÈÁËһЩ¿Ó¡£
Óöµ½¹ýRBDÅ̱»Ëø×¡£¬Ð²úÉúµÄPodÎÞ·¨¹ÒÔØµÄÇéÐΣ¬½â¾ö°ì·¨Êǽ«RBDÅÌÊÖ¹¤½âËø£¬ÐµÄPod»á×Ô¶¯¹ÒÔØ¡£
KubernetesµÄÒ»¸öBug£¬KubernetesµÄReplicaSetsÃû³ÆÊǸù¾ÝDeploymentµÄPodTemplateµÄÕªÒª²úÉú£¬Ê¹ÓõÄAdlerËã·¨£¬HashÅöײ·Ç³£Æµ·±£¬»áÔÚÉý¼¶¹ý³ÌÖУ¬Deployment²»ÄÜ´´½¨×îеÄReplicaSets¶øÔì³ÉÉý¼¶Ê§°Ü¡£½â¾ö°ì·¨Êǽ²adlerËã·¨»»³ÉFNVËã·¨£¬À´¼õÉÙHashÅöײµÄƵÂÊ£¬ÕâÏÔÈ»²»ÊÇ×îÖյĽâ¾ö·½°¸£¬×îÖյķ½°¸»¹ÔÚ³ÖÐøÌÖÂÛÖУ¬ÓÐÐËȤµÄÅóÓÑ¿ÉÒÔ²ÎÓ룺https://github.com/kubernetes/community/pull/384£¬https://github.com/kubernetes/kubernetes/issues/29735¡£
ÓÉÓÚһֱûÀ´µÃ¼°Ç¨ÒÆHarbor£¬ÎÒÃÇÒ»Ö±Ö±½ÓʹÓÃDocker registry 2.1°æ±¾×÷Ϊ˽ÓоµÏñ²Ö¿â£¬Ê¹ÓÃRestful APIʱ£¬_catalogĬÈÏ·µ»Ø×ÖĸÐòµÄǰ100¸ö¾µÏñ£¬¿Í»§¶ËÐèÒª´¦Àí·ÖÒ³µÄÎÊÌâ¡£
Ó¦ÓÃÏòÈÝÆ÷ÔÆÇ¨ÒÆÊÇÈÝÆ÷ÔÆ½¨Éè¹ý³ÌÖл¨·Ñ×î¶à¾«Á¦µÄµØ·½£¬ÓÉÓÚÐèÒªÊÊÓ¦ÈÝÆ÷ÔÆ±³ºóµÄÀíÄîת±äºÍ¶ÔÏÖÓÐÓ¦ÓøÄÔì½øÐиÄÔì£¬Ç¨ÒÆ¹ý³ÌÖÐÊܵ½Á˺ܶàÌôÕ½£¬×î´óµÄÌôÕ½ÊÇDubboÓ¦ÓõÄÇ¨ÒÆÎÊÌ⣬ÓÉÓÚFlannelµÄOverlayÍøÂçʹÈÝÆ÷»¯µÄDubboÓ¦Óò»ÄÜÓëOverlayÍøÂçÖ®ÍâµÄÓ¦ÓÃÁ¬Í¨£¬×îºóÎÒÃÇÐÞ¸ÄÁËÍøÂç²ßÂÔ£¬Ê¹µÃDubboµÄÓ¦ÓÿÉÒÔÎÞ·ìµÄÇ¨ÒÆµ½ÈÝÆ÷ÔÆÖС£
ÏÂÒ»½×¶ÎÈÝÆ÷ÔÆ¹¤×÷µÄÖØµã£¬ÊÇÍÆ¶¯Ó¦ÓÃÏòCloud NativeºÍ΢·þÎñ»¯·½Ïò¸ÄÔì¡£
ÈÝÆ÷ÔÆÃæÁÙµÄ×î´óÌôÕ½À´×ÔÓÚÀíÄîת±ä£¬ÈÝÆ÷¼¼Êõ¸Ä±äÁËÈí¼þ½»¸¶µÄÉú̬£¬ÈÝÆ÷ʱ´úÐèÒª¼¼ÊõÈËÔ±ÒÔеÄÀíÄî¹¹½¨Ó¦Óã¬ÈçºÎÈü¼ÊõÈËԱ˳ÀûµÄÍê³ÉÀíÄîµÄת±äÊÇÿ¸öÈÝÆ÷ÔÆµÄ½¨ÉèÕßÃÇÐèÒªÈÏÕæ¿¼ÂǵÄÎÊÌâ¡£
Q&A
Q£ºÇë½Ìһϴ¦ÀíCIʱ£¬±ÈÈ缯Ⱥ×Ô¶¯»¯²¿Êð·½ÃæµÄÁ£¶ÈÊÇÔõÑùµÄ£¿±ÈÈçÐÞ¸´Ò»¸öbug¸ÄÁËÒ»¸öclassÎļþ£¬È»ºó±¾µØ²âÊÔÍêÖ®ºóÐèÒªµ½ÏßÉϲ¿Êð½øAB²âÊÔ£¬ÄÇô¾ÍÖ±½Óͨ¹ýCI×Ô¶¯²¿Êðµ½¼¯Èº·þÎñÆ÷Âð£¿
A£ºÎÒÃǵÄ×ö·¨ÊÇÖ»ÒªÓÐÐ޸ľʹ¥·¢ÖØÐ¹¹½¨£¬ÕâÖ»ÊʺÏÎÒÃǹ«Ë¾µÄÇé¿ö£¬Äú¿ÉÒÔ¸ù¾Ý×Ô¼ºµÄÇé¿ö×ö³öÁ£¶ÈÑ¡Ôñ¡£
Q£ºÄÜÏêϸ˵˵DubboÓ¦ÓÃÇ¨ÒÆÓöµ½µÄÎÊÌâ¼°½â¾ö°ì·¨Âð£¿
A£º½â¾ö·½°¸±È½Ï´Ö±©£¬¶ÔÓÚFlannel£¬Container¿ÉÒÔÍù³öÈ¥£¬µ«ÊÇÍâÃæµÄÇëÇó½ø²»µ½Container£¬ÒòΪÎÒÃÇÎïÀí»ú¹æÄ£ÓÐÏÞ£¬ÎÒÃǾÍÅäÖþ²Ì¬Â·ÓÉ£¬Ö»ÒªÈõ½´ïNodeµÄÄÜÕÒµ½Container¾ÍÐÐÁË¡£
Q£º×Ô¶¯Éú³ÉDockerfileµÄÄ¿µÄÊÇʲô£¿ÕâÑù×öÓÐʲôÓÅÊÆ£¿
A£ºÕâ¸öÎÊÌâÓÐÁ½¸ö·½Ã棬µÚÒ»¸öÊDZê×¼»¯¹æ·¶»¯µÄÎÊÌ⣬ÎÒÃǵÄÓ¦Óôó¶àÊÇJava Web£¬ÏàËÆ¶ÈºÜ¸ß£¬ËùÒÔ¿ÉÒÔ×Ô¶¯Éú³É£¬Ã»ÓÐÊ²Ã´ÌØÊâÐèÒª¿ª·¢×Ô¼ºÐ´µÄ£»ÁíÍ⣬ÎÒÃÇÔÚCIƽ̨ÀÁô³öÁ˱à¼DockerµÄ¿Ú×Ó£¬Ò²¿ÉÒÔÕë¶ÔÌØÊâµÄÇé¿ö×Ô¼º±àд£¬µ«ÊÇÕâÖÖÊǷdz£ÉÙÊýµÄÇé¿ö¡£CI¸úÿ¸öÆóÒµµÄÒµÎñÇé¿ö½ôÃÜÏà¹Ø£¬»¹ÊǾßÌåÇé¿ö¾ßÌå·ÖÎö°É¡£
Q£ºÎÒÆðÁËһЩPod£¬¶ÔÍâÓÐService£¬È»ºóÎÒÏëÈÃPodʵÏÖµ¥ÈÎÎñ£¬µ«ÎÊÌâÊÇ£¬Service¶ÔPodÑ¡Ôñ»úÖÆÊÇËæ»úµÄ£¬Ò²¾ÍÊÇ˵ÓпÉÄÜ»á³öÏÖ¶à¸öÈÎÎñÇëÇóµ½Ò»¸öPodÉÏ£¬´ï²»µ½ÎÒµÄÒªÇó£¬Ôõô½â¾ö£¿
A£ºÕâ¸öÎÊÌâÎÒ¸öÈ˵ÄÀí½â£¬ÄúÒª½â¾öµÄÎÊÌâ¸úÒ»¸öService¶ÔÓ¦¶à¸öPodµÄ³¡¾°²»Ì«ÎǺϣ¬ÎÒ½¨ÒéÄú¿¼ÂÇÆäËûµÄ·½Ê½ÊµÏÖ£¬±ÈÈç¶à¸ösevice-podµÄ×éºÏµÈµÈ£¬»òÕß¿¼ÂÇÆäËûµÄ·½Ê½¡£
Q£º¡¸Kubernetes master ¸ß¿ÉÓá¹ÈçºÎÉè¼Æ£¿¶à¸öÊý¾ÝÖмäÊÇstand-by¹ØÏµ£¿
A£ºAPI ServerÊÇÎÞ״̬µÄ£¬¿ÉÒÔ²¿Êð¶à¸ö£¬Ç°¶Ë¸ºÔؾùºâ£¬Scheduler/ControllerManagerÓÐ״̬¿ÉÒÔ×ö³ÉÖ÷±¸¡£Kubernetes»¹ËãÎȶ¨£¨µ±È»ÎÒÃǵÄÁ¿Ð¡£©¡£
Q£º¹ó˾ʹÓõÄKubernetes°æ±¾ÊÇ£¿RBDËøËÀµÄÎÊÌâÖ»ÄÜͨ¹ýÊÖ¶¯½âËøÀ´½â¾öÂð£¿ÓÐÆäËû·½°¸Âð£¿
A£ºÎÒÃÇÉÏÏ߱ȽÏÔ磬Éú²úϵͳ»¹ÊÇ1.2°æ±¾£¬ÎÒÃÇÕýÔÚÉý¼¶1.6°æ±¾¡£RBDÎÒÖ»³¢ÊÔÁËÊÖ¶¯½âËøµÄ·½·¨£¬±ðµÄ·½·¨Ã»Óг¢ÊÔ¡£
Q£ºÏëÎÊϹØÓÚÄãÃÇKubernetes·Ö²¼Ê½´æ´¢µÄÑ¡Ôñ£¬ÒÔ¼°ÔÚʹÓõ±ÖÐÓöµ½ÁËÄÇЩÎÊÌ⣿
A£ºÎÒÃÇÓ¦Óò»¹ÒÅÌ£¬ËùÒÔʹÓÃCephµÄ³¡¾°²»¶à¡£Ê¹ÓÃRBDûÓöµ½Ê²Ã´ÎÊÌ⣬ÓÐЩ³¡¾°ÎÒÃÇÐèÒª¹²Ïí´æ´¢£¨Filesystem)£¬ÒòΪÎÒÃÇÈËÊÖÓÐÏÞ£¬Ã»¾«Á¦³¢ÊÔCeph FS»òÕ߯äËû·½Ê½£¬ÕâËã¸öÎÊÌâ°É¡£
Q£ºÔÚEFKµÄ¼Ü¹¹ÖÐÓÐKafkaµÄ´æÔÚ£¬Ä¿µÄºÎÔÚ£¿ÊDZ£Ö¤ÈÕÖ¾²»¶ªÊ§£¬»¹ÊÇÌá¸ßÍÌÍÂÁ¿£¿
A£ºÖ÷ÒªÊÇ×öBuffering»º³å£¬ÎÒÃÇÕâ¸öÀﻹÓиö±ðÈÕÖ¾ÐèÒªÖм䴦ÀíµÄ¹ý³Ì£¬´ÓKafkaÈ¡³ö¼Ó¹¤£¬ÔÙ·ÅÈëKafka£¬×îºóµ½Elasticsearch¡£
Q£ºÄÜ·ñÏêϸ½éÉÜÏÂCIϵͳ¿¼ºËµÄÖØÒª±ê×¼:¶Ô³£Óü¼ÊõÕ»ºÍÅäÖýøÐбê×¼»¯¡£¾ßÌå¶ÔÄÄЩָ±ê×öÁ˱ê×¼»¯£¿¼¼Êõ·½ÃæÈçºÎʵÏֵģ¿
A£º¶ÔÓÚJavaÓ¦Óã¬ÎÒÃÇÖ»ÌṩJDK 7ºÍJDK 8£¬¹æ¶¨ÈÕ־Ŀ¼µÄλÖã¬Ìṩ±ê×¼µÄLog4j£¬ÅäÖÃÓë´úÂë·ÖÀ룬war°üÓë»·¾³²»¹ÜµÈµÈÇ¿ÖÆµÄÒªÇó¡£
Q£ºDocker RegistryµÄ¾µÏñ¸´ÖÆÊÇÈçºÎʵÏֵģ¿
A£ºÅܽű¾¡¢docker save¡¢scp¡¢docker load£¬ÕâÖÖ×ö·¨±È½Ïlow£¬½¨ÒéÖ±½ÓÓÃHarbor×ö°É¡£
Q£ºÇëÎÊDockerfile×Ô¶¯Éú³ÉÊÇÈçºÎʵÏֵģ¿
A£º¸ù¾ÝÄ£°åÉú³ÉÁË£¬±ÈÈç¶ÔÓÚJava Web£¬Ôڹ涨ºÃÈÕÖ¾Êä³öĿ¼µÈÇé¿öϵ£¬¿É±äµÄÖ»Êǹ¤³ÌÃû³ÆµÈºÜÉÙ²¿·Ö£¬Ãû³ÆCIϵͳ֪µÀ£¬ËùÒԾͿÉÒÔ×Ô¶¯Éú³ÉÁË¡£
Q£ºkube-proxy ÄDZßÐÔÄÜÔõôÑù£¿ »¹ÓÐÒ»¸öÎÊÌâ¾ÍÊÇÒ»Ð©ÌØ¶¨µÄÈÝÆ÷µÄ¹Ì¶¨IPÊÇÔõô×öµÄ£¿
A£ºÎÒÃÇÁ¿±È½ÏС£¬Ã»ÓÐÐÔÄÜÆ¿¾±£¬1.2£¨¾ßÌå¼Ç²»ÇåÁË£©ÒÔºókube-proxyÊÇ´¿iptablesʵÏÖ£¬Ã»ÄÇô²î°É£¬ÒµÄÚÒ²ÓÐÓÃHAProxyµÈ´úÌæµÄ£¬¸öÈ˾õµÃû±ØÒª¡£Ìض¨µÄÈÝÆ÷¹Ì¶¨IPÎÒÃÇûÓÐʵÏÖ£¬ÎÒÃÇûÓÐÕâÖÖ³¡¾°¡£Äã¿ÉÒÔÕÛÖÐһϣ¬¸ø¸öNodePort£¬¹Ì¶¨IPÎÒ¸öÈ˾õµÃ¾¡Á¿ÉÙÓÃΪºÃ¡£
Q£º¾µÏñµÄ×ÔÃèÊöÄÜ·ñÕ¹¿ª½²½²ÄØ£¿
A£º¾ÍÊÇÿ¸ö¾µÏñÀï¶¼ÓÐÃèÊöËü¹¹½¨¹ý³ÌµÄDockerfile¡£
Q£º¶ÔÓÚÄãÃÇÏÖÔÚʹÓõÄÕâÌ×ÈÝÆ÷ÔÆÆ½Ì¨£¬·þÎñÖ®¼äµÄÒÀÀµÊÇÔõôʵÏֵģ¿ÔõÃ´Çø·ÖµÄ»·¾³£¿ÁíÍâÓ¦Óý¡¿µ¼ì²éºÍ×·×ÙÓõÄÊÇʲô·½°¸£¿
A£º·þÎñÖ®¼äµÄÒÀÀµÖ¸Ê²Ã´£¿Èç¹ûÊÇÓ¦Óã¬ËûÃÇ»¹ÊÇͨ¹ýDubbo×ߣ¬Èç¹ûÊÇ·ÇJavaµÃÓ¦Ó㬾Íͨ¹ýServiceµ÷Óá£ÎÒÃÇÔÚ²»Í¬µÄ»·¾³²¿ÊðÁËKubernetes¼¯Èº£¬Ã¿¸ö¼¯ÈºÒ²²¿ÊðÁ˹ÜÀíϵͳ£¬ÕâÑù¾ÍÖªµÀÿ¸öϵͳ¶ÔÓ¦Äĸö»·¾³ÁË¡£½¡¿µ¼ì²é¾ÍÊÇͨ¹ýKubernetesµÄ½¡¿µ¼ì²é»úÖÆÊµÏֵģ¬livenessprobe¡£
Q£º¶àÊý¾ÝÖÐÐÄÔÖ±¸ÄܾßÌå½²Ò»ÏÂÂð£¬ÊÇÔÚ¶à¸ödcÓжàÌ×Ò»ÑùµÄ¼¯Èº£¬È«²¿ÊÇÀ䱸״̬Âð£¿
A£ºÎÒÃÇÉú²úÓÐÈý¸öÊý¾ÝÖÐÐÄ£¬Ã¿´Î·¢²¼£¬ÎÒÃǶ¼»áÏòÿ¸öÊý¾ÝÖÐÐÄ·¢ÇëÇ󣬲»ÊÇÀ䱸£¬ÊǶà»î¡£
Q£º¼à¿ØÌåϵ´î½¨µÃϸ½ÚºÍ¼à¿ØÄÚÈݶ¼ÊÇÄÄЩ£¬±ÈÈçCPU Äڴ棬PodʼþµÈ£¬°üÀ¨¸æ¾¯Ìåϵ£¿
A£ºÕâ¸öÎÊÌâºÜºÃ£¬ÎÒÃÇÕâ·½Ãæ×öµÃ·Ç³£²»×㣬¼à¿ØµÄ±ê×¼ÎÒÃǸոÕÄóöϸ½Ú·½°¸¡£ÎÒÃÇÏÖÔڵķ½°¸ÊǰÑCPUÕâЩָ±êÊä³öµ½ÈÕÖ¾ÖÐÐÄ£¨°üº¬¼à¿Ø±¨¾¯²¿·Ö£©£¬ÓÉÈÕÖ¾ÖÐÐÄÀ´Íê³É¡£PodʼþµÈ»¹Ã»ÓÐ¼à¿Ø±¨¾¯¡£
Q£ºÈÕÖ¾ÈçºÎÈÃ×é¼þ·½·½±ã²é¿´Í¬Ê±¿ÉÒÔÅŲéÎÊÌ⣬±ÈÈçÆô¶¯Ê±µÄÈÕÖ¾£¿
A£ºÓ¦ÓÃÈÕ־ͨ¹ýÈÕÖ¾ÖÐÐÄ£¨ELK£©²é¿´£»Æô¶¯ÈÕ־ͨ¹ýÈÝÆ÷ÔÆ½çÃæ²é¿´£¬Í¨¹ýKubernetesµÄAPI½Ó¿ÚʵÏÖ¡£
Q£ººÜ¶à×é¼þÓÐIP°×Ãûµ¥µÄÎÊÌ⣬¶øKubernetes¼¯ÈºIP¾³£±ä»» £¬ÈçºÎ½â¾ö£¿
A£ºÒªÃ´¸Ä×é¼þ£¬ÒªÃ´ÔÚÍøÂç²ã×öÏÞÖÆ£¨±ÈÈçCalico»òÕ߯äËûµÄ£©£¬¾¡Á¿±ðÔÚKubernetes²ã½â¾ö¡£
Q£ºÈÝÆ÷¹ÜÀíÆ½Ì¨ÊÇ×ÔÑеÄÂð£¿Ê¹ÓúÎÖÖÓïÑÔ¿ª·¢µÄ£¿ÊÇÈ«²¿»ùÓÚAPI½Ó¿ÚÂð£¿
A£ºÊÇ×ÔÑеģ¬Ç°Ì¨AngularJS£¬ºǫ́Golang£¬È«²¿»ùÓÚKubernetesµÄAPI£¬¿ª·¢¹ý³Ì±È½Ï¼òµ¥£¬KubernetesµÄAPIÉè¼ÆµÄ·Ç³£ÍêÉÆ£¬ÍƼö³¢ÊÔ¡£ |