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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
GitOps¡ª¡ªÒ»ÖÖʵÏÖÔÆÔ­ÉúµÄ³ÖÐø½»¸¶Ä£ÐÍ
 
  3062  次浏览      30
2019-4-16 
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚcsdn,ÔÚ±¾ÎÄÖУ¬½«Öصã²ûÊö GitOps ¹¤×÷Á÷³ÌµÄÔ­ÀíºÍģʽ£¬ÒÔ¼°½«ËüÃÇÓ¦ÓÃÔÚÉú²úºÍ´ó¹æÄ£ÔËÐÐ Kubernetes ÖеÄһЩʵ¼ù¾­Ñé¡£

GitOps ÊÇÒ»ÖÖʵÏÖ³ÖÐø½»¸¶µÄÄ£ÐÍ£¬ËüµÄºËÐÄ˼ÏëÊǽ«Ó¦ÓÃϵͳµÄÉùÃ÷ÐÔ»ù´¡¼Ü¹¹ºÍÓ¦ÓóÌÐò´æ·ÅÔÚ Git µÄ°æ±¾¿ØÖÆ¿âÖС£Ë×»°Ëµ¡°±øÂíδ¶¯£¬ÀíÂÛÏÈÐС±£¬ÔÚ±¾ÎÄÖУ¬½«Öصã²ûÊö GitOps ¹¤×÷Á÷³ÌµÄÔ­ÀíºÍģʽ£¬ÒÔ¼°½«ËüÃÇÓ¦ÓÃÔÚÉú²úºÍ´ó¹æÄ£ÔËÐÐ Kubernetes ÖеÄһЩʵ¼ù¾­Ñé¡£

ʲôÊÇ GitOps£¿

GitOps ÊÇÒ»ÖÖ³ÖÐø½»¸¶µÄ·½Ê½¡£ËüµÄºËÐÄ˼ÏëÊǽ«Ó¦ÓÃϵͳµÄÉùÃ÷ÐÔ»ù´¡¼Ü¹¹ºÍÓ¦ÓóÌÐò´æ·ÅÔÚ Git °æ±¾¿âÖС£

½« Git ×÷Ϊ½»¸¶Á÷Ë®ÏߵĺËÐÄ£¬Ã¿¸ö¿ª·¢ÈËÔ±¶¼¿ÉÒÔÌá½»À­È¡ÇëÇó£¨Pull Request£©²¢Ê¹Óà Git À´¼ÓËٺͼò»¯ Kubernetes µÄÓ¦ÓóÌÐò²¿ÊðºÍÔËάÈÎÎñ¡£Í¨¹ýʹÓÃÏñ Git ÕâÑùµÄ¼òµ¥¹¤¾ß£¬¿ª·¢ÈËÔ±¿ÉÒÔ¸ü¸ßЧµØ½«×¢ÒâÁ¦¼¯ÖÐÔÚ´´½¨Ð¹¦Äܶø²»ÊÇÔËάÏà¹ØÈÎÎñÉÏ£¨ÀýÈ磬ӦÓÃϵͳ°²×°¡¢ÅäÖá¢Ç¨ÒƵȣ©¡£

GitOps µÄÖ÷ÒªÓŵã

ͨ¹ý GitOps£¬µ±Ê¹Óà Git Ìá½»»ù´¡¼Ü¹¹´úÂë¸ü¸Äʱ£¬×Ô¶¯»¯µÄ½»¸¶Á÷Ë®Ï߻ὫÕâЩ¸ü¸ÄÓ¦Óõ½Ó¦ÓóÌÐòµÄʵ¼Ê»ù´¡¼Ü¹¹ÉÏ¡£µ«ÊÇ GitOps µÄÏë·¨Ô¶²»Ö¹ÓÚ´Ë¡ª¡ªËü»¹»áʹÓù¤¾ß½«Õû¸öÓ¦ÓóÌÐòµÄʵ¼ÊÉú²ú״̬Óë»ù´¡¼Ü¹¹Ô´´úÂë½øÐбȽϣ¬È»ºóËü»á¸æËß¼¯ÈºÄÄЩ»ù´¡¼Ü¹¹Ô´´úÂëÓëʵ¼Ê»·¾³²»Æ¥Åä¡£

ͨ¹ýÓ¦Óà GitOps ×î¼Ñʵ¼ù£¬Ó¦ÓÃϵͳµÄ»ù´¡¼Ü¹¹ºÍÓ¦ÓóÌÐò´úÂë¶¼ÓС°ÕæÊµÀ´Ô´¡±¡ª¡ªÆäʵÊǽ«»ù´¡¼Ü¹¹ºÍÓ¦ÓóÌÐò´úÂë¶¼´æ·ÅÔÚ gitlab¡¢»òÕß github µÈ°æ±¾¿ØÖÆÏµÍ³ÉÏ¡£Õâʹ¿ª·¢ÍŶӿÉÒÔÌá¸ß¿ª·¢ºÍ²¿ÊðËٶȲ¢Ìá¸ßÓ¦ÓÃϵͳ¿É¿¿ÐÔ¡£

