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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
MesosÔÚÈ¥ÄĶùÍøµÄʵ¼ù֮·
 
À´Ô´:InfoQ ·¢²¼ÓÚ£º2016-11-16
  4760  次浏览      27
 

±³¾°

ÒµÎñÏß¿ª·¢»·¾³µÄÀ§ÈÅ

Äê³õµÄʱºò»úƱµÄͬÊÂÏòÎÒÃÇ·´À¡£¬Ï£Íû¿ÉÒÔÌṩDocker»·¾³°ïÖúËûÃÇ¿ìËÙ¹¹½¨¿ª·¢»·¾³£¬¼ÓËÙ¹¦Äܵĵü´ú¡£ÕýºÃÎÒÃÇOpsDevÍŶÓÒ²ÔÚΪÈÝÆ÷ѰÕÒÊԵ㣬˫·½Ò»Åļ´ºÏ£¬Á¢¼´¿ªÊ¼ÁËǰÆÚµÄµ÷Ñй¤×÷¡£

Ëæ×Ž»Á÷µÄÉîÈ룬ÎÒÃÇ·¢ÏÖ¶ÔÓÚÒ»¸ö°üº¬Á˼¸Ê®¸öÄ£¿é£¬¿ìËÙµü´úµÄϵͳ£¬¿ª·¢ÍŶÓÏëÒª½¨Á¢Ò»¸öÏà¶ÔÎȶ¨µÄ£¬Äܸ²¸ÇÖܱßÄ£¿éµÄ¿ª·¢ºÍ×Բ⻷¾³ÊǷdz£À§Äѵ쬳ýÁËÒªÉêÇëÐéÄâ»úÍ⣬»¹ÒªÐÂÔöprofile£¬´´½¨jenkins job£¬·¢²¼£¬·þÎñÒÀÀµµÈһϵÁеÄÁ÷³Ì¡£

¼´Ê¹½â¾öÁËÒÔÉÏÎÊÌ⣬ÔËάÕâÌ×»·¾³ÓÖÊǸö´óÂé·³£ºÏîĿ֮¼äµÄÒÀÀµ¹ØÏµÐ´ÔÚÅäÖÃÎļþÖУ¬Çл»»·¾³Ê±ÐèÒªÊÖ¹¤Ð޸ģ»¶àÌײ»Í¬°æ±¾µÄ»·¾³Î¬»¤ÆðÀ´·Ñʱ·ÑÁ¦£»¶ÔÓÚÉæ¼°Ãæ½Ï¹ãµÄÁªµ÷£¬ÐèÒªÆäËû×éµÄͬÊÂÅäºÏÍê³É£¬¸ü²»ÓÃ˵ÕâЩģ¿é¼äµÄ°æ±¾ÈçºÎÓÐЧµÄ±£Ö¤Ò»ÖÂÁË¡£¡£

ÕûÀíÎÊÌâ

¾­¹ý¶à´ÎµÄÌÖÂۺ͵÷ÑУ¬×îÖÕË«·½ÍŶÓÈ·Èϳö¼¸¸öÒµÎñÏß×î¹ØÐĵŦÄÜ£¬ÓÅÏȽâ¾ö£º

1.°æ±¾Ò»Ö£¬¼´´úÂë°æ±¾£¬ÅäÖð汾ºÍÊý¾Ý¿âschemaÒ»Ö£¬¼õÉÙÁªµ÷ʱ²»±ØÒªµÄÊÊÅäºÍµ÷Õû¡£

2.¿ìËÙÇл»¶àÌ×»·¾³¡£

3.·þÎñÒÀÀµ£¬¿ª·¢ÐÂÈËÒ²¿ÉÒÔÇáËɲ¿ÊðÕûÌ׸´ÔӵĻ·¾³¡£

4.ά»¤¼òµ¥£¬ÀýÈçÐÂÔöÏîĿʱ£¬×Ô¶¯¼ÓÈëµ½ÕûÌ×»·¾³ÖС£

5.µÍѧϰ³É±¾£¬½ÚԼʱ¼äÈ¥¿ª·¢ÒµÎñ¡£

6.»·¾³¸ôÀ룬×îºÃÿ¸öÈËÒ»Ì×ÍêÕû»·¾³£¬²»»¥ÏàÓ°Ïì¡£

ÔÝʱÐÔ½â¾ö0ºÍ1µÄÎÊÌâ

