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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
»ùÓÚDocker³ÖÐø½»¸¶Æ½Ì¨½¨ÉèµÄʵ¼ù
 
  2317  次浏览      27
 2018-1-5  
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚÁõÏþÃ÷,ÎÄÕÂÎ§ÈÆ¼¸¸öÎÄÕÂÕ¹¿ª£¬È»ºó½²½âÁËÈÝÆ÷¡¢²¿Êð¡¢»·¾³¡¢×¢²á¼°·þÎñ¡£

×÷Ϊ´´Òµ¹«Ë¾ºÍÍÆÐÐDevOps¹¤³ÌʦÃÇÀ´Ëµ£¬¶¼Óöµ½¹ýÕâÑùµÄÎÊÌ⣺

Ó²¼þ×ÊÔ´ÀûÓÃÂʵÄÎÊÌ⣬Ôì³É²¿·Ö³É±¾µÄÀË·Ñ

ÔÚÍøÕ¾¹¦ÄÜÖв»Í¬µÄÒµÎñ³¡¾°ÓмÆËãÐ͵ģ¬ÓÐIO¶ÁдÐ͵ģ¬ÓÐÍøÂçÐÍ£¬ÓÐÄÚ´æÐ͵쬼¯Öв¿ÊðÓ¦ÓþͻᵼÖÂ×ÊÔ´ÀûÓÃÂʲ»ºÏÀíµÄÎÊÌâ¡£±ÈÈ磬һ¸ö»úÆ÷Éϲ¿ÊðµÄ·þÎñ¶¼ÊÇÄÚ´æÃܼ¯ÐÍ£¬ÄÇôCPU×ÊÔ´¾Í¶¼ºÜÈÝÒ×ÀË·ÑÁË¡£

µ¥ÎïÀí»ú¶àÓ¦ÓÃÎÞ·¨¶ÔÎÞ·¨½øÐÐÓÐЧµÄ¸ôÀ룬µ¼ÖÂÓ¦ÓöÔ×ÊÔ´µÄÇÀÕ¼ºÍÏ໥ӰÏì

Ò»¸öÎïÀí»úÆ÷Åܶà¸öÓ¦Óã¬ÎÞ·¨½øÐÐËùʹÓõÄCPU£¬Äڴ棬½ø³Ì½øÐÐÏÞÖÆ£¬Èç¹ûÒ»¸öÓ¦ÓóöÏÖ¶Ô×ÊÔ´µÄÇÀÕ¼ÎÊÌ⣬¾Í»áÒýÆðÁ¬Ëø·´Ó¦£¬×îÖÕµ¼ÖÂÍøÕ¾²¿·Ö¹¦Äܲ»¿ÉÓá£

»·¾³¡¢°æ±¾¹ÜÀí¸´ÔÓ£¬ÉÏÏß²¿ÊðÁ÷³Ìȱ·¦£¬Ôö¼ÓÎÊÌâÅŲéµÄ¸´ÔÓ¶È

ÓÉÓÚÄÚ²¿¿ª·¢Á÷³ÌµÄ²»¹æ·¶£¬´úÂëÔÚ²âÊÔ»òÕßÉÏÏß¹ý³ÌÖУ¬¶ÔһЩÅäÖÃÏîºÍϵͳ²ÎÊý½øÐÐËæÒâµÄµ÷Õû£¬ÔÚ·¢²¼Ê±½øÐÐÔöÁ¿·¢²¼£¬Ò»µ©³öÏÖÎÊÌ⣬¾Í»áµ¼Ö²âÊԵĴúÂëºÍÏßÉÏÔËÐеĴúÂëÊDz»Ò»Öµģ¬Ôö¼ÓÁË·þÎñÉÏÏߵķçÏÕ£¬Ò²Ôö¼ÓÁËÏßÉÏ·þÎñ¹ÊÕÏÅŲéµÄÄѶȡ£

»·¾³²»Îȶ¨£¬Ç¨ÒƳɱ¾¸ß£¬Ôö¼ÓÉÏÏß·çÏÕ

