Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
MesosÈÝÆ÷ÒýÇæµÄ¼Ü¹¹Éè¼ÆºÍʵÏÖ½âÎö
 
À´Ô´£ºcsdn  ·¢²¼ÓÚ:2017-9-27
  2926  次浏览      30
 

ÒýÑÔ£ºÌáµ½ÈÝÆ÷£¬´ó¼ÒµÚһʱ¼ä¶¼»áÏëµ½Docker£¬±Ï¾¹DockerÊÇĿǰ×îΪÁ÷ÐеÄÈÝÆ÷¿ªÔ´ÏîÄ¿£¬ËüʵÏÖÁËÒ»¸öÈÝÆ÷ÒýÇæ£¨Docker engine£©£¬²¢ÇÒΪÈÝÆ÷µÄ´´½¨ºÍ¹ÜÀí¡¢ÈÝÆ÷¾µÏñµÄÉú³É¡¢·Ö·¢ºÍÏÂÔØÌṩһÌ׷dz£±ãÀûµÄ¹¤¾ßÁ´£¬¶øËüµÄÈÝÆ÷¾µÏñ¸ñʽ¼¸ºõ¾ÍÊÇÒµ½çµÄÊÂʵ±ê×¼¡£µ«Æäʵ³ýÁËDockerÖ®Í⣬ÔÚÈÝÆ÷µÄ¿ªÔ´Éú̬ȦÖл¹ÓÐÆäËüһЩÏîĿҲÔÚ×ö×Ô¼ºµÄÈÝÆ÷ÒýÇæ£¬ÕâÑùµÄÏîĿһ°ãÒ²±»³Æ×÷ΪÈÝÆ÷ÔËÐÐʱ£¨container runtime£©£¬±ÈÈ磺CoreOSµÄrktºÍMesosµÄÈÝÆ÷ÒýÇæ£¨Mesos containerizer£©¡£

ÔÚ±¾ÎÄÖУ¬ÎÒ½«¶ÔMesosÈÝÆ÷ÒýÇæ½øÐÐÒ»¸öÈ«ÃæµÄ½éÉÜ£¬½âÊÍÔÚDockerÈç´ËÁ÷ÐеÄÇé¿öÏÂMesosΪʲô»¹Òª¼á³Ö×ö×Ô¼ºµÄÈÝÆ÷ÒýÇæ£¬½éÉÜMesosÈÝÆ÷ÒýÇæµÄ×ÜÌå¼Ü¹¹ºÍ¸÷ºËÐÄ×é¼þ£¬ÒÔ¼°Ëü¶ÔÈÝÆ÷¸÷Ïà¹Ø±ê×¼¹æ·¶µÄ²ÉÄɺÍÖ§³Ö¡£

ÈÝÆ÷ºÍÈÝÆ÷ÒýÇæµÄ¶¨Òå

Ê×ÏÈÎÒÃÇÀ´Á˽âÒ»ÏÂʲôÊÇÈÝÆ÷¡£ÎÒ¸öÈ˶ÔÈÝÆ÷µÄ¶¨ÒåÊÇ£ºÒ»¸ö»òÒ»×éʹÓÃÁËcgroups×ö×ÊÔ´ÏÞ¶¨¡¢Ê¹ÓÃÁËnamespace×ö×ÊÔ´¸ôÀë¡¢ÇÒʹÓÃÁ˵ľµÏñÎļþ×ö¸ùÎļþϵͳµÄ½ø³Ì¡£ÈçÏÂͼ1Ëùʾ£º

ͼ1

Óɴ˿ɼû£¬ÊµÏÖÈÝÆ÷µÄÈý´óºËÐļ¼Êõ·Ö±ðÊÇ£º

Cgroups£¨Control Cgroups£¬¿ØÖÆÈº×飩£ºLinuxÖеÄCgroups°üº¬¶à¸ö²»Í¬µÄ×Óϵͳ£¬È磺CPU¡¢memory¡¢deviceµÈ¡£Í¨¹ýÕâЩ×Óϵͳ¾Í¿ÉÒÔ¶ÔÈÝÆ÷Äܹ»Ê¹Óõĸ÷ÖÖ×ÊÔ´½øÐÐÏÞ¶¨£¬±ÈÈ磺ͨ¹ýCPU×Óϵͳ¿ÉÒÔÏÞ¶¨ÈÝÆ÷ʹÓÃCPU×ÊÔ´µÄÏà¶ÔÈ¨ÖØºÍµ¥Î»Ê±¼äÄÚÄܹ»Ê¹ÓõĵÄCPUʱ¼ä¡£