ÒµÎñÏßµÄͬÊÂÓÃdocker-composeÁÙʱ´î½¨ÁËÒ»Ì׿ª·¢»·¾³£¬µ«ÊÇÐèÒªÊÖ¹¤Î¬»¤°æ±¾ÒÔ¼°nginxµÄת·¢£¬Í¬Ê±Ò²±©Â¶³öÁ˸ü¶àµÄÎÊÌ⣺

1.ÄÜÖ§³ÅÈç´Ë¶àÄ£¿éµÄcompose£¬Ö»ÄÜÊÇʵÌå»ú£¬×ÊÔ´ÏÞÖÆ½Ï´ó¡£

2.À©ÈÝÄ£¿éʱµÄ¶Ë¿Ú³åÍ»ÎÊÌâ¡£

3.Êý¾Ý¿â³ÖÐø¼¯³É

4.ÈÝÆ÷¹Ì¶¨IP

ÐèÒªÕÒµ½Ò»¸öÖαêÓÖÖα¾µÄ·½°¸½â¾öÒµÎñÏßµÄÎÊÌâ¡£

ѰÇó½â¾öÖ®µÀ

²Î¿¼ÁËÏÖÓеÄÈÝÆ÷¼¯Èº·½°¸ºó£¬×îÖÕ½¹µã¼¯ÖÐÔÚÁËApache Mesos£¨ºó¼ò³ÆMesos£©ºÍGoogle KubernetesÉÏ¡£KubernetesµÄpodºÍservice¸ÅÄî¸üÌù½üÒµÎñÏßµÄËßÇó£¬Í¬Ê±£¬MesosÔÚ×ÊÔ´¹ÜÀíºÍµ÷¶ÈÁé»îÐÔÉÏÏÔÈ»¾­µÃÆðÉú²úµÄ¿¼Ñé¡£×îÖÕÍŶӾö¶¨Á½Õß²¢ÐвâÊÔ£¬ÔÚ¸÷×ÔµÄÓÅÊÆ·½ÏòѰÕÒÊÔµãÏîÄ¿×öÑéÖ¤¡£

ÏîÄ¿ÊÔµã

×Ðϸ¿¼Á¿ºó£¬ÎÒÃÇÑ¡ÔñÁË»ùÓÚELK¹¹½¨µÄÈÕ־ƽ̨×÷ΪÑéÖ¤Mesos + DockerµÄÇÐÈëµã£¬»ýÀÛÏà¹ØµÄ¿ª·¢ºÍÔËά¾­Ñé¡£

ͼһ µäÐ͵ÄMesos + Docker½á¹¹£¨source from google)

Ê×ÏÈÈÝÆ÷»¯µÄÊÇLogstashºÍKibana£¬Kibana±¾Éí×÷ΪElasticSearchµÄÊý¾Ý¾ÛºÏչʾ²ã£¬×ÔÉí¾ÍÊÇÎÞ״̬»¯µÄ£¬Logstash¶ÔSIGTERMÓÐרÃŵĴ¦Àí£¬docker stopµÄʱºò¿ÉÒÔ´ÓÈÝ´¦ÀíÍê¶ÓÁÐÖеÄÏûÏ¢ÔÙÍ˳ö¡£¶øElasticSearch²¿ÊðÔÚMesos¼¯ÈºÍ⣬Ö÷Òª¿¼Âǵ½Êý¾Ý³Ö¾Ã»¯µÄÎÊÌâÒÔ¼°×ÊÔ´ÏûºÄ¡£²ÉÓÃMarathonºÍChronosµ÷¶ÈLogstashºÍKibana£¬ÒÔ¼°Ïà¹ØµÄ¼à¿Ø¡¢Í³¼ÆºÍÈÕÖ¾ÈÝÆ÷¡£

ͼ¶þ ÈÕ־ƽ̨µÄ½á¹¹

Êý¾ÝÀ´×Ô¶àÖÖ·½Ê½£¬Õë¶Ô²»Í¬µÄÈÕÖ¾ÀàÐÍ£¬²ÉÈ¡²»Í¬µÄ·¢ËͲßÂÔ¡£ÏµÍ³ÈÕÖ¾£¬±ÈÈçmail.log¡¢sudo.log¡¢dmesgµÈͨ¹ýrsyslog·¢ËÍ¡£ÒµÎñÈÕÖ¾²ÉÓÃflume£¬ÈÝÆ÷ÈÕÖ¾ÔòʹÓÃhekaºÍfluentd¡£»ã×ܵ½¸÷¸ö»ú·¿µÄKafka¼¯Èººó£¬´ÖÂԵĽâÎöºó»ã×ܵ½ÖÐÑëKafka£¬ÔÙͨ¹ýLogstash¼¯Èº½âÎöºó´æÈëElasticSearch¡£Í¬Ê±£¬¼à¿ØÊý¾Ýͨ¹ýstatsd·¢Ë͵½ÄÚ²¿µÄ¼à¿ØÆ½Ì¨£¬±ãÓÚºóÐøµÄ֪ͨºÍ±¨¾¯¡£