ÔÚ¿ª·¢¹ý³ÌÖдæÔÚ¶à¸öÏîÄ¿²¢Ðпª·¢ºÍ·þÎñµÄÒÀÀµÎÊÌ⣬ÓÉÓÚ»·¾³ºÍ°æ±¾µÄ¸´ÔÓÐԺܸߣ¬²»ÄÜ¿ìËٴºÍÇ¨ÒÆÒ»¸ö»·¾³£¬µ¼ÖÂÎÞ·¨ÔÚ²âÊÔ»·¾³ÖÐÎÞ·¨Ä£Äâ³öÏßÉϵÄÁ÷³Ì½øÐвâÊÔ£¬ºÜ¶àͬѧÔÚÏßÉÏ»·¾³½øÐвâÊÔ£¬ÕâÀïÓкܸߵÄDZÔÚ·çÏÕ£¬Í¬Ê±µ¼Ö¿ª·¢Ð§ÂʽµµÍ¡£

´«Í³ÐéÄâ»úºÍÎïÀí»úÕ¼Óÿռä´ó£¬Æô¶¯Âý£¬¹ÜÀí¸´ÔÓµÈÎÊÌâ

´«Í³ÐéÄâ»úºÍÎïÀí»úÔÚÆô¶¯¹ý³Ì½øÐмÓÔØÄںˣ¬Ö´ÐÐÄں˺Íinit½øÐУ¬µ¼ÖÂÔÚÆô¶¯¹ý³ÌÕ¼Óúܳ¤Ê±¼ä£¬¶øÇÒÔÚ¹ÜÀí¹ý³ÌÖлáÓöµ½¸÷ÖÖ¸÷ÑùµÄ¹ÜÀíÎÊÌâ¡£

»ùÓÚDockerÈÝÆ÷¼¼Êõ£¬ÔËά¼¼ÊõÍŶӿª·¢ÁËÎå°¢¸çÍøÕ¾µÄÈÝÆ÷ÔÆÆ½Ì¨¡£Í¨¹ýÈÝÆ÷ÔÆÆ½Ì¨95%µÄÓ¦Ó÷þÎñÒѾ­ÊµÏÖÈÝÆ÷»¯²¿Êð¡£ÕâЩӦÓÃÖ§³ÖÒµÎñ°´ÐèÍØÕ¹£¬Ãë¼¶ÉìËõ£¬ÌṩÓëÓû§ÓѺõĽ»»¥¹ý³Ì£¬¹æ·¶Á˲âÊÔºÍÉú²úµÄ·¢²¼Á÷³Ì£¬Èÿª·¢ºÍ²âÊÔͬѧ´Ó»ù´¡µÄ»·¾³ÅäÖúͷ¢²¼½â·Å³öÀ´£¬Ê¹Æä¸ü¾Û½¹×Ô¼ºµÄÏîÄ¿¿ª·¢ºÍ²âÊÔ¡£½áºÏÎå°¢¸çÈÝÆ÷ÔÆÆ½Ì¨ºÍDockerÈÝÆ÷¼¼ÊõµÄʵ¼ù£¬±¾ÎÄÏȽéÉÜÈçºÎʵÏÖ7*24Сʱ¡°Ò»Õ¾Ê½¡±µÄ³ÖÐø½»¸¶£¬ÊµÏÖ²úÆ·µÄÉÏÏß¡£

ÈÝÆ÷ÔÆÆ½Ì¨¼Ü¹¹Í¼

Docker¾µÏñ±ê×¼»¯

ÖÚËùÖÜÖª£¬DockerµÄ¾µÏñÊÇ·Ö²ãµÄ¡£¶Ô¾µÏñ·Ö²ã½øÐÐÔ¼¶¨£º

µÚÒ»²ãÊDzÙ×÷ϵͳ²ã£¬ÓÉCentOS/AlpineµÈ»ù´¡¾µÏñ¹¹³É£¬°²×°Ò»Ð©Í¨ÓõĻù´¡×é¼þ£»

µÚ¶þ²ãÊÇÖмä¼þ²ã£¬¸ù¾Ý²»Í¬µÄÓ¦ÓóÌÐò£¬°²×°ËüÃÇÔËÐÐʱÐèҪʹÓõ½µÄ¸÷ÖÖÖмä¼þºÍÒÀÀµÈí¼þ°ü£¬È磬Nginx¡¢TomcatµÈ£»

µÚÈý²ãÊÇÓ¦Óò㣬Õâ²ã½ö°üº¬ÒѾ­´òºÃ°üµÄ¸÷Ó¦ÓóÌÐò´úÂë¡£

Docker Image·Ö²ã