Namespace£¨ÃüÃû¿Õ¼ä£©£ºLinuxͬÑùÖ§³Ö¶à¸önamespace£¬È磺mount¡¢network¡¢pidµÈ¡£Í¨¹ýÕâЩnamespace¿ÉÒÔ¶ÔÈÝÆ÷½øÐв»Í¬Î¬¶ÈµÄ×ÊÔ´¸ôÀ룬±ÈÈ磺ͨ¹ýmount namespace¿ÉÒÔÈÃÈÝÆ÷¾ßÓÐ×Ô¼º¶ÀÁ¢µÄ¹ÒÔØ¿Õ¼ä£¬ÔÚÖ÷»ú»ò±ðµÄÈÝÆ÷Öз¢ÉúµÄ¹ÒÔØÊ¼þ¶Ô¸ÃÈÝÆ÷¾Í²»¿É¼û£¬·´Ö®ÒàÈ»¡£Í¨¹ýnetwork namespace¿ÉÒÔÈÃÈÝÆ÷¾ßÓÐ×Ô¼º¶ÀÁ¢µÄÍøÂçЭÒéÕ»£¬¶ø²»±ØºÍÆäËùÔÚÖ÷»ú¹²ÓÃͬһ¸öÍøÂçЭÒéÕ»¡£

Layered filesystem£¨·Ö²ãÎļþϵͳ£©£ºLinuxÖеÄlayered filesystemÓжàÖÖ²»Í¬µÄʵÏÖ£¬È磺AUFS¡¢overlayfsµÈ¡£Í¨¹ýÕâЩlayered filesystemÅäºÏmount namespace¾Í¿ÉÒÔ¿ìËÙ²¿Êð³öÈÝÆ÷×Ô¼º¶ÀÁ¢µÄ¸ùÎļþϵͳ¡£¶øÇÒ£¬»ùÓÚͬһ¸ö¾µÏñÎļþ´´½¨³öÀ´µÄ¶à¸öÈÝÆ÷¿ÉÒÔ¹²Ïí¸Ã¾µÏñÎļþÖÐÏàͬµÄÖ»¶Á·Ö²ã£¬ÒÔ´ïµ½½ÚÊ¡Ö÷»ú´ÅÅ̿ռäµÄЧ¹û¡£

ÉÏÃæÕâÈýÖÖ¼¼Êõ¶¼ÊÇÔÚLinuxϵͳÖдæÔÚÒѾÃÇÒÏà¶Ô³ÉÊìµÄ¼¼Êõ£¬µ«ÈÃÖÕ¶ËÓû§Ö±½ÓʹÓÃËüÃÇÀ´´´½¨ºÍ¹ÜÀíÈÝÆ÷ÏÔÈ»²¢²»·½±ã¡£ËùÒÔ£¬ÈÝÆ÷ÒýÇæ¾ÍÓ¦Ô˶øÉúÁË£¬ËüËù×öµÄÖ÷Òª¹¤×÷¾ÍÊǽ«ÕâÈýÖÖ¼¼ÊõÔÚÆäÄÚ²¿ÓлúµØ½áºÏºÍÀûÓÃÆðÀ´ÒÔʵÏÖ´´½¨ÈÝÆ÷ºÍ¹ÜÀíÈÝÆ÷µÄÉúÃüÖÜÆÚ£¬²¢¶ÔÍâÌṩÓѺõĽӿÚÈÃÓû§Äܹ»·½±ãµÄ´´½¨ºÍ¹ÜÀíÈÝÆ÷¡£Cgroups¡¢namespaceºÍlayered filesystemµÄÏêϸ½éÉÜÎҾͲ»ÔÙ±¾ÎÄÖÐ׸ÊöÁË£¬¸ÐÐËȤµÄ¶ÁÕß¿ÉÒÔ²éÔÄLinuxÖÐÕâÈýÖÖ¼¼ÊõµÄÏà¹ØÎĵµ¡£

ÐèÒªÖ¸³öµÄÊÇ£¬ÈÝÆ÷ÒýÇæ¶ÔÕâÈýÖÖ¼¼ÊõµÄʹÓÃÍùÍùÊÇÓÐÑ¡ÔñÇҿɶ¨ÖƵ쬱ÈÈ磺Óû§¿ÉÒÔͨ¹ýÈÝÆ÷ÒýÇæ´´½¨Ò»¸öʹÓÃcgroups memory×Óϵͳµ«²»Ê¹ÓÃCPU×ÓϵͳµÄÈÝÆ÷£¬ÕâÑùµÄÈÝÆ÷¶ÔÄÚ´æ×ÊÔ´µÄʹÓþͻáÊܵ½ÏàÓ¦µÄÏÞ¶¨£¬µ«¶ÔCPU×ÊÔ´µÄʹÓÃÔò²»ÊÜÈκÎÏÞ¶¨¡£Óû§Ò²¿ÉÒÔ´´½¨Ò»¸öʹÓÃmount namespaceµ«²»Ê¹ÓÃnetwork namespaceµÄÈÝÆ÷£¬ÕâÑùµÄÈÝÆ÷¾Í»áÓÐ×Ô¼º¶ÀÁ¢µÄ¹ÒÔØ¿Õ¼ä£¬µ«ºÍÖ÷»ú¹²ÓÃÒ»¸öÍøÂçЭÒéÕ»¡£MesosÈÝÆ÷ÒýÇæÔÚÕâ·½ÃæµÄ¿É¶¨ÖÆ»¯½øÐе÷dz£³¹µ×£¬³ýÁËÉÏÃæËù˵µÄ¶Ôcgroups×ÓϵͳºÍnamespaceµÄ¶¨ÖÆÖ®Í⣬MesosÈÝÆ÷ÒýÇæ»¹Äܹ»Ö§³ÖÎÞ¾µÏñÎļþ´´½¨ÈÝÆ÷£¬ÕâÊÇÆäËüÈÝÆ÷ÒýÇæËù²»¾ß±¸µÄ¡£