Ëæ×ÅÒµÎñÏßÈÕÖ¾µÄÖð²½½ÓÈ룬Õâ¸öƽ̨ÒѾ­Ôö³¤³ÉΪµ¥ÈÕ´¦Àí60ÒÚÌõÈÕÖ¾/6TBÊý¾ÝµÄÅÓ´óƽ̨¡£

ÎÊÌâºÍ¾­Ñé×ܽá

1. Daemon OOM

×î³õÎÒÃÇʹÓõÄDocker°æ±¾ÊÇ1.6£¬docker attach½Ó¿Ú´æÔÚÄÚ´æÐ¹Â¶£¬ÈÝÆ÷µÄstdoutÊä³ö½Ï¶àÈÕ־ʱ£¬±È½ÏÈÝÒ×Ôì³ÉdaemonµÄOOM¡£

{code}
fatal error: runtime: out of memory

runtime stack:
runtime.SysMap(0xc2c9760000, 0x7f310000, 0x7f453c96b000, 0x13624f8)
/usr/local/go/src/runtime/mem_linux.c:149 +0x98
runtime.MHeap_SysAlloc(0x1367be0, 0x7f310000, 0x43b8f2)
/usr/local/go/src/runtime/malloc.c:284 +0x124
runtime.MHeap_Alloc(0x1367be0, 0x3f986, 0x10100000000, 0x0)
/usr/local/go/src/runtime/mheap.c:240 +0x66

......

{code}

Õâ¸öÎÊÌâÊDZȽÏÑÏÖØµÄ£¬daemon¹ÒµôºóÈÝÆ÷¸ú×Ŷ¼å´»úÁË£¬Ëä˵ÉϲãµÄMarathon»áÖØÐ²¿ÊðÓ¦Ó㬵«ÊÇÆµÂʽϸߵϰÈÝÒ×Ôì³É¼¯Èº²»Îȶ¨¡£

Ê×ÏÈÏëµ½µÄ°ì·¨¾ÍÊÇÓÃrunsvÆô¶¯daemon£¬±£Ö¤½ø³Ìå´µôºó¿ÉÒÔÖØÐ±»À­Æð¡£Æä´Î£¬²Î¿¼ÁËKubernetesµÄ×ö·¨£¬ÔÚdaemonÆô¶¯ºóÐÞ¸Äoom_adjµÄֵΪ-15£¬·ÀÖ¹daemon±»×îÏÈkillµô¡£

×îÖαêµÄ°ì·¨»¹ÊÇÉý¼¶DockerµÄ°æ±¾£¬»òÕß×Ô¼ºpatchÕâ¸öbug

£¨https://github.com/docker/docker/issues/9139£©¡£

2. HekaµÄDockerEventInput²»ÊÍ·Åsocket

DockerEventInputʹÓõÄgo-dockerclientÓÐbug£¬hekaÒì³£ÍÆ³öºó²»»á¹Ø±Õsocket£¬ÈÝÒ×µ¼ÖÂÎļþ¾ä±úй¶£¬×îÖÕµ¼ÖÂdaemon²»ÔÙ½ÓÊÜÈκÎÃüÁÕâ¸öBUGÔÚv0.10.0b1ÈÔÈ»»¹´æÔÚ¡£

{code}
time="2015-09-30T15:25:00.254779538+08:00" level=error msg="attach: stdout: write unix @: broken pipe"
time="2015-09-30T15:25:00.254883039+08:00" level=error msg="attach: stdout: write unix @: broken pipe"
time="2015-09-30T15:25:00.256959458+08:00" level=error msg="attach: stdout: write unix @: broken pipe"
{code}

Ïà¹ØÎÊÌ⣺https://github.com/fsouza/go-dockerclient/issues/202¡£

3. ¶ÔмÓÈ뼯ȺµÄslave¡°Ô¤ÈÈ¡±