½« GitOps ÀíÂÛ·½·¨Ó¦ÓÃÔÚ³ÖÐø½»¸¶Á÷Ë®ÏßÉÏ£¬ÓÐÖî¶àÓÅÊÆºÍÌØµã£º

°²È«µÄÔÆÔ­Éú CI/CD ¹ÜµÀÄ£ÐÍ

¸ü¿ìµÄƽ¾ù²¿Êðʱ¼äºÍƽ¾ù»Ö¸´Ê±¼ä

Îȶ¨ÇÒ¿ÉÖØÏֵĻعö£¨ÀýÈ磬¸ù¾Ý Git »Ö¸´ / »Ø¹ö / fork£©

Óë¼à¿ØºÍ¿ÉÊÓ»¯¹¤¾ßÏà½áºÏ£¬¶ÔÒѾ­²¿ÊðµÄÓ¦ÓýøÐÐÈ«·½Î»µÄ¼à¿Ø

GitOps Ó¦Óó¡¾°

×÷Ϊ CI / CD Á÷Ë®Ïߵķ½°¸£¬GitOps ±»ÃèÊöΪÈí¼þ¿ª·¢¹ý³ÌµÄ¡°Ê¥±­¡±¡£ ÓÉÓÚûÓе¥Ò»¹¤¾ß¿ÉÒÔÍê³ÉÁ÷Ë®ÏßÖÐËùÐèµÄËùÓй¤×÷£¬Òò´Ë¿ÉÒÔ×ÔÓɵØÎªÁ÷Ë®ÏߵIJ»Í¬²¿·ÖÑ¡Ôñ×î¼Ñ¹¤¾ß¡£¿ÉÒÔ´Ó¿ªÔ´Éú̬ϵͳÖÐÑ¡ÔñÒ»×鹤¾ß£¬Ò²¿ÉÒÔ´Ó·â±ÕÔ´ÖÐÑ¡ÔñÒ»×鹤¾ß£¬»òÕ߸ù¾ÝʹÓÃÇé¿ö£¬ÉõÖÁ¿ÉÒÔ½«ËüÃÇ×éºÏÔÚÒ»Æð£¬Æäʵ£¬´´½¨Á÷Ë®Ïß×îÀ§ÄѵIJ¿·ÖÊǽ«ËùÓв¿¼þÕ³ºÏÔÚÒ»Æð¡£

²»¹ÜÈçºÎÑ¡Ôñ¹¹Ôì×Ô¼ºµÄ½»¸¶Á÷Ë®Ïߣ¬½«»ùÓÚ Git£¨»òÕ߯äËû°æ±¾¿ØÖƹ¤¾ß£©µÄ GitOps ×î¼Ñʵ¼ùÓ¦ÓÃÔÚ½»¸¶Á÷Ë®ÏßÖж¼ÊÇÒ»¸ö²»¶þÑ¡Ôñ£¬Õ⽫ʹ¹¹½¨³ÖÐø½»¸¶Á÷Ë®Ïߣ¬ÒÔ¼°ºóÐøµÄÍÆ¹ã±äµÃ¸ü¼ÓÈÝÒ×£¬Õâ²»½ö´Ó¼¼Êõ½Ç¶È¶øÇÒ´ÓÎÄ»¯½Ç¶ÈÀ´¿´¶¼ÊÇÈç´Ë¡£

µ±È»£¬GitOps Ò²²»ÊÇÍòÄܵģ¬ËüÒ²ÓÐÏàÓ¦µÄÓ¦Óó¡¾°¡£

²»¿É±ä»ù´¡ÉèÊ©

¡°²»¿É±ä»ù´¡ÉèÊ©¡±ÕâÒ»¸ÅÄî²»ÊǸոÕð³öÀ´µÄ£¬ËüÒ²²»ÊDZØÐëÐèÒªÈÝÆ÷¼¼Êõ¡£È»¶ø£¬Í¨¹ýÈÝÆ÷£¬Ëü±äµÃ¸üÒ×ÓÚÀí½â£¬¸ü¼ÓʵÓ㬲¢ÒýÆðÁËÒµÄڹ㷺עÒâ¡£¡°²»¿É±ä»ù´¡ÉèÊ©¡±ÈÃÎÒÃÇÒÔȫеķ½Ê½Àí½âºÍÃæ¶ÔÓ¦ÓÃϵͳ£¬ÓÈÆäÊÇʹÒÔ΢·þÎñΪ´ú±íµÄ·Ö²¼Ê½ÏµÍ³ÔÚ²¿Êð¡¢ÔËÓªµÈ·½Ãæ±äµÃ²»ÄÇô¸´ÔÓ£¬¶øÓкܺõĿɿØÐÔ¡£