¾­Ñé×ܽ᣺ÈçºÎÈÃ×Ô¼ºµÄ¾µÏñ±äµÄ¸üС£¬PUSHµÄ¸ü¿ì£¿

Docker ImageÓÅ»¯Ç°ºó¶Ô±È

Dockerfile¹¹½¨Ó¦ÓþµÏñ£¬ÔÚÖмä¼þ²ãÓöµ½Ò»Ð©ÐèÒª°²×°µÄÈí¼þ°üʱ£¬¾¡¿ÉÄܵÄʹÓðü¹ÜÀí¹¤¾ß£¨Èçyum£©»òÒÔgit clone·½Ê½ÏÂÔØÔ´Âë°ü½øÐа²×°£¬Ä¿µÄÊǽ«Èí¼þ°üµÄcopyºÍ°²×°¿ØÖÆÔÚͬһ²ã£¬Èí¼þ²¿Êð³É¹¦ºóÇå³ýһЩÎÞÓõÄrpm°ü»òÔ´Âë°ü£¬Èûù´¡¾µÏñµÄ³ß´ç¸üС¡£

JavaÓ¦ÓþµÏñÖв¢Ã»Óн«JDKÈí¼þ°ü´òÈë¾µÏñ£¬½«JDK²¿ÊðÔÚÿ̨ËÞÖ÷ÉÏ£¬ÔÚÔËÐоµÏñʱ£¬Í¨¹ý¹ÒÔØÄ¿Â¼µÄ·½Ê½½«ËÞÖ÷»úÉϵÄJava¼ÒĿ¼¹ÒÔØÖÁÈÝÆ÷Ö¸¶¨Ä¿Â¼Ï¡£ÒòΪËü»á°Ñ»ù´¡¾µÏñ³ÅµÃ·Ç³£´ó¡£

ÔÚ¹¹½¨Ó¦ÓþµÏñʱ£¬Docker»á¶ÔÕâÁ½²ã½øÐлº´æ²¢Ö±½ÓʹÓ㬽ö»áÖØÐ´´½¨´úÂë³öÏֱ䶯µÄÓ¦Óò㣬ÕâÑù¾ÍÌá¸ßÁËÓ¦ÓþµÏñµÄ¹¹½¨ËٶȺ͹¹½¨³É¹¦ºóÏò¾µÏñ²Ö¿âÍÆË͵ÄËÙ¶È£¬´ÓÕûÌåÁ÷³ÌÉÏÌáÉýÁËÓ¦ÓõIJ¿ÊðЧÂÊ¡£

ÈÝÆ÷µÄ±àÅŹÜÀí

±àÅŹ¤¾ßµÄÑ¡ÐÍ£º

Docker±àÅŹ¤¾ß¶Ô±È

RancherͼÐλ¯¹ÜÀí½çÃæ£¬²¿Êð¼òµ¥¡¢·½±ã£¬¿ÉÒÔÓëAD¡¢LDAP¡¢GitHub¼¯³É£¬»ùÓÚÓû§»òÓû§×é½øÐзÃÎÊ¿ØÖÆ£¬¿ìËÙ½«ÏµÍ³µÄ±àÅŹ¤¾ßÉý¼¶ÖÁKubernetes»òÕßSwarm£¬Í¬Ê±ÓÐרҵµÄ¼¼ÊõÍŶӽøÐÐÖ§³Ö£¬½µµÍÈÝÆ÷¼¼ÊõÈëÃŵÄÄѶȡ£

Rancher¼Ü¹¹Í¼

»ùÓÚÒÔÉÏÓŵãÎÒÃÇÑ¡ÔñRancher×÷ΪÎÒÃÇÈÝÆ÷ÔÆÆ½Ì¨µÄ±àÅŹ¤¾ß£¬ÔÚ¶ÔÓ¦ÓõÄÈÝÆ÷ʵÀý½øÐÐͳһµÄ±àÅŵ÷¶Èʱ£¬ÅäºÏDocker-Compose×é¼þ£¬¿ÉÒÔÔÚͬһʱ¼ä¶Ô¶ą̀ËÞÖ÷»úÖ´Ðе÷¶È²Ù×÷¡£Í¬Ê±£¬ÔÚ·þÎñ·ÃÎʳöÏÖ·åÖµºÍµÍ¹Èʱ£¬ÀûÓÃÌØÓеÄrancher-compose.ymlÎļþµ÷Óá°SCALE¡±ÌØÐÔ£¬¶ÔÓ¦Óü¯ÈºÖ´Ðж¯Ì¬À©ÈݺÍËõÈÝ£¬ÈÃÓ¦Óð´ÐèÇó´¦Àí²»Í¬µÄÇëÇó¡£https:/zhuanlan.zhihu.com/p/29093407