ͬÔÚ¾ÖÓòÍøÄÚ£¬µÚÒ»´ÎÏÂÔØ¾µÏñÒ²ÊDZȽÏÂýµÄ£¬ÍƼöÔÚslave²¿ÊðÍê±Ïºó£¬Ö÷¶¯pullÒ»Åú³£ÓõľµÏñ£¬¼õÉÙµÚÒ»´ÎÆô¶¯µÄʱ¼ä¡£Õâ¸ö¹¤×÷ÎÒÃÇ·ÅÔÚsalt¡¢ansible½Å±¾Àï×Ô¶¯²¿Êð¡£ÁíÍ⣬¶ÔÓÚ»ù´¡¼à¿ØÀàµÄÈÝÆ÷£¬MarathonĿǰ»¹Î´Ö§³Ö×Ô¶¯scale£¬ÐèÒª×Ô¼ºÊµÏÖ¡£

Ïà¹ØÌÖÂÛ£ºhttps://github.com/mesosphere/marathon/issues/846

4. DistributionÒýÆðµÄdaemonå´»ú

Éý¼¶1.7.1ºó·¢ÏÖµÄÎÊÌ⣬ÆðÒòÊÇÒ»¸öÊÖÎóµ¼ÖÂMarathonµÄÅäÖÃûÓдøÉÏ×Ô¼ºµÄregistry£¬daemonÈ¥pullÁ˹ٷ½µÄ¾µÏñ¡£Õâ¸ö¿ÓÐҺ÷¢ÉúÔÚÎÒÃǵÄregistry×¼±¸Ç¨ÒÆV2µÄ֮ǰ£¬Ïà¹ØµÄ´úÂ뻹ûÓÐpatchµ½ÎÒÃÇ×Ô¼ºµÄdockerÉÏ£¬ÔÝʱ»¹ÊÇʹÓÃV1¡£

Ïà¹ØÎÊÌ⣺https://github.com/docker/docker/issues/15724

5. MesosµÄ×ÊÔ´ÇÀÕ¼

×ÊÔ´ÇÀÕ¼ÊÇÔÚMesos 0.23.0°æ±¾ÒýÈëµÄ£¬¹Ù·½»¹²»½¨ÒéÔÚÉú²ú»·¾³Ê¹Óã¬ÈçºÎÓÐЧµÄÇÀÕ¼×ÊÔ´Ò»Ö±ÊÇÎÒÃÇÔÚʹÓùý³ÌÖбȽϹØ×¢µÄ¡£

MesosµÄ×ÊÔ´ÊÇÖ±½ÓÓ³Éäµ½roleÉϵģ¬ÎÒÃÇÒÔ´ËΪÇÐÈëµã£¬Ìáǰ»®·Ö¶à¸örole£¬Ã¿¸örole·ÖÅ侲̬×ÊÔ´¡£±ÈÈ磬opsµÄroleÔËÐлù´¡·þÎñ£¬Ã¿¸öslaveÉÏ×î¶àÕ¼ÓÃ4¸öCPU£¬logstashÔòÔÚÿ̨»úÆ÷ÉÏ¿ÉÒÔÕ¼ÓÃ32¸öCPU£¬ÒÔÕâÖÖ·½Ê½±äÏ೬ÊÛCPU×ÊÔ´¡£

MESOS_resources="cpus(logstash):32;"
MESOS_resources="${MESOS_resources}cpus(common):4;"
MESOS_resources="${MESOS_resources}cpus(kibana):4;"
MESOS_resources="${MESOS_resources}cpus(ops):4;"
MESOS_resources="${MESOS_resources}cpus(spark):16;"
MESOS_resources="${MESOS_resources}cpus(storm):16;"
MESOS_resources="${MESOS_resources}cpus(rebuild):32;"
MESOS_resources="${MESOS_resources}cpus(mysos):16;"
MESOS_resources="${MESOS_resources}cpus(others):16;"
MESOS_resources="${MESOS_resources}cpus(universe):1;"
MESOS_resources="${MESOS_resources}cpus(test):8;"
MESOS_resources="${MESOS_resources}mem(*):126976;ports(*):[8000-32000]"