MesosÈÝÆ÷ÒýÇæ²úÉúµÄ±³¾°

ÔÚDockerÈç´ËÁ÷ÐеÄÇé¿öÏ£¬MesosΪʲô»¹Òª¼á³Ö×ö×Ô¼ºµÄÈÝÆ÷ÒýÇæÄØ£¿ÆäʵMesosÔÚºÜÔçÆÚµÄ°æ±¾¾ÍºÍDocker½øÐÐÁ˼¯³É£¬Óû§¿ÉÒÔͨ¹ýMesos´´½¨Ò»¸öDockerÈÝÆ÷£¬ÔÚÄÚ²¿ÊµÏÖÉÏ£¬Mesos agent»áµ÷ÓÃDockerµÄÃüÁîÐкÍDocker engineͨÐÅ£¬ÒÔÈÃÆä´´½¨DockerÈÝÆ÷¡£ÕâÒ²¾ÍÊÇÒâζ×ÅMesos¶ÔÈÝÆ÷µÄ¹ÜÀíÑÏÖØÒÀÀµÓÚDocker engine£¬¶øÕâÖÖ×ö·¨µÄÎÊÌâÊÇ£º

Îȶ¨ÐÔ²»×㣺Mesos³£³£»á±»ÓÃÀ´¹ÜÀí¼¸Ç§ÉõÖÁÉÏÍò½ÚµãµÄÉú²ú»·¾³£¬¶øÔÚÈç´Ë´ó¹æÄ£µÄÉú²ú»·¾³ÖУ¬Îȶ¨ÐÔÊǼ«ÆäÖØÒªµÄ¡£¶øÔÚÕâÑùµÄ»·¾³ÖУ¬Í¨¹ýʵ²âÎÒÃÇ·¢ÏÖDocker engineµÄÎȶ¨ÐÔÊÇÓÐËù²»×ãµÄ£¬ÓÐʱ»á³öÏÖÍ£Ö¹ÏìÓ¦ÉõÖÁһЩĪÃûÆäÃîµÄbug£¬¶øÕâÑùµÄÎÊÌâ·´Ó³µ½DockerÉçÇøÖкóÓÐʱÓÖÎÞ·¨¼°Ê±µÃµ½½â¾ö¡£Õâ¾Í´ÙʹÁËMesosµÄ¿ª·¢Õß¿ªÊ¼Éè¼ÆºÍʵÏÖ×Ô¼ºµÄÈÝÆ÷ÒýÇæ¡£

ÄÑÓÚÀ©Õ¹£ºMesosµÄÓû§³£³£»áÌá³öһЩºÍÈÝÆ÷Ïà¹ØµÄÐÂÐèÇ󣨱ÈÈ磺ÈÃÈÝÆ÷Äܹ»Ê¹ÓÃGPU×ÊÔ´£¬Í¨¹ýCNIÅäÖÃÈÝÆ÷µÄÍøÂ磬µÈµÈ£©£¬¶øÕâЩÐèÇó¶¼ÊÜÏÞÓÚDocker engineµÄʵÏÖ£¬Èç¹ûDockerÉçÇø¾Ü¾ø²ÉÄÉÕâЩÐèÇ󣬻òÓÐÍêÈ«²»Í¬µÄʵÏÖ·½Ê½£¬ÄÇMesos×÷ΪDocker engineÖ®Éϵĵ÷Ó÷½Ò²Î޼ƿÉÊ©¡£

ÖÚËùÖÜÖª£¬MesosµÄ¶¨Î»ÊÇÊý¾ÝÖÐÐIJÙ×÷ϵͳ£¬ËüÊÇÒ»¸ö·Ç³£ºÃµÄͨÓÃ×ÊÔ´¹ÜÀíºÍ×ÊÔ´µ÷¶Èϵͳ£¬Ò»¿ªÊ¼¾ÍÊÇÒ»¸ö¡°´óÄÔ¼¶¡°µÄ´æÔÚ£¬µ«Èç¹ûÖ»ÓС°´óÄÔ¡±Ã»ÓС°ËÄÖ«¡±£¨¶ÔÈÝÆ÷µÄÖ§³Ö¾ÍÊÇ¡°ËÄÖ«¡±µÄÒ»ÖÖ£©£¬»ò¡°ËÄÖ«¡°ÕÆÎÕÔÚ±ðÈËÊÖÖУ¬ÄÇMesos±¾ÉíºÍÆäÉú̬ȦµÄ¿É³ÖÐø·¢Õ¹ÏÔÈ»ÊÇÊÜÏ޵ġ£ËùÒÔ£¬·¢Õ¹×Ô¼ºµÄ¡°ËÄÖ«¡±ÊÇMesosÖð²½·¢Õ¹×³´óµÄ±ØÈ»Ñ¡Ôñ¡£