ÄÇô£¬ÈçºÎ±È½Ï·½±ãµØÔÚʵ¼ÊµÄÉú²ú¹ý³ÌÖÐÓ¦Óá°²»¿É±ä»ù´¡ÉèÊ©¡±£¬Õâ¸øÒµ½çÒ²Ìá³öÁËÁíÍâÒ»¸öÎÊÌâ¡£

GitOps ÊÇÔÚ¾ßÌå Kubernetes µÄÓ¦ÓÃʵ¼ùÖгöÏֵģ¬GitOps ÐèÒªÒÀÍÐÓÚ¡°²»¿É±ä»ù´¡¼Ü¹¹¡±²ÅÄÜ·¢»ÓÆä×÷Óá£ÔÚÒ»¶¨³Ì¶ÈÉÏ˵£¬¡°²»¿É±ä»ù´¡¼Ü¹¹¡±Îª GitOps µÄ³öÏÖ´´ÔìÁ˱ØÒªµÄÌõ¼þ£¬·´¹ýÀ´ GitOps Ó¦Óà Kubernetes µÄÈÝÆ÷±àÅÅÄÜÁ¦£¬Äܹ»Ñ¸ËÙµÄʹÓþµÏñ´î½¨³öÓ¦ÓÃϵͳËùÐèµÄ×é¼þ¡£

ÉùÃ÷ÐÔÈÝÆ÷±àÅÅ

Kubermetes ×÷Ϊһ¸öÔÆÔ­ÉúµÄ¹¤¾ß£¬¿ÉÒÔ°ÑËüµÄ¡°ÉùÃ÷ÐÔ¡±¿´×÷ÊÇ¡°´úÂ롱£¬ÉùÃ÷Òâζ×ÅÅäÖÃÓÉÒ»×éÊÂʵ¶ø²»ÊÇÒ»×éÖ¸Áî×é³É£¬ÀýÈ磬¡°ÓÐÊ®¸ö redis ·þÎñÆ÷¡±£¬¶ø²»ÊÇ¡°Æô¶¯Ê®¸ö redis ·þÎñÆ÷£¬¸æËßÎÒËüÊÇ·ñÓÐЧ¡±¡£

½èÖú Kubermetes µÄÉùÃ÷ÐÔÌØµã£¬Ó¦ÓÃϵͳµÄÕû¸öÅäÖÃÎļþ¼¯¿ÉÒÔÔÚ Git ¿âÖнøÐа汾¿ØÖÆ¡£Í¨¹ýʹÓà Git ¿â£¬Ó¦ÓóÌÐò¸üÈÝÒײ¿Êðµ½ Kubernetes ÖУ¬ÒÔ¼°½øÐа汾»Ø¹ö¡£¸üÖØÒªµÄÊÇ£¬µ±ÔÖÄÑ·¢Éúʱ£¬Èº¼¯µÄ»ù´¡¼Ü¹¹¿ÉÒÔ´Ó Git ¿âÖпɿ¿ÇÒ¿ìËٵػָ´¡£

GitOps ³ä·ÖÀûÓÃÁ˲»¿É±ä»ù´¡ÉèÊ©ºÍÉùÃ÷ÐÔÈÝÆ÷±àÅÅ£¬Í¨¹ý GitOps ¿ÉÒÔÇáËɵعÜÀí¶à¸ö²¿Êð¡£ÎªÁË×î´óÏ޶ȵؽµµÍ²¿ÊðºóµÄ±ä¸ü·çÏÕ£¬ÎÞÂÛÊÇÓÐÒ⻹ÊÇżȻµÄ¡°ÅäÖÃÆ«²î¡±£¬GitOps ¹¹½¨ÁËÒ»¸ö¿ÉÖØ¸´ÇÒ¿É¿¿µÄ²¿Êð¹ý³Ì£¬ÔÚÕû¸öÓ¦ÓÃϵͳ崻ú»òÕßËð»µÇé¿öÏ£¬Îª¿ìËÙÇÒÍêÈ«»Ö¸´ÌṩÁËËùÐèÌõ¼þ¡£

GitOps µÄ»ù±¾Ô­Ôò

ÒÔÏÂÊÇÔÚÔÆÔ­Éú»·¾³ÖÐ GitOps µÄÔ­Ôò£º

ÈκÎÄܹ»±»ÃèÊöµÄÄÚÈݶ¼±ØÐë´æ´¢ÔÚ Git ¿âÖÐ