ÈÝÆ÷ÍøÂçÄ£ÐÍÑ¡ÐÍ£º

Docker ÍøÂç¶Ô±È

ÓÉÓÚºó¶Ë¿ª·¢»ùÓÚ°¢ÀïµÄHSF¿ò¼Ü£¬Éú²úÕߺÍÏû·ÑÕßÖ®¼äÐèÒªÍøÂç¿É´ï£¬¶ÔÍøÂçÒªÇó±È½Ï¸ß£¬ÐèÒªÒÔÕæÊµIPµØÖ·½øÐÐ×¢²áºÍÀ­È¡·þÎñ¡£ËùÒÔÔÚÑ¡ÔñÈÝÆ÷ÍøÂçʱ£¬ÎÒÃÇʹÓÃÁËHostģʽ£¬ÔÚÈÝÆ÷Æô¶¯¹ý³ÌÖлáÖ´Ðнű¾¼ì²éËÞÖ÷»ú²¢·ÖÅ䏸ÈÝÆ÷Ò»¸ö¶ÀÁ¢µÄ¶Ë¿Ú£¬À´±ÜÃâ³åÍ»µÄÎÊÌâ¡£

³ÖÐø¼¯³ÉÓë³ÖÐø²¿Êð

³ÖÐø¼¯³É£¬¼à²â´úÂëÌύ״̬£¬¶Ô´úÂë½øÐгÖÐø¼¯³É£¬ÔÚ¼¯³É¹ý³ÌÖÐÖ´Ðе¥Ôª²âÊÔ£¬´úÂëSonarºÍ°²È«¹¤¾ß½øÐо²Ì¬É¨Ã裬½«½á¹û֪ͨ¸ø¿ª·¢Í¬Ñ§Í¬Ê±²¿Ê𼯳ɻ·¾³£¬²¿Êð³É¹¦ºó´¥·¢×Ô¶¯»¯²âÊÔ£¨×Ô¶¯»¯²âÊÔ²¿·ÖºóÐø»á¸üУ©¡£

³ÖÐø¼¯³É

¾²Ì¬É¨Ãè½á¹û£º

¾²Ì¬É¨Ãè½á¹û

³ÖÐø²¿Êð£¬ÊÇÒ»ÖÖÄÜÁ¦£¬ÕâÖÖÄÜÁ¦·Ç³£ÖØÒª£¬°ÑÒ»¸ö°ü¿ìËÙ²¿ÊðÔÚÄãÏëÒªµÄµØ·½¡£Æ½Ì¨²ÉÓ÷ֲ¼Ê½¹¹½¨¡¢²¿Êð£¬Master¹ÜÀí¶à¸öSlave½Úµã£¬Ã¿¸öSlave½Úµã·ÖÊô²»Í¬µÄ»·¾³¡£ÔÚMasterÉϰ²×°²¢¸üвå¼þ¡¢´´½¨job¡¢¹ÜÀí¸÷¿ª·¢ÍŶÓȨÏÞ¡£SlaveÓÃÓÚÖ´ÐÐjob¡£

³ÖÐø²¿Êð

»ùÓÚÉÏÊö¼Ü¹¹£¬ÎÒÃǶ¨ÒåÁ˳ÖÐø²¿Êð¹æ·¶µÄÁ÷³Ì£º

¿ª·¢Í¬Ñ§ÏòGitLabÌá½»´úÂ룻

À­È¡ÏîÄ¿´úÂëºÍÅäÖÃÏîÎļþ£¬Ö´ÐбàÒëÈÎÎñ£»

À­È¡»ù´¡¾µÏñ£¬½«±àÒëºÃµÄÓ¦Óðü´òÈëÉú³É×îеÄÓ¦ÓþµÏñ£¬ÍÆË͵½¾µÏñ²Ö¿â£»