ÔÚʹÓÃʱ£¬²»ÔÙ¸ù¾ÝÈÝÆ÷µÄ×ÊԴʹÓÃÇé¿ö¶¯Ì¬µ÷ÕûʵÀýÊýÁ¿£¬¶øÊǽ»Ìæ·¢²¼ÈÎÎñÇÀÕ¼CPU¡£±ÈÈçÁ賿2µãÖÁ6µãÊÇÒµÎñµÍ·å£¬ÈÕÖ¾Á¿ÉÙ£¬Ðí¶àlogstashÈÝÆ÷²¢Î´Âú¸ººÉ¹¤×÷£¬ÕýÊʺϷ¢²¼SparkµÄjob¡£ÕâÖÖµ÷¶È·½Ê½ÊµÏÖ¼òµ¥£¬»ùÓÚʱ¼äµ÷¶È£¬¸üÈÝÒ×¼à¿Ø¡£

ȱµãÒ²ÊÇÏÔ¶øÒ×¼ûµÄ£¬ÐèÒªÌáǰ¹æ»®role£¬¾¡Á¿¶ÔÿÖÖ×ÊÔ´ÏûºÄ´ó»§¶¼·ÖÅäµ½Ò»¸ö¶ÔÓ¦µÄrole£¬À©Õ¹ÐԽϲÊʺÏÉϲãÓ¦ÓýÏÎȶ¨µÄϵͳ¡£µÈMESOS-3791ºÏ²¢ºó£¬¾Í¿ÉÒÔ¶¯Ì¬µÄ¹ÜÀírole£¬ÄÇôMesosµÄ×ÊÔ´µÄ¹ÜÀí¾Í»á¸ü¼ÓÁé»îÁË¡£

6. °æ±¾Éý¼¶

Ö÷ÒªÊÇMesos¡¢DockerµÄ°æ±¾Éý¼¶£¬ÓÉÓÚÖÚËùÖÜÖªµÄÔ­Òò£¬DockerµÄÉý¼¶ÊDZȽÏÍ´¿àµÄ£¬ÐèҪֹͣËùÓеÄÈÝÆ÷ºóÔÙÉý¼¶daemon¡£ÎÒÃǵÄÏßÉÏ»·¾³¾­ÀúÁËMesos 0.22.0µ½0.25.0£¬Docker 1.4.1µ½1.7.1µÄÑݽø£¬×ܽá³öÁËÒ»ÌױȽÏÓÐЧµÄÉý¼¶²ßÂÔ£¬Éϲã·þÎñÎÞ¸ÐÖª¡£Ê×ÏÈMesosÒª¿ªÆô°×Ãûµ¥£¨--whitelist£©¹¦ÄÜ£º

1) ÏȽ«ÒªÉý¼¶µÄ»úÆ÷Ìß³ö°×Ãûµ¥£¬ÕâÒ»²½±£Ö¤ÁËÉϲãµÄFrameworkÔÚÊÕµ½statusUpdate²»»áµ÷¶Èµ½Õą̂»úÆ÷ÉÏ£»

2) È»ºóÖð¸östopÈÝÆ÷£¬ÈÝÆ÷ÄÚµÄÓ¦Óý¨Òé´¦ÀíSIGTERMÐźÅ×öÇåÀí¹¤×÷£»

3) ½Ó×ÅÍ£Ö¹docker daemonºÍmesos slave£»

4) Éý¼¶dockerºÍmesos°æ±¾£»

5) ÖØÆôdockerºÍmesos²¢½«»úÆ÷ÖØÐ¼ÓÈëµ½°×Ãûµ¥¡£

¿ª·¢»·¾³¿ìËÙrebuild

ÓÐÁËÈÕ־ƽ̨µÄ¾­Ñ飬ÎÒÃǵŤ×÷ÖÐÐÄ¿ªÊ¼Ïòʵ¼ÊÐèÇóÇãб£¬¾¡¿ìÂú×ãÒµÎñÏߵĻ·¾³ÒªÇó¡£¹²¾­ÀúÁËÈý´Î±È½Ï´óµÄ±ä¸ü£¬Ö÷Òª´Ó¼æÈÝÐÔ£¬¹«Ë¾Äڵķ¢²¼Á÷³ÌºÍ¿ª·¢ÈËÔ±Ò×ÓÃÐԵĽǶȿ¼Á¿£¬Öð²½Ñݽø£º

1) OpenStack + nova-docker + VLAN

2) Mesos + Marathon + Docker(--net=host) + Ëæ»ú¶Ë¿Ú

3) Mesos + Marathon + Docker + Calico

µÚÒ»½×¶Î£ºÈÝÆ÷µ±×÷ÐéÄâ»úÓÃ