»ùÓÚÉÏÊöÕâЩԭÒò£¬MesosÉçÇø¾ö¶¨Òª×ö×Ô¼ºµÄÈÝÆ÷ÒýÇæ£¬Õâ¸öÈÝÆ÷ÒýÇæÍêÈ«²»ÒÀÀµÓÚDocker engine£¨¼´£ººÍDocker engineûÓÐÈκν»»¥£©£¬µ«Í¬Ê±ËüÓÖÍêÃÀ¼æÈÝDocker¾µÏñÎļþ¡£ÕâÒ²¾ÍÒâζ×Å£¬Óû§¿ÉÒÔͨ¹ýMesosÔÚһ̨ûÓа²×°ÔËÐÐDocker engineµÄÖ÷»úÉÏ£¬»ùÓÚÈÎÒâDocker¾µÏñ´´½¨³öÈÝÆ÷¡£

MesosÈÝÆ÷ÒýÇæµÄ×ÜÌå¼Ü¹¹ºÍºËÐÄ×é¼þ

Ê×ÏÈÎÒÃÇÀ´¿´Ò»ÏÂMesosµÄ×ÜÌå¼Ü¹¹£¬ÒÔ¼°ÈÝÆ÷ÒýÇæÔÚÆäÖеÄλÖá£

ͼ2

ÉÏͼ2ÖÐÀ¶É«²¿·ÖÊÇMesos×ÔÉíµÄ×é¼þ£¬¿ÉÒÔ¿´µ½MesosÊǵäÐ͵Ämaster + agent¼Ü¹¹¡£MasterÔËÐÐÔÚMesos¼¯ÈºÖеĹÜÀí½ÚµãÉÏ£¬¿ÉÒÔÓжà¸ö£¨Ò»°ãÉèÖÃΪÈý¸ö¡¢Îå¸öµÈÆæÊý¸ö£©£¬ËüÃÇÏ໥֮¼äͨ¹ýZookeeperÀ´½øÐÐleaderÑ¡¾Ù£¬±»Ñ¡¾Ù³ÉleaderµÄmaster¶ÔÍâÌṩ·þÎñ£¬¶øÆäËûmasterÔò×÷Ϊleader masterµÄ±¸·ÝËæÊ±´ýÃü¡£MasterÖ®ÉÏ¿ÉÒÔÔËÐжà¸ö¼ÆËã¿ò¼Ü£¬ËüÃÇ»áµ÷ÓÃmasterÌṩµÄAPI·¢Æð´´½¨ÈÎÎñµÄÇëÇó¡£Master֮ϿÉÒÔ¹ÜÀíÈÎÒâ¶à¸ö¼ÆËã½Úµã£¬Ã¿¸ö¼ÆËã½ÚµãÉ϶¼ÔËÐÐÒ»¸öagent£¬Ëü¸ºÔðÏòmasterÉϱ¨±¾½ÚµãÉϵļÆËã×ÊÔ´£¬²¢½ÓÊÜmasterÏ·¢µÄ´´½¨ÈÎÎñµÄÇëÇ󣬽«ÈÎÎñ×÷ΪÈÝÆ÷ÔËÐÐÆðÀ´¡£¶øagentÄÚ²¿µÄÒ»¸ö×é¼þcontainerizer¾ÍÊÇÓÃÀ´¹ÜÀíÈÝÆ÷µÄÉúÃüÖÜÆÚµÄ£¨°üÀ¨£ºÈÝÆ÷µÄ´´½¨/¸üÐÂ/¼à¿Ø/Ïú»Ù£©£¬Ëü¾ÍÊÇMesosµÄÈÝÆ÷ÒýÇæ¡£

ÎÒÃÇÔÙÀ´½øÒ»²½¿´Ò»ÏÂMesosÈÝÆ÷ÒýÇæÄÚ²¿µÄ×ÜÌå¼Ü¹¹ºÍºËÐÄ×é¼þ¡£

ͼ3

ÈçÉÏͼËùʾ£¬MeossÈÝÆ÷ÒýÇæÄÚ²¿°üº¬Á˶à¸ö×é¼þ£¬Ö÷ÒªÓУºlauncher¡¢provisioner£¨ÆäÄÚ²¿ÓÖ°üº¬ÁËstoreºÍbackendÁ½¸ö×é¼þ£©ºÍisolator¡£ÏÂÃæÀ´ÖðÒ»½éÉÜÕâЩ×é¼þµÄÖ÷Òª¹¦ÄܺÍÓÃ;¡£

Launcher

LauncherÖ÷Òª¸ºÔð´´½¨ºÍÏú»ÙÈÝÆ÷£¬ÓÉÓÚÈÝÆ÷µÄ±¾ÖÊÆäʵ¾ÍÊÇÖ÷»úÉϵĽø³Ì£¬ËùÒÔlauncherÔÚÆäÄÚ²¿ÊµÏÖÉÏ£¬Ö÷Òª¾ÍÊÇÔÚÐèÒª´´½¨ÈÝÆ÷ʱ£¬µ÷ÓÃLinuxϵͳµ÷ÓÃfork()/clone()À´´´½¨ÈÝÆ÷µÄÖ÷½ø³Ì£¬ÔÚÐèÒªÏú»ÙÈÝÆ÷ʱ£¬µ÷ÓÃLinuxϵͳµ÷ÓÃkill()À´É±µôÈÝÆ÷ÖеĽø³Ì¡£LauncherÔÚµ÷ÓÃclone()ʱ¸ù¾ÝÐèÒª°ÑÈÝÆ÷´´½¨ÔÚÆä×Ô¼ºµÄnamespaceÖУ¬±ÈÈ磺Èç¹ûÈÝÆ÷ÐèÒª×Ô¼ºµÄÍøÂçЭÒéÕ»£¬ÄÇlauncherÔÚµ÷ÓÃclone()ʱ¾Í»á¼ÓÈëCLONE_NEWNETµÄ²ÎÊýÀ´ÎªÈÝÆ÷´´½¨Ò»¸ö×Ô¼ºµÄnetwork namespace¡£