¸ù¾Ýµ±Ç°Ó¦Óü°ËùÊô»·¾³¶¨ÖÆ»¯Éú³Édocker-compose.ymlÎļþ£¬»ùÓÚÕâ¸öÎļþÖ´ÐÐrancher-composeÃüÁ½«Ó¦ÓþµÏñ²¿Êðµ½Ô¤·¢»·¾³£¨·¢²¼Éú²úǰµÄ²âÊÔ»·¾³£¬Ïà¹ØÅäÖᢷþÎñÒÀÀµ¹ØÏµºÍÉú²ú»·¾³Ò»Ö£©¡£

Ô¤·¢»·¾³²âÊÔͨ¹ýºó½«Ó¦ÓþµÏñ²¿ÊðÖÁÏßÉÏ»·¾³£¬²âÊÔ½á¹û֪ͨºó¶Ë²âÊÔͬѧ¡£

ÈÝÆ÷µÄÔËÐйÜÀí

Ó¦ÓÃÈÝÆ÷ÏÖÔÚÒѾ­²¿Êðµ½ÏßÉÏ»·¾³£¬ÄÇôÔÚÕû¸öÈÝÆ÷µÄÉúÃüÖÜÆÚÖУ¬»¹ÐèÒª½â¾öÏÂÃæÁ½¸öÎÊÌ⣺

ÈçºÎ±£´æÓ¦ÓóÌÐò²úÉúµÄÔËÐÐÈÕÖ¾ºÍÆäËüÒµÎñÈÕÖ¾£»

ÈçºÎÔÚºó¶Ë·þÎñ³öÏֱ仯ºónginxÄܹ»×Ô¶¯·¢ÏÖ²¢Íê³ÉÅäÖøüС£

ÈÕÖ¾¹ÜÀí

ÈÝÆ÷ÔÚÔËÐÐʱ»áÔÚÖ»¶Á²ãÖ®ÉÏ´´½¨¶Áд²ã£¬ËùÓжÔÓ¦ÓóÌÐòµÄд²Ù×÷¶¼ÔÚÕâ²ã½øÐС£µ±ÈÝÆ÷ÖØÆôºó£¬¶Áд²ãÖеÄÊý¾Ý£¨°üº¬ÈÕÖ¾£©Ò²»áÒ»²¢±»Çå³ý¡£ËäÈ»¿ÉÒÔͨ¹ý½«ÈÝÆ÷ÖÐÈÕ־Ŀ¼¹ÒÔØµ½ËÞÖ÷»ú½â¾ö´ËÀàÎÊÌ⣬µ«µ±ÈÝÆ÷ÔÚ¶à¸öËÞÖ÷»ú¼äƵ·±Æ¯ÒÆÊ±£¬Ã¿¸öËÞÖ÷»úÉ϶¼»áÓÐÁô´æÓ¦ÓÃÃûµÄ²¿·ÖÈÕÖ¾£¬Ôö¼ÓÁË¿ª·¢Í¬Ñ§²é¿´¡¢ÅŲéÎÊÌâµÄÄѶȡ£

×ÛÉÏËùÊô£¬ÈÕÖ¾·þÎñƽ̨×÷ΪÎå°¢¸çÍøÕ¾ÈÕÖ¾²Ö¿â£¬½«Ó¦ÓÃÔËÐйý³ÌÖвúÉúµÄÈÕ־ͳһ´æ´¢£¬²¢ÇÒÖ§³Ö¶àÖÖ·½Ê½µÄ²éѯ²Ù×÷¡£

ÈÕÖ¾¹ÜÀí

ͨ¹ýÔÚÈÕÖ¾·þÎñµÄ¹ÜÀí½çÃæÅäÖÃÈÕÖ¾²É¼¯Â·¾¶£¬ÔÚÈÝÆ÷Öв¿ÊðAgent°ÑÓ¦ÓÃÈÕ־ͳһͶµÝµ½LogstoreÖУ¬ÔÙÔÚLogstoreÖÐÅäÖÃÈ«ÎÄË÷ÒýºÍ·Ö´Ê·û£¬ÒԱ㿪·¢Í¬Ñ§Äܹ»Í¨¹ý¹Ø¼ü×ÖËÑË÷¡¢²éѯÏëÒªµÄÈÕÖ¾ÄÚÈÝ¡£

¾­Ñé×ܽ᣺ÈçºÎ±ÜÃâÈÕÖ¾µÄÖØ¸´²É¼¯ÎÊÌ⣿