ͨ¹ýʹÓà Git ×÷Ϊ´æ´¢ÉùÃ÷ÐÔ»ù´¡¼Ü¹¹ºÍÓ¦ÓóÌÐò´úÂëµÄ´æ´¢²Ö¿â£¬¿ÉÒÔ·½±ãµØ¼à¿Ø¼¯Èº£¬ÒÔ¼°¼ì²é±È½Ïʵ¼Ê»·¾³µÄ״̬Óë´úÂë¿âÉϵÄ״̬ÊÇ·ñÒ»Ö¡£ËùÒÔ£¬ÎÒÃǵÄÄ¿±êÊÇÃèÊöϵͳÏà¹ØµÄËùÓÐÄÚÈÝ£º²ßÂÔ£¬´úÂ룬ÅäÖã¬ÉõÖÁ¼à¿ØÊ¼þºÍ°æ±¾¿ØÖƵȣ¬²¢ÇÒ½«ÕâЩÄÚÈÝÈ«²¿´æ´¢ÔÚ°æ±¾¿âÖУ¬ÔÚͨ¹ý°æ±¾¿âÖеÄÄÚÈݹ¹½¨ÏµÍ³µÄ»ù´¡¼Ü¹¹»òÕßÓ¦ÓóÌÐòµÄʱºò£¬Èç¹ûûÓгɹ¦£¬Ôò¿ÉÒÔѸËٵĻعö£¬²¢ÇÒÖØÐÂÀ´¹ý¡£

²»Ó¦Ö±½ÓʹÓà Kubectl

×÷Ϊһ°ã¹æÔò£¬²»ÌᳫÔÚÃüÁîÐÐÖÐÖ±½ÓʹÓà kubectl ÃüÁî²Ù×÷Ö´Ðв¿Êð»ù´¡¼Ü¹¹»òÓ¦ÓóÌÐòµ½¼¯ÈºÖС£»¹ÓÐһЩ¿ª·¢ÕßʹÓà CI ¹¤¾ßÇý¶¯Ó¦ÓóÌÐòµÄ²¿Ê𣬵«Èç¹ûÕâÑù×ö£¬¿ÉÄÜ»á¸øÉú²ú»·¾³´øÀ´Ç±ÔÚ²»¿ÉÔ¤²âµÄ·çÏÕ¡£

µ÷Óà Kubernetes µÄ API µÄ½Ó¿Ú»òÕß¿ØÖÆÆ÷Ó¦¸Ã×ñÑ­ Operator ģʽ

µ÷Óà Kubernetes µÄ API µÄ½Ó¿Ú»òÕß¿ØÖÆÆ÷Ó¦¸Ã×ñÑ­ Operator ģʽ£¬¼¯ÈºµÄ״̬ºÍ Git ¿âÖеÄÅäÖÃÎļþµÈÒª±£³ÖÒ»Ö£¬²¢ÇҲ鿴·ÖÎöËüÃÇÖ®¼äµÄ״̬²îÒì¡£

GitOps ×î¼Ñʵ¼ù

ÒÔ Git ×÷ΪÊÂʵµÄÎ¨Ò»ÕæÊµÀ´Ô´

Git ÊÇÿ¸ö¿ª·¢ÈËÔ±¹¤¾ß°üµÄÒ»²¿·Ö¡£Ñ§Ï°ÆðÀ´¸Ð¾õ×ÔÈ»¶øÇÒ²»ÄÇôÁîÈËÉú磬¶øÇÒ¹¤¾ß±¾ÉíÒ²·Ç³£¼òµ¥¡£ ͨ¹ýʹÓà Git ×÷ΪӦÓÃϵͳµÄÊÂʵÀ´Ô´£¬¼¸ºõ¿ÉÒÔ²Ù×÷ËùÓж«Î÷¡£ÀýÈ磬°æ±¾¿ØÖÆ£¬ÀúÊ·¼Ç¼£¬ÆÀÉóºÍ»Ø¹ö¶¼ÊÇͨ¹ý Git ½øÐе쬶øÎÞÐèʹÓÃÏñ kubectl ÕâÑùµÄ¹¤¾ß¡£

À­Ê½Á÷Ë®Ïß¡ª¡ªPull Request ²Ù×÷

ÍÆËÍÁ÷Ë®Ïß

Ŀǰ´ó¶àÊý CI / CD ¹¤¾ß¶¼Ê¹ÓûùÓÚÍÆË͵ÄÄ£ÐÍ¡£»ùÓÚÍÆË͵ÄÁ÷Ë®ÏßÒâζ×Å´úÂë´Ó CI ϵͳ¿ªÊ¼£¬Í¨¹ýһϵÁй¹½¨²âÊÔµÈ×îÖÕÉú³É¾µÏñ£¬×îºóÊÖ¶¯Ê¹Óá°kubectl¡±½«Èκθü¸ÄÍÆË͵½ Kubernetes ¼¯Èº¡£