LauncherĿǰÔÚMesosÖÐÓÐÁ½ÖÖ²»Í¬µÄʵÏÖ£ºLinux launcherºÍPosix launcher£¬ÉÏÃæÌáµ½µÄ¾ÍÊÇLinux launcherµÄʵÏÖ·½Ê½£¬Posix launcherÊÊÓÃÓÚ¼æÈÝPosix±ê×¼µÄÈκλ·¾³£¬ËüÖ÷ÒªÊÇͨ¹ý½ø³Ì×飨process group£©ºÍ»á»°£¨session£©À´ÊµÏÖÈÝÆ÷¡£ÔÚLinux»·¾³ÖУ¬Mesos agent»áĬÈÏÆôÓÃLinux launcher¡£

Provisioner

ΪÁËÖ§³Ö»ùÓÚ¾µÏñÎļþ´´½¨ÈÝÆ÷£¬MesosΪÆäÈÝÆ÷ÒýÇæÒýÈëÁËprovisioner¡£Õâ¸ö×é¼þÍê³ÉµÄÖ÷Òª¹¤×÷ÊÇͨ¹ýstore×é¼þÀ´ÏÂÔØºÍ»º´æÖ¸¶¨µÄ¾µÏñÎļþ£¬Í¨¹ýbackend×é¼þ»ùÓÚÖ¸¶¨µÄ¾µÏñÎļþÀ´²¿ÊðÈÝÆ÷µÄ¸ùÎļþϵͳ¡£

Store

MesosÈÝÆ÷ÒýÇæÖÐĿǰÒѾ­ÊµÏÖÁËAppc storeºÍDocker store£¬·Ö±ðÓÃÀ´Ö§³ÖAppc¸ñʽµÄ¾µÏñºÍDocker¾µÏñ£¬´ËÍ⣬MesosÉçÇøÕýÔÚʵÏÖOCI storeÒÔÖ§³Ö·ûºÏOCI£¨Open Container Initiative£©±ê×¼¸ñʽµÄ¾µÏñ¡£ËùÒÔ»ù±¾ÉÏ£¬Õë¶ÔÿÖÖ²»Í¬µÄ¾µÏñÎļþ¸ñʽ£¬Mesos¶¼»áȥʵÏÖÒ»¸ö¶ÔÓ¦µÄstore¡£¶øÒÔºóµ±OCI¾µÏñ¸ñʽ³ÉΪҵ½çÈÝÆ÷¾µÏñÎļþµÄ±ê×¼¸ñʽʱ£¬ÎÒÃÇ¿ÉÄܻῼÂÇÔÚMesosÈÝÆ÷ÒýÇæÖÐÖ»±£ÁôÒ»¸öOCI store¡£

StoreÏÂÔØµÄ¾µÏñ»á±»×÷ΪÊäÈë´«¸øbackendÀ´È¥²¿ÊðÈÝÆ÷µÄ¸ùÎļþϵͳ£¬ÇҸþµÏñ»á±»»º´æÔÚagent±¾µØµÄ¹¤×÷Ŀ¼ÖУ¬µ±Óû§»ùÓÚͬһ¾µÏñÔٴδ´½¨Ò»¸öÈÝÆ÷ʱ£¬Store¾Í²»»áÖØ¸´ÏÂÔØ¸Ã¾µÏñ£¬¶øÊÇÖ±½Ó°Ñ»º´æÖеľµÏñ´«¸øbackend¡£

Backend

BackendµÄÖ÷Òª¹¤×÷¾ÍÊÇ»ùÓÚÖ¸¶¨¾µÏñÀ´²¿ÊðÈÝÆ÷µÄ¸ùÎļþϵͳ¡£Ä¿Ç°MesosÈÝÆ÷ÒýÇæÖÐʵÏÖÁËËĸö²»Í¬µÄbackend£º

AUFS£ºAUFSÊÇLinuxÖеÄÒ»ÖÖ·Ö²ãÎļþϵͳ¡£AUFS backend¾ÍÊǽèÖúÕâÖÖ·Ö²ãÎļþϵͳ°ÑÖ¸¶¨¾µÏñÎļþÖеĶà¸ö·Ö²ã¹ÒÔØ×éºÏ³ÉÒ»¸öÍêÕûµÄ¸ùÎļþϵͳ¸øÈÝÆ÷ʹÓ᣻ùÓÚͬһ¾µÏñÎļþ´´½¨³öÀ´µÄ¶à¸öÈÝÆ÷¹²ÏíÏàͬµÄÖ»¶Á²ã£¬ÇÒ¸÷×ÔÓµÓжÀÁ¢µÄ¿Éд²ã¡£