ÈÕÖ¾·þÎñµÄagentÐèÒªÔÚÅäÖÃÎļþ¡°ilogtailconfig.json¡±ÖÐÔö¼ÓÅäÖòÎÊý¡°checkpoint_filename¡±£¬Ö¸¶¨checkpointÎļþÉú³ÉµÄ¾ø¶Ô·¾¶£¬²¢ÇÒ½«´Ë·¾¶¹ÒÔØÖÁËÞÖ÷»úĿ¼Ï£¬È·±£ÈÝÆ÷ÔÚÖØÆôʱ²»»á¶ªÊ§checkpointÎļþ£¬²»»á³öÏÖÖØ¸´²É¼¯ÎÊÌâ¡£

·þÎñµÄ×¢²á

etcdÊÇÒ»¸ö¾ß±¸¸ß¿ÉÓÃÐÔºÍǿһÖÂÐԵļüÖµ´æ´¢²Ö¿â£¬ËüʹÓÃÀàËÆÓÚÎļþϵͳµÄÊ÷Ðνṹ£¬Êý¾ÝÈ«²¿ÒÔ¡°/¡±¿ªÍ·¡£etcdµÄÊý¾Ý·ÖΪÁ½ÖÖÀàÐÍ£ºkeyºÍdirectories£¬ÆäÖÐkeyÏ´洢µ¥¶ÀµÄ×Ö·û´®Öµ£¬directoriesÏÂÔò´æ·ÅkeyµÄ¼¯ºÏ»òÕ߯äËû×ÓĿ¼¡£

Ó¦ÓÃ×¢²á

ÔÚÎå°¢¸ç»·¾³ÖУ¬Ã¿¸öÏòetcd×¢²áµÄÓ¦Ó÷þÎñ£¬ËüÃǵĸùĿ¼¶¼ÒÔ¡±/${APPNAME}${ENVIRONMENT}¡±ÃüÃû¡£¸ùĿ¼Ï´洢ÿ¸öÓ¦ÓÃʵÀýµÄKeyÐÅÏ¢£¬ËüÃǶ¼ÒÔ¡°${IP}-${PORT}¡±µÄ·½Ê½ÃüÃû¡£

ÏÂͼÊÇʹÓÃÉÏÊöÔ¼¶¨£¬´æ´¢ÔÚetcdÉÏijӦÓÃʵÀýµÄÊý¾Ý½á¹¹£º

etcdÊý¾Ý´æ´¢½á¹¹

¿ÉÒÔ¿´µ½ÎÒÊÇʹÓÃget·½·¨Ïòetcd·¢ËÍÇëÇóµÄ£¬ÇëÇóµÄÊDz¿ÊðÔÚÔ¤·¢»·¾³£¨PRE£©µÄËÑË÷·þÎñ£¨search£©£»ÔÚËüµÄ¸ùĿ¼¡°/search_PRE¡±Ï£¬½ö´æ´¢ÁËÒ»¸öÓ¦ÓÃʵÀýµÄÐÅÏ¢£¬Õâ¸öʵÀýµÄkeyÊÇ¡°172.18.100.31-86¡±£»¶ÔÓ¦µÄvalueÊÇ¡°172.18.100.31:86¡®¡¯£¬Õû¸ö×¢²á¹ý³ÌÊÇÕâÑùµÄ£º

ͨ¹ý´úÂëΪÈÝÆ÷Ó¦ÓóÌÐòÉú³ÉËæ»ú¶Ë¿Ú£¬ºÍËÞÖ÷»úÕýÔÚʹÓõĶ˿ڽøÐбȶԣ¬È·±£¶Ë¿ÚûÓгåÍ»ºóдÈë³ÌÐòÅäÖÃÎļþ£»

°Ñͨ¹ýPythonºÍetcdÄ£¿é±àдµÄ·þÎñ×¢²á¹¤¾ß¼¯³ÉÔڽű¾ÖУ¬½«IPµØÖ·ºÍÉÏÒ»²½»ñÈ¡µÄËæ»ú¶Ë¿ÚÒÔ²ÎÊýµÄ·½Ê½´«µÝ¸ø·þÎñ×¢²á¹¤¾ß£»