ÈÝÆ÷µÄʹÓúÍÐÐΪ¾¡Á¿Ä£ÄâÐéÄâ»úÊÇÎÒÃǵÚÒ»½×¶Î¿¼ÂǵÄÖØµã£¬Í¬Ê±»¹Òª¿¼Âǵ½·¢²¼ÏµÍ³¸ÄÔìµÄ³É±¾£¬OpenStackÌṩµÄnova-docker×ÔÈ»³ÉÁËÊ×Ñ¡¡£ÔÙ´Ë»ù´¡ÉÏ£¬ÎªÈÝÆ÷ÌṩÍⲿ¿É·ÃÎʵĶÀÁ¢IP£¨VLAN£©¡£nova-dockerºÍnova-networkÒѾ­ÌṩÁ˴󲿷ֹ¦ÄÜ£¬ÕûºÏµÄËÙ¶ÈÒ²±È½Ï¿ì¡£

ÈÝÆ÷Æô¶¯ºó»áÓжà¸ö½ø³Ì£¬±ÈÈçsalt-minionºÍsshd£¬ÕâÑùʹÓÃÕß¿ÉÒÔsshµ½ÈÝÆ÷ÄÚdebug£¬¶ø²¿ÊðµÄ¹¤×÷Ôò½»¸øsaltͳһ¹ÜÀí¡£

µÚ¶þ½×¶Î£ºÒÔ·þÎñΪºËÐÄ

Öð½¥Ç¿»¯ÒÔ·þÎñΪºËÐĵÄÓ¦Ó÷¢²¼ºÍ¹ÜÀíÁ÷³Ì£¬ÏòͳһµÄ·þÎñÊ÷¿¿Â£¡£ÔÚµÚÒ»½×¶ÎµÄ³É¹ûµÄ»ù´¡ÉÏ£¬ÍêÉÆ·þÎñÊ÷µÄ½á¹¹ºÍ¹æÔò£¬ÎªºóÃæ´òͨ¼à¿ØÊ÷£¬Ó¦ÓÃÊ÷µÈÄ£¿é×öºÃ³ä·ÖµÄ×¼±¸¡£

ͬʱ£¬ÈÝÆ÷¿ªÊ¼´ÓOpenStack + nova-dockerµÄ½á¹¹ÏòMesos + Marathon + DockerÇ¨ÒÆ£¬ÕûÌ×»·¾³µÄ·¢²¼Ñ¹Ëõµ½ÁË7¡«9·ÖÖÓ£¬ÆäÖл¹°üº¬ÁËhealthcheckµÄʱ¼ä£¬»¹ÓÐÉîÈëÓÅ»¯µÄ¿Õ¼ä¡£

1.ÒÀÀµ·ÅÔÚQAECIÖÐά»¤£¬·¢²¼Ê±¸ù¾ÝÍØÆËÅÅÐòºóµÄ½á¹ûÑ¡Ôñ×Ô¶¯Çл»²¢ÐУ¬´®Ðз¢²¼¡£

2.´úÂëºÍÅäÖÃÔÚÈÝÆ÷Æô¶¯ºóÔÙÀ­È¡£¬¼õÉÙά»¤¾µÏñµÄ³É±¾£¬·½±ãÉý¼¶ÔËÐл·¾³£¬±ÈÈçÉý¼¶JDK»òTomcat¡£

3.·þÎñ¶Ë¿ÚÈ«²¿Ëæ»úÉú³É£¬²¢Í¨¹ý»·¾³±äÁ¿×¢Èëµ½ÒÀÀµµÄÈÝÆ÷Öв¢Ìæ»»ÅäÖã¬ÕâÑù¾Í½â¾öÁË--net=hostģʽ϶˿ڷÖÅäµÄÎÊÌâ¡£dubbo·þÎñ×¢²áµÄÊÇËÞÖ÷»úµÄIPºÍPORT£¬Èç¹ûÊÇbridgeģʽµÄ»°£¬¼ÇµÃҪע²áËÞÖ÷»úµÄIPºÍÓ³ÉäµÄPORT¡£

4.Êʵ±»º´æ±àÒëºóµÄ´úÂ룬¼õÉÙÖØ¸´¹¹½¨µÄʱ¼äÀË·Ñ¡£