Overlay£ºOverlay backendºÍAUFS backend·Ç³£ÀàËÆ£¬ËüÊǽèÖúOverlayfsÀ´¹ÒÔØ×éºÏÈÝÆ÷µÄ¸ùÎļþϵͳ¡£OverlayfsÒ²ÊÇÒ»ÖÖ·Ö²ãÎļþϵͳ£¬ËüµÄÔ­ÀíºÍAUFSÀàËÆ£¬ ËùÒÔ£¬AUFS backendËù¾ß±¸µÄÓŵãOverlay backend¶¼ÓУ¬µ«²»Í¬µÄÊÇOverlayfsÒѾ­±»Linux±ê×¼ÄÚºËËù½ÓÊÜ£¬ËùÒÔ£¬ËüÔÚLinuxƽ̨ÉÏÓиüºÃµÄÖ§³Ö¡£

Copy£ºCopy backendµÄ×ö·¨·Ç³£¼òµ¥£¬Ëü¾ÍÊǼòµ¥µØ°ÑÖ¸¶¨¾µÏñÎļþµÄËùÓзֲ㶼¿½±´µ½Ò»¸öÖ¸¶¨Ä¿Â¼ÖÐ×÷ΪÈÝÆ÷µÄ¸ùÎļþϵͳ¡£ËüµÄȱµãÏÔ¶øÒ×¼û£º»ùÓÚͬһ¾µÏñ´´½¨µÄ¶à¸öÈÝÆ÷Ö®¼äÎÞ·¨¹²ÏíÈκηֲ㣬Õâ¶Ô¼ÆËã½ÚµãµÄ´ÅÅ̿ռäÔì³ÉÁËÒ»¶¨µÄÀË·Ñ£¬ÇÒÔÚ¿½±´¾µÏñ·Ö²ãʱҲ»áÏûºÄ½Ï´óµÄ´ÅÅÌI/O¡£

Bind£ºBind backend±È½ÏÌØÊ⣬ËüÖ»Äܹ»Ö§³Öµ¥·Ö²ãµÄ¾µÏñ¡£ËüÊÇÀûÓÃbind mountÕâÒ»¼¼Êõ°Ñµ¥·Ö²ãµÄ¾µÏñÒÔÖ»¶ÁµÄ·½Ê½¹ÒÔØµ½Ö¸¶¨Ä¿Â¼ÏÂ×÷ΪÈÝÆ÷µÄ¸ùÎļþϵͳ¡£Ïà¶ÔÓÚCopy backend£¬Bind backendµÄËٶȸü¿ì£¨¼¸ºõ²»ÐèÒªÏûºÄ´ÅÅÌI/O£©£¬ÇÒ¶à¸öÈÝÆ÷¿ÉÒÔ¹²Ïíͬһ¾µÏñ£¬µ«È±µã¾ÍÊÇÖ»ÄÜÖ§³Öµ¥·Ö²ã¾µÏñ£¬ÇÒ¸ùÎļþϵͳÊÇÖ»¶ÁµÄ£¬Èç¹ûÈÝÆ÷ÔÚÔËÐÐʱÐèҪдÈëÊý¾Ý£¬¾ÍÖ»ÄÜͨ¹ý¶îÍâ¹ÒÔØÍⲿ¾íµÄ·½Ê½À´ÊµÏÖ¡£

ÔÚÓû§Ã»ÓÐÖ¸¶¨Ê¹ÓÃijÖÖbackendµÄÇé¿öÏ£¬Mesos agentÔÚÆô¶¯Ê±»áÒÔÈçÏÂÂß¼­À´×Ô¶¯ÆôÓÃÒ»ÖÖbackend£º

Èç¹û±¾½ÚµãÖ§³ÖOverlayfs£¬ÆôÓÃOverlay backend¡£

Èç¹û±¾½Úµã²»Ö§³ÖOverlayfsµ«Ö§³ÖAUFS£¬ÆôÓÃAUFS backend¡£

Èç¹ûOverlayFSºÍAUFS¶¼²»Ö§³Ö£¬ÆôÓÃCopy backend¡£

ÓÉÓÚBind backendµÄ¾ÖÏÞÐԽϴó£¬Mesos agent²¢²»»á×Ô¶¯ÆôÓÃËü¡£

Isolator

Isolator¸ºÔð¸ù¾ÝÓû§´´½¨ÈÝÆ÷ʱÌá³öµÄÐèÇó£¬ÎªÃ¿¸öÈÝÆ÷½øÐÐÖ¸¶¨µÄ×ÊÔ´ÏÞ¶¨£¬ÇÒÖ¸ÒýlauncherΪÈÝÆ÷½øÐÐÏàÓ¦µÄ×ÊÔ´¸ôÀ롣ĿǰMesosÄÚ²¿ÒѾ­ÊµÏÖÁËÊ®¶à¸ö²»Í¬µÄisolator£¬±ÈÈ磺cgroups isolatorͨ¹ýLinux cgroupsÀ´¶ÔÈÝÆ÷½øÐÐCPU¡¢memoryµÈ×ÊÔ´µÄÏÞ¶¨£¬¶øCNI isolator»áÖ¸ÒýlauncherΪÿ¸öÈÝÆ÷´´½¨Ò»¸ö¶ÀÁ¢network namespaceÒÔʵÏÖÍøÂç¸ôÀ룬²¢µ÷ÓÃCNI²å¼þΪÈÝÆ÷ÅäÖÃÍøÂ磨È磺IPµØÖ·¡¢DNSµÈ£©¡£