´ýÓ¦ÓóÌÐòÍêÈ«Æô¶¯ºó£¬ÓÉ·þÎñ×¢²á¹¤¾ßÒÔÔ¼¶¨ºÃµÄÊý¾Ý½á¹¹½«Ó¦ÓÃʵÀýµÄдÈëetcd¼¯Èº£¬Íê³É·þÎñ×¢²á¹¤×÷£»

ÈÝÆ÷¶¨Ê±Ïòetcd·¢ËÍÐÄÌø£¬±¨¸æ´æ»î²¢Ë¢ÐÂTTLʱ¼ä£»

ÈÝÆ÷½Å±¾²¶»ñRancher·¢ËÍÖÁÓ¦ÓÃʵÀýµÄsingnal terminalÐźţ¬ÔÚ½ÓÊÕµ½ÐźźóÏòetcd·¢ËÍdeleteÇëÇóɾ³ýʵÀýµÄÊý¾Ý¡£

×¢£ºÔÚTTL»ù´¡ÉÏÔö¼ÓÖ÷¶¯Çå³ý¹¦ÄÜ£¬ÔÚ·þÎñÕý³£ÊÍ·Åʱ£¬¿ÉÒÔÁ¢¿ÌÇå³ýetcdÉÏ×¢²áÐÅÏ¢£¬²»±ØµÈ´ýttlʱ¼ä¡£

¾­Ñé×ܽ᣺ÈÝÆ÷ÔÚÖØÆô»òÕßÒâÍâÏú»Ùʱ£¬ÈÃÎÒÃÇÒ»Æð¿´Ò»ÏÂÕâ¸ö¹ý³ÌÖÐÈÝÆ÷ºÍ×¢²áÖÐÐͼ×öÁËʲôÊÂÇ飿

Ó¦ÓÃÔÚ×¢²áÊÇЯ´økeyºÍvalueʱЯ´øÁËTTL³¬Ê±ÊôÐÔ£¬¾ÍÊÇ¿¼Âǵ½µ±·þÎñ¼¯ÈºÖеÄʵÀýå´»úºó£¬ËüÔÚetcdÖÐ×¢²áµÄÐÅÏ¢Ò²ËæÖ®Ê§Ð§£¬Èô²»ÓèÇå³ý£¬Ê§Ð§µÄÐÅÏ¢½«»á³ÉΪÀ¬»øÊý¾Ý±»Ò»Ö±±£´æ£¬¶øÇÒÅäÖùÜÀí¹¤¾ß»¹»á°ÑËüµ±×öÕý³£Êý¾Ý¶ÁÈ¡³öÀ´£¬Ð´Èëweb serverµÄÅäÖÃÎļþÖС£Òª±£Ö¤´æ´¢ÔÚetcdÖеÄÊý¾ÝʼÖÕÓÐЧ£¬¾ÍÐèÒªÈÃetcdÖ÷¶¯ÊÍ·ÅÎÞЧµÄʵÀýÐÅÏ¢£¬À´¿´Ò»ÏÂ×¢²áÖÐÐÄˢеĻúÖÆ£¬´úÂëÖ±½Ó·îÉÏ£º

#!/usr/bin/env
python
import etcd
import sys
arg_l=sys.argv[1:]
etcd_clt=etcd.Client(host='172.18.0.7')
def
set_key(key,value,ttl=10):
try:
return
etcd_clt.write(key,value,ttl)
except TypeError:
print 'key or vlaue is null'
def
refresh_key(key,ttl=10):
try:
return
etcd_clt.refresh(key,ttl)
except TypeError:
print 'key is null'
def
del_key(key):
try:
return etcd_clt.delete(key)
except TypeError:
print 'key is null'
if arg_l:
if len(arg_l) == 3:
key,value,ttl=arg_l
set_key(key,value,ttl)
elif len(arg_l) == 2:
key,ttl=arg_l
refresh_key(key,ttl)
elif len(arg_l) == 1:
key=arg_l[0]
del_key(key)
else:
raise TypeError,'Only three
parameters are needed here'
else:
raise Exception('args is null')

·þÎñµÄ·¢ÏÖ