5.Openresty + lua½Å±¾¶¯Ì¬proxy_pass µ½¼¯ÈºÄÚµÄTomcat£¬Íⲿ¼´¿Éͨ¹ý·ºÓòÃûµÄ·½Ê½·ÃÎÊMarathon·¢²¼µÄÓ¦Óã¬ÀýÈçapp1.marathon.corp.qunar.com¼´¿É·ÃÎʵ½app1¶ÔÓ¦µÄWEB·þÎñ¡£

6.ÐÞ¸ÄlogbackºÍtomcatµÄÅäÖã¬ËùÓÐÈÕÖ¾¶¼Êä³öµ½stdoutºÍstderr£¬²¢¸½´øÎļþÃûǰ׺×öÇø·Ö¡£²¢Í¨¹ýheka£¬ÅäºÏfields_from_envÇø·ÖÊÇÄÄÒ»¸öMesos taskµÄÈÕÖ¾£¬Í³Ò»·¢ÏòÈÕ־ƽ̨»ã×ÜºÍ¼à¿Ø¡£

µÚÈý½×¶Î

ΪÈÝÆ÷·ÖÅä¹Ì¶¨IP£¬´òͨ¼¯ÈºÄÚÍâµÄ·þÎñͨÐÅ£¬Èÿª·¢ÈËÔ±ÎÞÕϰ­µÄ·ÃÎÊÈÝÆ÷¡£Îª´ËÎÒÃÇÒýÈëÁËCalico×÷Ϊ½â¾ö·½°¸¡£CalicoÕûºÏMesos±È½Ï¼òµ¥£¬Í¨¹ýMesos slaveÆô¶¯Ê±Ö¸¶¨--modulesºÍ-isolation¼´¿ÉʹÓãº

{code}
./bin/mesos-slave.sh --master=master_ip:port --namespaces='network' \ --modules=file://path/to/slave_gssapi.json \ --isolation="com_mesosphere_mesos_MetaswitchNetworkIsolator" \
--executor_environment_variables={¡°DOCKER_HOST¡±: ¡°localhost:2377¡±}

{ "libraries": [ { "file": "/path/to/libmetaswitch_network_isolator.so "modules": [

{ "name": "com_mesosphere_mesos_MetaswitchNetworkIsolator", "parameters": [

{ "key": "initialization_command", "value": "python /path/to/initialization_script.py arg1 arg2" },

{ "key": "cleanup_command", "value": "python /path/to/cleanup_script.py arg1 arg2" } ] } ] } ] }
{code}

ÕâÑùMesosÔÚÖ´ÐÐDockerÃüÁîµÄʱºò£¬ËùÓеÄÇëÇó¶¼±»calicoÈÝÆ÷½Ù³Ö²¢×ª·¢¸ødocker daemon£¬Í¬Ê±¸øÈÝÆ÷·ÖÅäIP£¬ÉϲãµÄMarathonÖ»ÐèÒª¶îÍâÌí¼ÓÁ½¸öenvÅäÖãº

CALICO_IP=auto|ip

CALICO_PROFILE=test

½áºÏÎÒÃÇ×ÔÉíµÄÍøÂç½á¹¹£¬ÎÒÃÇÔÚ½»»»»úÉÏÔ¤ÁôÁËÒ»¸öIP¶Î£¬È«²¿Ö¸ÏòÁËcalicoµÄÁ½Ì¨gateway£¬×ª·¢µ½Mesos¼¯ÈºÄÚ²¿£º

ͬʱÕûºÏ¹«Ë¾ÄÚµÄDNSDB·þÎñ£¬½«ÈÝÆ÷µÄÃû³ÆºÍIP×Ô¶¯×¢²áµ½DNSDBÄÚ£¬ÕâÑùÈ«¹«Ë¾µÄÈ˶¼¿ÉÒÔ·ÃÎʵ½Õâ¸öÈÝÆ÷£¬´òͨ¼¯ÈºÄÚÍâµÄͨÐÅ¡£¶ÔÓÚһЩÓÐÌØÊâÒªÇóµÄÇé¿ö£¬È翪·¢»úµÄÃû³Æ±ØÐë·ûºÏÒ»¶¨ÃüÃû¹æÔò£¬Í¨¹ý´«Èë--hostname¾Í¿ÉÒÔÄ£Äâһ̨¿ª·¢»ú¡£

×ܽá