ºÜ¶à¿ª·¢ÈËÔ±²»Ô¸ÒâÔÚ CI ÖÐÆô¶¯ CD ²¿ÊðÁ÷³Ì£¬»òÕßʹÓÃÃüÁîÐй¤¾ß²Ù×÷Æô¶¯ CD ²¿ÊðÁ÷³ÌµÄÔ­Òò¿ÉÄÜÊÇÕâÑù×ö»á½«¼¯ÈºµÄÓû§ºÍÃÜÂëµÈ¹«²¼³öÈ¥¡£ËäÈ»¿ÉÒÔÓдëÊ©±£»¤ CI / CD ½Å±¾ºÍÃüÁîÐУ¬µ«ÊÇÕâЩ²Ù×÷±Ï¾¹»¹ÊÇÔÚ¼¯ÈºÍⲿ·Ç¿ÉÐÅÇø¹¤×÷µÄ¡£ËùÒÔ£¬ÀàËÆ×ö·¨ÊDz»¿ÉÈ¡µÄ£¬»á¸øÏµÍ³°²È«´øÀ´Ç±ÔڵķçÏÕ¡£

¾ßÓм¯ÈºÍâ¶Á / д£¨R/W£©È¨Ï޵ĵäÐÍÍÆËÍÁ÷Ë®Ïߣº

CI ÔËÐвâÊÔ£¬Êä³ö´«µÝµ½ÈÝÆ÷Ó³Ïñ´æ´¢¿â¡£

CD ϵͳ×Ô¶¯²¿ÊðÈÝÆ÷£¨»ò¸ù¾ÝÇëÇ󣬼´ÊÖ¶¯£©¡£

À­Ê½Á÷Ë®Ïß

ÔÚ GitOps ÖУ¬¾µÏñ±»À­³ö²¢ÇÒÆ¾Ö¤±£ÁôÔÚ¼¯ÈºÖУº

Git ¿âÊÇÀ­Ê½Á÷Ë®ÏßģʽµÄºËÐÄ£¬Ëü´æ´¢Ó¦ÓóÌÐòºÍÅäÖÃÎļþ¼¯¡£¿ª·¢ÈËÔ±½«¸üеĴúÂëÍÆË͵½ Git ´úÂë¿â ; CI ¹¤¾ß»ñÈ¡¸ü¸Ä²¢×îÖÕ¹¹½¨ Docker ¾µÏñ¡£GitOps ¼ì²âµ½ÓоµÏñ£¬´Ó´æ´¢¿âÖÐÌáȡоµÏñ£¬È»ºóÔÚ Git ÅäÖòֿâÖиüÐÂÆä YAML¡£È»ºó£¬GitOps »á¼ì²âµ½Èº¼¯ÒѹýÆÚ£¬²¢´ÓÅäÖÿâÖÐÌáÈ¡ÒѸü¸ÄµÄÇåµ¥£¬²¢½«Ð¾µÏñ²¿Êðµ½Èº¼¯¡£

GitOps µÄÁ÷Ë®Ïß

GitOps Á÷Ë®Ïß

ÕâÊÇÒ»¸öÐÂͼ£¬ÏÔʾ²¿ÊðÉÏÓεÄËùÓÐÄÚÈݶ¼Î§ÈÆ Git ¿â¹¤×÷µÄ¡£ÔÚ¡°À­Ê½Á÷Ë®Ïß¡±Öн²¹ý£¬¿ª·¢ÈËÔ±½«¸üеĴúÂëÍÆË͵½ Git ´úÂë¿â£¬CI ¹¤¾ß»ñÈ¡¸ü¸Ä²¢×îÖÕ¹¹½¨ Docker ¾µÏñ¡£GitOps µÄ Config Update ¼ì²âµ½ÓоµÏñ£¬´Ó´æ´¢¿âÖÐÌáȡоµÏñ£¬È»ºóÔÚ Git ÅäÖòֿâÖиüÐÂÆä YAML¡£È»ºó£¬GitOps µÄ Deploy Operator »á¼ì²âµ½Èº¼¯ÒѹýÆÚ£¬²¢´ÓÅäÖÿâÖÐÌáÈ¡ÒѸü¸ÄµÄÇåµ¥£¬²¢½«Ð¾µÏñ²¿Êðµ½Èº¼¯¡£

ʹÓÃȺ¼¯ÄÚ²¿µÄ Deploy Operator£¬Èº¼¯Æ¾¾Ý²»»áÔÚÉú²ú»·¾³Ö®Í⹫¿ª¡£Ò»µ©½« Deploy Operator °²×°µ½¼¯ÈºÓë Git ²Ö¿â½¨Á¢Á¬½Ó£¬ÏßÉÏ»·¾³ÖеÄÈκθü¸Ä¶¼½«Í¨¹ý¾ßÓÐÍêÈ«»Ø¹öµÄ Git pull ÇëÇóÒÔ¼° Git ÌṩµÄ·½±ãÉó¼ÆÈÕÖ¾Íê³É¡£