IsolatorÔÚMesosÖÐÓÐ×ŷdz£ºÃµÄÄ£¿é»¯Éè¼Æ£¬ÇÒ¶¨ÒåÁËÒ»Ì׷dz£ÇåÎúµÄAPI½Ó¿ÚÈÃÿ¸öisolator¿ÉÒÔ¸ù¾Ý×Ô¼ºËùÐèÒªÍê³ÉµÄ¹¦ÄÜÈ¥ÓÐÑ¡ÔñµØÊµÏÖ¡£ÕâÌ×isolator½Ó¿Ú¹á´©ÈÝÆ÷µÄÕû¸öÉúÃüÖÜÆÚ£¬MesosÈÝÆ÷ÒýÇæ»áÔÚÈÝÆ÷ÉúÃüÖÜÆÚµÄ²»Í¬½×¶Îͨ¹ý¶ÔÓ¦µÄ½Ó¿ÚÀ´µ÷ÓÃisolatorÍê³É²»Í¬µÄ¹¦ÄÜ¡£ÏÂÃæÊÇһЩÖ÷ÒªµÄisolator½Ó¿Ú£º

prepare()£ºÕâ¸ö½Ó¿ÚÔÚÈÝÆ÷±»´´½¨Ö®Ç°±»µ÷Óã¬ÓÃÀ´Íê³ÉһЩ׼±¸ÐԵŤ×÷¡£±ÈÈ磺cgroups isolatorÔÚÕâ¸ö½Ó¿ÚÖлáΪÈÝÆ÷´´½¨¶ÔÓ¦µÄcgroups¡£

isolate()£ºÕâ¸ö½Ó¿ÚÔÚÈÝÆ÷¸Õ¸Õ±»´´½¨³öÀ´µ«»¹Î´ÔËÐÐʱ±»µ÷Óã¬ÓÃÀ´½øÐÐһЩ×ÊÔ´¸ôÀëÐԵŤ×÷£¬±ÈÈ磺cgroups isolatorÔÚÕâ¸ö½Ó¿ÚÖлá°ÑÈÝÆ÷µÄÖ÷½ø³Ì·ÅÈëÉÏÒ»²½´´½¨µÄcgroupsÖÐÒÔʵÏÖ×ÊÔ´¸ôÀë¡£

update()£ºµ±ÈÝÆ÷ËùÉêÇëµÄ×ÊÔ´·¢Éú±ä»¯Ê±£¨È磺ÈÝÆ÷ÔÚÔËÐÐʱÉêÇëʹÓøü¶àµÄCPU×ÊÔ´£©£¬Õâ¸ö½Ó¿Ú»á±»µ÷Óã¬ËüÓÃÀ´ÔÚÔËÐÐʱ¶¯Ì¬µ÷Õû¶ÔÈÝÆ÷µÄ×ÊÔ´ÏÞ¶¨¡£

cleanup()£ºµ±ÈÝÆ÷±»Ïú»ÙʱÕâ¸ö½Ó¿Ú»á±»µ÷Óõ½£¬ÓÃÀ´½øÐÐÏà¹ØµÄÇåÀí¹¤×÷¡£±ÈÈ磺cgroups isolator»á°Ñ֮ǰΪÈÝÆ÷´´½¨µÄcgroupsɾ³ý¡£

½èÖúÓÚÕâÖÖÄ£¿é»¯ºÍ½Ó¿Ú±ê×¼»¯µÄÉè¼Æ£¬Óû§¿ÉÒԺܷ½±ãµØ¸ù¾Ý×Ô¼ºµÄÐèÇóȥʵÏÖÒ»¸ö×Ô¼ºµÄisolator£¬È»ºó½«Æä²åÈëµ½Mesos agentÖÐÈ¥Íê³ÉÌØ¶¨×ÊÔ´µÄÏÞ¶¨ºÍ¸ôÀë¡£

MesosÈÝÆ÷ÒýÇæ¶ÔÈÝÆ÷±ê×¼¹æ·¶µÄÖ§³Ö

ÈÝÆ÷ÕâÏî¼¼ÊõÔÚ½ü¼¸ÄêÀ´·ÉËÙ·¢Õ¹£¬ÊµÏÖÁ˱¬Õ¨Ê½µÄÔö³¤¡£µ«¾ÍÏñÈκÎÒ»ÖÖ³ÉÊìµÄ¼¼ÊõÒ»Ñù£¬ÔڶȹýÁË¡°Ò°ÂùÉú³¤ÆÚ¡±ºó£¬¶¼ÐèÒªÖÆ¶¨ÏàÓ¦µÄ¹æ·¶À´¶ÔÆä½øÐбê×¼»¯£¬ÈÃËüÄܹ»³ÖÐøÎȶ¨µØ·¢Õ¹¡£ÈÝÆ÷¼¼ÊõÒ²²»ÀýÍ⣬ĿǰÒÑÖªµÄÈÝÆ÷Ïà¹ØµÄ±ê×¼¹æ·¶ÓУº