ConfdÊÇÒ»¸öÇáÁ¿¼¶µÄÅäÖùÜÀí¹¤¾ß£¬Ö§³Öetcd×÷Ϊºó¶ËÊý¾ÝÔ´£¬Í¨¹ý¶ÁÈ¡Êý¾ÝÔ´Êý¾Ý£¬±£Ö¤±¾µØÅäÖÃÎļþΪ×îУ»²»½öÈç´Ë £¬Ëü»¹¿ÉÒÔÔÚÅäÖÃÎļþ¸üк󣬼ì²éÅäÖÃÎļþÓï·¨ÓÐЧÐÔ£¬ÒÔÖØÐ¼ÓÔØÓ¦ÓóÌÐòʹÅäÖÃÉúЧ¡£ÕâÀïÐèҪ˵Ã÷µÄÊÇ£¬ConfdËäȻ֧³Örancher×÷ΪÊý¾ÝÔ´£¬µ«¿¼ÂÇÒ×ÓÃÐÔºÍÀ©Õ¹ÐÔµÈÔ­Òò£¬×îÖÕÎÒÃÇ»¹ÊÇÑ¡ÔñÁËetcd¡£

ºÍ´ó¶àÊý²¿Êð·½Ê½Ò»Ñù£¬ÎÒÃǰÑConfd²¿ÊðÔÚweb serverËùÔÚµÄECSÉÏ£¬±ãÓÚConfdÔÚ¼à²âµ½Êý¾Ý±ä»¯ºó¼°Ê±¸üÐÂÅäÖÃÎļþºÍÖØÆô³ÌÐò¡£ConfdµÄÏà¹ØÅäÖÃÎļþºÍÄ£°åÎļþ²¿ÊðÔÚĬÈÏ·¾¶/etc/confdÏ£¬Ä¿Â¼½á¹¹ÈçÏ£º

/etc/confd/
©À©¤©¤ conf.d
©À©¤©¤ confd.toml
©¸©¤©¤ templates

confd.tomlÊÇConfdµÄÖ÷ÅäÖÃÎļþ£¬Ê¹ÓÃTOML¸ñʽ±àд£¬ÒòΪÎÒÃÇetcdÊǼ¯Èº²¿Êð£¬Óжà¸ö½Úµã£¬¶øÎÒÓÖ²»Ïë°ÑConfdµÄÖ¸Áî¸ãµÄÓÖ³ôÓÖ³¤£¬ËùÒÔ½«interval¡¢nodesµÈÑ¡Ïîдµ½ÁËÕâ¸öÅäÖÃÎļþÀï¡£

cond.dĿ¼´æ·Åweb serverµÄÄ£°åÅäÖÃÔ´Îļþ£¬Ò²Ê¹ÓÃTOML¸ñʽ±àд¡£¸ÃÎļþÓÃÓÚÖ¸¶¨Ó¦ÓÃÄ£°åÅäÖÃÎļþ·¾¶£¨src£©¡¢Ó¦ÓÃÅäÖÃÎļþ·¾¶£¨dest£©¡¢Êý¾ÝÔ´µÄkeyÐÅÏ¢£¨keys£©µÈ¡£

TemplatesĿ¼´æ·Åweb serverÏÂÿ¸öÓ¦ÓõÄÄ£°åÅäÖÃÎļþ¡£ËüʹÓÃGoÖ§³ÖµÄtext/templateÓïÑÔ¸ñʽ½øÐбàд¡£ÔÚconfd´ÓetcdÖжÁÈ¡µ½×îÐÂÓ¦ÓÃ×¢²áÐÅÏ¢ºó£¬Í¨¹ýÏÂÃæµÄÓï¾äдÈëÄ£°åÅäÖÃÎļþÖУº

{{range getvs "/${APP_NAME}/*"}}
server {{.}};
{{end}}

·þÎñ·¢ÏÖ

ͨ¹ýSupervisor¹ÜÀíConfd½ø³Ì¡£ConfdÔÚÔËÐкó»áÿ¸ô5Ãë¶Ôetcd½øÐÐÂÖѯ£¬µ±Ä³¸öÓ¦Ó÷þÎñµÄK/V¸üкó£¬Confd»á¶ÁÈ¡¸ÃÓ¦Óô洢ÔÚetcdÖеÄÊý¾Ý£¬Ð´È뵽ģ°åÅäÖÃÎļþÖУ¬Éú³ÉÕâ¸öÓ¦ÓÃÅäÖÃÎļþ£¬×îºóÓÉConfd½«ÅäÖÃÎļþдÈ뵽Ŀ±ê·¾¶Ï£¬ÖØÐ¼ÓÔØNginx³ÌÐòʹÅäÖÃÉúЧ¡£

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

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

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

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