×Ô¶¯ git¡ú¼¯ÈºÍ¬²½

ÓÉÓÚûÓе¥Ò»¹¤¾ß¿ÉÒÔÍê³ÉÁ÷Ë®ÏßÖÐËùÐèµÄËùÓй¤×÷£¬¿ÉÒÔ´Ó¿ªÔ´Éú̬ϵͳÖÐÑ¡ÔñÒ»×鹤¾ß£¬Ò²¿ÉÒÔ´Ó·â±ÕÔ´ÖÐÑ¡ÔñÒ»×鹤¾ß£¬»òÕ߸ù¾ÝʹÓÃÇé¿ö£¬ÉõÖÁ¿ÉÒÔ½«ËüÃÇ×éºÏÔÚÒ»Æð£¬Æäʵ£¬´´½¨Á÷Ë®Ïß×îÀ§ÄѵIJ¿·ÖÊǽ«ËùÓв¿¼þÕ³ºÏÔÚÒ»Æð¡£ÒªÊµÏÖ GitOps£¬±ØÐëÒª¿ª·¢³öеÄ×é¼þ£¬ÓÃÓÚÕ³ºÏÕâЩ¹¤¾ß£¬ÊµÏÖÀ­Ê½½»¸¶Á÷Ë®Ïß¡£

²¿ÊðºÍ·¢²¼×Ô¶¯»¯ÊÇÓ¦ÓÃÂäʵ GitOps£¬²¢Ê¹½»¸¶Á÷Ë®Ïß¹¤×÷µÄ»ù´¡¡£GitOps ²»½öÒª±£Ö¤£¬µ±¿ª·¢ÈËԱͨ¹ý Git ¸üÐÂÅäÖÃÎļþ¼¯µÄʱºò£¬GitOps Á÷Ë®ÏßÒª×Ô¶¯¸ù¾Ý×îеÄÅäÖÃÎļþ״̬¸üÐÂÏßÉÏ»·¾³£¬¶øÇÒ GitOps »¹ÒªÄܹ»ÊµÊ±±È¶Ô Git ¿âÖÐÅäÖÃÎļþ¼¯×îеÄ״̬ÓëÏßÉÏ»·¾³×îеÄ״̬±£³ÖÒ»Ö¡£

ÔÚÉϽÚÖÐÌáµ½ÁËÁ½¸öÃû´Ê£ºConfig Update ºÍ Deploy Operator£¬¸ù¾Ý GitOps µÄʵ¼ù£¬Config Update ºÍ Deploy Operator ÊÇÐèÒª½øÐÐÉè¼Æ¿ª·¢µÄ£¬ËüÃÇÊÇʵÏÖ GitOps Á÷Ë®Ïß±ØÐëµÄ¹Ø¼ü×é¼þ¡£GitOps ¸³ÓèÁËËüÃÇÉñÆæµÄħ·¨£¬ËüÃǼÈÊÇ×Ô¶¯»¯ÈÝÆ÷Éý¼¶ºÍ·¢²¼µ½ÏßÉÏ»·¾³µÄ¹¤¾ß£¬¿ÉÄÜÒ²Òª¸ºÔð·þÎñ¡¢²¿Êð¡¢ÍøÂç²ßÂÔÉõÖÁ·ÓɹæÔòµÈÈÎÎñ¡£Òò´Ë£¬Config Update ºÍ Deploy Operator ÊÇÓ³Éä´úÂ룬·þÎñºÍÔËÐм¯ÈºÖ®¼äËùÓйØÏµµÄ¡°Õ³ºÏ¼Á¡±¡£

µ±È»£¬Äú¿ÉÒÔ¸ù¾Ý¾ßÌåµÄÉè¼Æ£¬¸³Óè¸÷ÖÖÆäËûµÄ¹¦ÄÜ£¬µ«ÊÇ ×Ô¶¯Í¬²½ÊÇÒ»¶¨ÐèÒªµÄ£¬È·±£Èç¹û¶Ô´æ´¢¿â½øÐÐÈκθü¸Ä£¬ÕâЩ¸ü¸Ä½«×Ô¶¯²¿Êðµ½ÏßÉÏ»·¾³ÖС£

½ö²¿ÊðÈÝÆ÷ºÍÅäÖÃ