¾­¹ý½ü1ÄêÀ´µÄʹÓúÍÔËά£¬ÔÚDockerºÍMesosÉϲÈÁ˲»ÉٵĿӣ¬¶à¿÷ÁËÉçÇøµÄ¹±Ï×ÕßÃÇ£¬»ýÀÛÁËÐí¶à¾­Ñé¡£Mesos±íÏÖ³öµÄÎȶ¨ÐÔ¡¢¿ÉÓÃÐÔºÍÀ©Õ¹ÐÔ×ã¹»µ£µ±Éú²ú»·¾³µÄ×ÊÔ´¹ÜÀíÕߣ¬ÃÀÖв»×ãµÄÊǵ÷¶È²ßÂÔÂÔÏÔµ¥Ò»£¬ÒÀÀµÉϲãFrameworkµÄ¶þ´Îµ÷¶È¡£

ºóÐøÎÒÃǽ«¿¼ÂÇÔÚµÚËĽ׶ε÷ÑÐSwarm on Mesos£¬ÀûÓÃDocker¹«Ë¾Ô­ÉúµÄ¼¯Èº·½°¸ÅäºÏMesosµÄ×ÊÔ´¹ÜÀí£¬ÎªÒµÎñÏßÌṩ¸ü¼ÓÎȶ¨£¬±ãÀûµÄÈÝÆ÷»·¾³¡£

   
4760 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

ÆóÒµ¼Ü¹¹¡¢TOGAFÓëArchiMate¸ÅÀÀ
¼Ü¹¹Ê¦Ö®Â·-ÈçºÎ×öºÃÒµÎñ½¨Ä££¿
´óÐÍÍøÕ¾µçÉÌÍøÕ¾¼Ü¹¹°¸ÀýºÍ¼¼Êõ¼Ü¹¹µÄʾÀý
ÍêÕûµÄArchimateÊÓµãÖ¸ÄÏ£¨°üÀ¨Ê¾Àý£©
Ïà¹ØÎĵµ

Êý¾ÝÖÐ̨¼¼Êõ¼Ü¹¹·½·¨ÂÛÓëʵ¼ù
ÊÊÓÃArchiMate¡¢EA ºÍ iSpace½øÐÐÆóÒµ¼Ü¹¹½¨Ä£
ZachmanÆóÒµ¼Ü¹¹¿ò¼Ü¼ò½é
ÆóÒµ¼Ü¹¹ÈÃSOAÂ䵨
Ïà¹Ø¿Î³Ì

ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ÖÐ̨սÂÔ¡¢ÖÐ̨½¨ÉèÓëÊý×ÖÉÌÒµ
ÒÚ¼¶Óû§¸ß²¢·¢¡¢¸ß¿ÉÓÃϵͳ¼Ü¹¹
¸ß¿ÉÓ÷ֲ¼Ê½¼Ü¹¹Éè¼ÆÓëʵ¼ù
×îл¼Æ»®
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]

ר¼ÒÊӽǿ´ITÓë¼Ü¹¹
Èí¼þ¼Ü¹¹Éè¼Æ
ÃæÏò·þÎñÌåϵ¼Ü¹¹ºÍÒµÎñ×é¼þ
ÈËÈËÍøÒÆ¶¯¿ª·¢¼Ü¹¹
¼Ü¹¹¸¯»¯Ö®ÃÕ
̸ƽ̨¼´·þÎñPaaS

ÃæÏòÓ¦Óõļܹ¹Éè¼ÆÊµ¼ù
µ¥Ôª²âÊÔ+ÖØ¹¹+Éè¼ÆÄ£Ê½
Èí¼þ¼Ü¹¹Ê¦¡ª¸ß¼¶Êµ¼ù
Èí¼þ¼Ü¹¹Éè¼Æ·½·¨¡¢°¸ÀýÓëʵ¼ù
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ¡ª¸ß¼¶Êµ¼ù
SOAÌåϵ½á¹¹Êµ¼ù

Èñ°²¿Æ¼¼ Èí¼þ¼Ü¹¹Éè¼Æ·½·¨
³É¶¼ ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
ÉϺ£Æû³µ ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
±±¾© Èí¼þ¼Ü¹¹Éè¼Æ
ÉϺ£ Èí¼þ¼Ü¹¹Éè¼Æ°¸ÀýÓëʵ¼ù
±±¾© ¼Ü¹¹Éè¼Æ·½·¨°¸ÀýÓëʵ¼ù
ÉîÛÚ ¼Ü¹¹Éè¼Æ·½·¨°¸ÀýÓëʵ¼ù
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ¡ª¸ß¼¶Êµ¼ù