OCI£¨Open Container Initiative£©£º×¨×¢ÓÚÈÝÆ÷¾µÏñÎļþ¸ñʽºÍÈÝÆ÷ÉúÃüÖÜÆÚ¹ÜÀíµÄ¹æ·¶£¬Ä¿Ç°ÒѾ­·¢²¼ÁË1.0µÄ°æ±¾¡£

CNI£¨Container Network Interface£©£º×¨×¢ÓÚÈÝÆ÷ÍøÂçÖ§³ÖµÄ¹æ·¶£¬Ä¿Ç°ÒѾ­·¢²¼ÁË0.6.0°æ±¾¡£

CSI£¨Container Storage Interface£©£º×¨×¢ÓÚÈÝÆ÷´æ´¢Ö§³ÖµÄ¹æ·¶£¬Ä¿Ç°»¹Ôڲݰ¸½×¶Î¡£

±ê×¼¹æ·¶´øÀ´µÄÒæ´¦ÊÇÏÔ¶øÒ×¼ûµÄ£º

¶ÔÓÚÖÕ¶ËÓû§£º±ê×¼»¯µÄÈÝÆ÷¾µÏñºÍÈÝÆ÷ÔËÐÐʱÄܹ»ÈÃÓû§²»±Øµ£ÐÄ×Ô¼º±»Ä³¸öÈÝÆ÷ÒýÇæËù¡°°ó¼Ü¡±£¬¿ÉÒÔ¸ü¼ÓרעÓÚ¶Ô×ÔÉíÒµÎñºÍÓ¦ÓõÄÈÝÆ÷»¯£¬¸ü¼Ó×ÔÓɵØÈ¥Ñ¡ÔñÈÝÆ÷ÒýÇæ¡£

¶ÔÓÚÍøÂç/´æ´¢ÌṩÉÌ£º±ê×¼¹æ·¶Öж¨ÒåµÄÍøÂç/´æ´¢¼¯³É½Ó¿Ú°ÑÈÝÆ÷ÒýÇæµÄÄÚ²¿ÊµÏֺͲ»Í¬µÄÍøÂç/´æ´¢½â¾ö·½°¸¸ôÀ뿪À´£¬Èø÷ÌṩÉÌÖ»ÐèʵÏÖÒ»Ì×±ê×¼»¯½Ó¿Ú¾Í¿ÉÒÔ°Ñ×Ô¼ºµÄ½â¾ö·½°¸·½±ãµØ¼¯³Éµ½¸÷¸öÈÝÆ÷ÒýÇæÖÐÈ¥£¬¶ø²»±Ø·Ñʱ·ÑÁ¦µØÈ¥Öð¸öÊÊÅ䲻ͬµÄÈÝÆ÷ÒýÇæ¡£

MesosÈÝÆ÷ÒýÇæÔÚÉè¼ÆºÍʵÏÖÖ®³õ£¬¾Í³ÖÓÐÓµ±§ºÍ²ÉÄÉÒµ½ç±ê×¼¹æ·¶µÄ̬¶È£¬ÊÇ×îÔçÖ§³ÖCNIµÄÈÝÆ÷ÒýÇæÖ®Ò»£¬ÇÒĿǰÕýÔÚ»ý¼«ÊµÏÖ¶ÔOCI¾µÏñ¹æ·¶µÄÖ§³Ö¡£CSIĿǰÕýÔÚÓÉMesosÉçÇøºÍKubernetsÉçÇøÒ»ÆðÖ÷µ¼²¢Öð²½ÍêÉÆ£¬´ýCSIÖð½¥³ÉÊìºó£¬MesosÈÝÆ÷ÒýÇæ×ÔÈ»»áµÚһʱ¼äÖ§³Ö¡£ÈÕºó£¬×÷Ϊͬʱ֧³ÖÈý´ó±ê×¼¹æ·¶µÄÈÝÆ÷ÒýÇæ£¬MesosÈÝÆ÷ÒýÇæ×ÔÈ»»á¸üºÃµØ·þÎñÉϲãÓ¦Óÿò¼ÜºÍÖÕ¶ËÓû§£¬Í¬Ê±¸ü¼ÓÍêÉÆµØÖ§³Ö¸÷ÖÖÖ÷Á÷ÍøÂç/´æ´¢½â¾ö·½°¸¡£

   
2926 ´Îä¯ÀÀ       30
Ïà¹ØÎÄÕÂ

ÔÆ¼ÆËãµÄ¼Ü¹¹
¶ÔÔÆ¼ÆËã·þÎñÄ£ÐÍ
ÔÆ¼ÆËãºËÐļ¼ÊõÆÊÎö
Á˽âÔÆ¼ÆËãµÄ©¶´
Ïà¹ØÎĵµ

ÔÆ¼ÆËã¼ò½é
ÔÆ¼ÆËã¼ò½éÓëÔÆ°²È«
ÏÂÒ»´úÍøÂç¼ÆËã--ÔÆ¼ÆËã
ÈídzÎöÔÆ¼ÆËã
Ïà¹Ø¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