GitOps ½¨Òé²»Ö±½Ó½«Ó¦ÓóÌÐò²¿Êðµ½ÏßÉÏ»·¾³ÖУ¬¶øÊǽ«Ó¦ÓóÌÐòºÍÏà¹ØÅäÖôò°ü³É¾µÏñ£¬²¢´æ´¢µ½¾µÏñ¿âÖУ¬×îºó£¬Í¨¹ý¾µÏñµÄ·½Ê½Éú³ÉÈÝÆ÷£¬²¢²¿Êðµ½ÏßÉÏ»·¾³ÖС£

ÈÝÆ÷ΪʲôÈç´ËÖØÒª£¿ÔÚ GitOps Ä£ÐÍÖУ¬ÎÒÃÇʹÓò»¿É±ä»ù´¡¼Ü¹¹Ä£Ê½¡£Ò»µ©´úÂëÔÚ Git ÖÐÌá½»£¬GitOps ¾Í²»Ï£ÍûÈÎºÎÆäËûÄÚÈÝ·¢Éú±ä»¯£¬ÕâÑù¿ÉÒÔ×î´óÏ޶ȵؽµµÍϵͳDZÔÚ²»È·¶¨ÐÔ¡¢²»Ò»ÖÂÐÔ·çÏÕ¡£ÀýÈ磬ÐèÒª½«ÏàͬµÄÓ¦Óò¿Êðµ½²»Í¬µÄ»úÆ÷ÉÏ¡£Í¨³£ÐèҪϵͳ¹ÜÀíԱȷ±£ËùÓеĻúÆ÷¶¼´¦ÓÚÏàͬµÄ״̬¡£½Ó×ÅËùÓеÄÐ޸ġ¢²¹¶¡¡¢Éý¼¶ÐèÒªÔÚËùÓеĻúÆ÷ÖнøÐС£Ëæ×Åʱ¼äµÄÍÆÒÆ£¬ºÜÄÑÔÙÈ·±£ËùÓеĻúÆ÷´¦ÓÚÏàͬµÄ״̬£¬Í¬Ê±Ô½À´Ô½ÈÝÒ׳ö´í¡£È»¶ø£¬ÈÝÆ÷ÊDZȽÏÍêÃÀµØ½â¾öÁËÕâ¸öÎÊÌ⣬µ±È»£¬Ê¹ÓÃÐéÄâ»úÊÇ¿ÉÒԵģ¬ÏÔȻʹÓÃÈÝÆ÷¸ü¼Ó·½±ã¡£

Ó¦Óý»¸¶ºÏ¹æÐԺͰ²È«ÐÔ

ÓÉÓÚÒÔ°²È«µÄ·½Ê½¸ú×ٺͼǼ¸ü¸Ä£¬Òò´ËºÏ¹æÐÔºÍÉ󼯱äµÃ΢²»×ãµÀ¡£Ê¹Óà Diffs µÈ±È½Ï¹¤¾ß»¹¿ÉÒÔ½« Git ¿âÖж¨ÒåµÄ¼¯Èº×´Ì¬Óëʵ¼ÊÔËÐеļ¯Èº½øÐбȽϣ¬´Ó¶øÈ·±£¸ü¸ÄÓëʵ¼ÊÇé¿öÏà·û¡£

ÔÚ Git ÖмǼËùÓеIJÙ×÷ÈÕÖ¾

¿ª·¢ÈËÔ±»òÕßÔËάÈËԱͨ¹ý Git ²Ù×÷ϵͳÅäÖúÍÓ¦ÓóÌÐòµÄн¨ºÍ¸üеȣ¬Í¨¹ý Git ¿Í»§¶Ë git commit /git merge µÄËùÓвÙ×÷¶¼»á Git ¿â¼Ç¼ÏÂÀ´£¬Éó¼ÆÔ±¿ÉÒԲ鿴 Git£¬¿´¿´Ë­×öÁËÈκθü¸Ä£¬ºÎʱÒÔ¼°ÎªºÎÒÔ¼°ÈçºÎÓ°ÏìÕýÔÚÔËÐеÄϵͳ²¿Êð¡£µ±È»£¬¿ÉÒÔ¸ù¾Ý×ÔÉíµÄÐèÇó¶¨ÖƲ»Í¬µÄ½»¸¶ºÏ¹æÐÔ¡£Ïà½ÏÓÚÖ±½Ó½øÈë·þÎñÆ÷²Ù×÷»òÕßͨ¹ý Kubctl ²Ù×÷¼¯Èº£¬Git ¼Ç¼ÁËÿһ¸ö²Ù×÷²½Ö裬ÕâЩ¿ÉÒÔΪºÏ¹æÐÔºÍÉó¼ÆÌṩÍêÕûµÄ²Ù×÷ÈÕÖ¾¡£

½ÇÉ«ºÍȨÏÞ¿ØÖÆ

¼¸ºõËùÓÐµÄ Git ¿â¶¼Ìṩ½ÇÉ«ºÍȨÏÞ¿ØÖÆ£¬Ó뿪·¢ºÍÔËάÎ޹صÄÈËԱûÓÐȨÏÞ²Ù×÷ Git ¿â¡£¶ø²»ÊÇÖ±½Ó°Ñ·þÎñÆ÷»òÕß¼¯ÈºµÄ²Ù×÷ȨÏÞÉ¢·¢³öÈ¥£¬ÕâÑùÌØ±ðÈÝÒ×ÒýÆð°²È«Ð¹Â¶¡£

GitOps ´øÀ´µÄºÃ´¦

¸ü¼Ó¿ìËٵؿª·¢

½èÖú GitOps µÄ×î¼Ñʵ¼ù£¬¿ª·¢ÈËÔ±¿ÉÒÔʹÓÃÊìϤµÄ Git ¹¤¾ß£¬±ã½ÝµØ½«Ó¦ÓóÌÐòºÍÆä¶ÔÓ¦µÄÅäÖÃÎļþ¼¯³ÖÐø²¿Êðµ½ Kubernetes µÈÔÆÔ­Éú»·¾³£¬Ìá¸ßÒµÎñµÄÃô½Ý¶È£¬¿ìËÙµØÏàÓ¦Óû§µÄÐèÇó£¬ÓÐÖúÓÚÔö¼ÓÆóÒµÊг¡µÄ¾ºÕùÁ¦¡£

¸üºÃµØ½øÐÐÔËά

½èÖú GitOps£¬¿ÉÒÔʵÏÖÒ»¸öÍêÕûµÄ¶Ëµ½¶ËµÄ½»¸¶Á÷Ë®Ïß¡£²»½ö¿ÉÒÔʵÏÖÀ­Ê½µÄ³ÖÐø¼¯³ÉÁ÷Ë®ÏߺͳÖÐø²¿ÊðÁ÷Ë®Ïߣ¬¶øÇÒϵͳµÄÔËά²Ù×÷¿ÉÒÔͨ¹ý Git À´Íê³É¡£

¸üÇ¿´óµÄ°²È«±£Ö¤

¼¸ºõËùÓÐµÄ Git ¿â¶¼Ìṩ½ÇÉ«ºÍȨÏÞ¿ØÖÆ£¬Ó뿪·¢ºÍÔËάÎ޹صÄÈËԱûÓÐȨÏÞ²Ù×÷ Git ¿â¡£¶ø²»ÊÇÖ±½Ó°Ñ·þÎñÆ÷»òÕß¼¯ÈºµÄ²Ù×÷ȨÏÞÉ¢·¢³öÈ¥£¬ÕâÑùÌØ±ðÈÝÒ×ÒýÆð°²È«Ð¹Â¶¡£

¸üÈÝÒ׺ϹæµÄÉó¼Æ

ÓÉÓÚÒÔ°²È«µÄ·½Ê½¸ú×ٺͼǼ¸ü¸Ä£¬Òò´ËºÏ¹æÐÔºÍÉ󼯱äµÃ΢²»×ãµÀ¡£Ê¹Óà Diffs µÈ±È½Ï¹¤¾ß»¹¿ÉÒÔ½«¼¯Èº×´Ì¬µÄ¿ÉÐŶ¨ÒåÓëʵ¼ÊÔËÐеļ¯Èº½øÐбȽϣ¬´Ó¶øÈ·±£¸ú×ٺͿÉÉ󼯵ďü¸ÄÓëʵ¼ÊÇé¿öÏà·û¡£

 

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

ΪʲôҪ×ö³ÖÐø²¿Êð£¿
ÆÊÎö¡°³ÖÐø½»¸¶¡±£ºÎå¸öºËÐÄʵ¼ù
¼¯³ÉÓë¹¹½¨Ö¸ÄÏ
³ÖÐø¼¯³É¹¤¾ßµÄÑ¡Ôñ-×°ÔØ
Ïà¹ØÎĵµ

³ÖÐø¼¯³É½éÉÜ
ʹÓÃHudson³ÖÐø¼¯³É
³ÖÐø¼¯³ÉÖ®-ÒÀÀµ¹ÜÀí
IPD¼¯³É²úÆ·¿ª·¢¹ÜÀí
Ïà¹Ø¿Î³Ì

ÅäÖùÜÀí¡¢ÈÕ¹¹½¨Óë³ÖÐø¼¯³É
Èí¼þ¼Ü¹¹Éè¼Æ·½·¨¡¢°¸ÀýÓëʵ¼ù
µ¥Ôª²âÊÔ¡¢Öع¹¼°³ÖÐø¼¯³É
»ùÓÚAndroidµÄµ¥Ôª¡¢ÐÔÄܲâÊÔ