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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÂäµØÎ¢·þÎñÌØÉ«µÄ DevOps ¹ÜµÀ£¬³ÖÐø¼¯³É/²¿Êðµ½ Kubernetes
 
×÷ÕߣºDevOpsʱ´ú
  1815  次浏览      28
 2020-5-28 
 
±à¼­ÍƼö:
ÎÄÕÂÖ÷Òª½éÉÜÁËÈçºÎ´î½¨Ò»Ìõ³ÉÊìÎȶ¨¡¢ÇÒ·ûºÏ΢·þÎñÌØÉ«µÄ¸ß¶È×Ô¶¯»¯DevOps¹ÜµÀ,Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚÔÆÉçÇø,ÓÉ»ðÁú¹ûÈí¼þAlice±à¼­ÍƼö¡£

ǰÑÔ

2018Äê¼ÈÊÇ΢·þÎñ¼Ü¹¹»ð±¬µÄÒ»Ä꣬ҲÊÇÈÝÆ÷ºÍKubernetesÊÕ»ñÔÞÓþÅèÂú²§ÂúµÄÒ»ÄꣻÔÚkubernetesµÄÒýÁìÏ£¬ÒÔÈÝÆ÷ΪÖÐÐIJ¿Êð΢·þÎñÒѳÉΪһÖÖÊÂʵ±ê×¼£¬²¢²»¶Ï¼ÓËÙ×Å΢·þÎñ¼Ü¹¹Ä£Ê½Â䵨£¬³ÖÐøµØ·¢»Ó×ÅËüµÄħÁ¦¡£

ÆóÒµ£¬ÌرðÊÇ»¥ÁªÍø¹«Ë¾£¬ÎªÁË¿ìËÙÏìӦǰ¶ËÓû§µÄÐèÇó£¬Ëõ¶Ì²úÆ·´ÓÐèÇóµ½½»¸¶µÄÖÜÆÚ£¬³£³£ÐèÒª¿ìËٵء¢Ï¸Äå¶ÈµØµü´ú²úÆ·£¬ÒÔÇÀÕ¼Êг¡ÏÈ»ú£»ÔÚ΢·þÎñģʽÏ£¬¿ÉÒԺܺõØÂú×ãÕâ¸öÒªÇó£¬Ö»·¢²¼±ä»¯µÄ·þÎñ£¬´Ó¶ø×îС»¯µ¥´Îµü´úµÄ·çÏÕ£¬ÊµÏÖÃô½Ý¿ª·¢ºÍ²¿Êð¡£

µ±²ÉÓÃ΢·þÎñģʽºó£¬Õû¸öÒµÎñÁ÷³Ì½«±»´¹Ö±²ð·Ö³É¶à¸öСµ¥Ôª£»Ã¿¸öСµ¥Ôª¶¼ÊÇÒ»¸ö¶ÀÁ¢¿ª·¢¡¢¶ÀÁ¢²¿ÊðºÍ¶ÀÁ¢À©Õ¹µÄ΢´¦Àí·þÎñ£¬ÕâÑùµÄÁé»îÐԷdz£ÊʺÏÃô½Ý¿ª·¢Ä£Ê½£¬µ«Ò²¸ø¿ª·¢ºÍÔËά´øÀ´Á˹ÌÓеĸ´ÔÓÐÔºÍÄѶȡ£

¶ÔÓÚ¿ª·¢Õß¶øÑÔ£¬ÓÉÓÚ΢·þÎñÓ¦ÓÃÕûÌå×÷Ϊһ¸ö·Ö²¼Ê½ÏµÍ³Ìṩ·þÎñ£¬ÐèҪѡÔñºÏÊÊ·þÎñͨѶЭÒ飬²¢´¦ÀíDZÔÚµÄÍøÂç·Ö»¯Ë²Ê±¹ÊÕϵÈÇé¿ö£¬³ý´ËÖ®Í⣬»¹ÐèÒª½¨Éè·þÎñ·¢ÏÖ¡¢ÅäÖÃÖÐÐĵȻù´¡ÉèÊ©£»

¶ÔÓÚÔËάÈËÔ±£¬ÐèÒªÀûÓÃÈÝÆ÷µÄ¿ÉÒÆÖ²ÐÔ£¬³ÖÐøµØ¼¯³ÉºÍ²¿Êð΢·þÎñµ½²»Í¬µÄ¼¯Èº»·¾³£¬ÕâЩ¶¼ÒªÇóÔËάÈËÔ±¾ßÓзdz£È«ÃæµÄÄÜÁ¦£¬±ÈÈ磺ÊìϤÈÝÆ÷¼°k8s¡¢ÄܱàдLinux ShellÔËά½Å±¾¡¢ÊìÁ·Ò»ÖÖ³ÖÐø¼¯³É²¿Ê𹤾ߣ¨±ÈÈ磺gitlab¡¢jenkins£©µÈ¡£

×ÛÉÏËùÊö£¬ÈçºÎ´î½¨Ò»Ìõ³ÉÊìÎȶ¨¡¢ÇÒ·ûºÏ΢·þÎñÌØÉ«µÄ¸ß¶È×Ô¶¯»¯DevOps¹ÜµÀÓÖ³ÉΪÁËÁíÒ»¸öÄÑÌâ¡£

Ä¿±ê

ÒÔ×îСµÄѧϰ³É±¾£¬´î½¨Ò»Ìõ³ÉÊìÎȶ¨¡¢ÇÒ·ûºÏ΢·þÎñÌØÉ«µÄ¸ß¶È×Ô¶¯»¯DevOps¹ÜµÀ£¬°´ÐèµØ³ÖÐø¼¯³É/²¿Êð΢·þÎñµ½kubernetes¡£

¹¤¾ß - ×îСµÄѧϰ³É±¾

kubernetes + gitlab + shell

·½°¸ - Ô¸¾°

1. ³ÖÐø¼¯³É - CI

ÔÚkubernetesµÄmaster½Úµã²¿Êðgitlab-runner£¬³äµ±gitlab·þÎñÆ÷µÄ¿Í»§¶Ë£»µ±Ìá½»»òºÏ²¢´úÂëµ½Ö¸¶¨µÄ·Ö֧ʱ£¬gitlab-runner×Ô¶¯´ÓgitlabÀ­È¡´úÂ룬ÀûÓÃmasterÖ÷»úÌṩµÄ±ßÔµ¼ÆËãÄÜÁ¦À´Ö´ÐÐÒѱàÅźõÄDevOps CI¹ÜµÀ=¡·±àÒë´úÂë¡¢ÔËÐе¥ÔªºÍ¼¯³É²âÊÔ¡¢ÈÝÆ÷»¯Î¢·þÎñ³É¾µÏñ£¬×îºóÉÏ´«µ½ÆóÒµ¾µÏñ²Ö¿â£¬Õâ¾ÍÊdzÖÐø¼¯³ÉÁ÷³Ì£¬¸Ã½×¶Î½»¸¶µÄ²úÎïΪ¾µÏñ¡£

2. ³ÖÐø²¿Êð - CD

ÔÚkubernetesµÄmaster½Úµã²¿Êðgitlab-runner£¬³äµ±gitlab·þÎñÆ÷µÄ¿Í»§¶Ë£¬µ±³ÖÐø¼¯³É½×¶Î½»¸¶ÁËа汾µÄ¾µÏñºó£¬´ÓÆóÒµ¾µÏñ²Ö¿âÀ­È¡×îа汾µÄ¾µÏñ£¬ÀûÓÃmasterÖ÷»úÌṩµÄ±ßÔµ¼ÆËãÄÜÁ¦Ö´ÐÐÒѱàÅźõÄDevOps CD¹ÜµÀ=¡·Í¬²½·þÎñÅäÖÃÐÅÏ¢µ½ÅäÖÃÖÐÐÄ£¨k8sµÄConfigMap£©£¬²¢¹ö¶¯¸üÐÂkubernetes¼¯Èº¾µÏñ°æ±¾¡£

²¿Êð»·¾³

°²×°Ä¿Â¼£º/root/gitrunner

¹¤×÷Ŀ¼£º/home/devops/gitrunner

mkdir -p /root/gitrunner && mkdir -p /home/devops/gitrunner;

1. ²¿Êðgitlab-runner

ÔÚkubernetesµÄmaster½Úµã²¿Êðgitlab-runner£¬ÃüÁîÈçÏ£º

> wget -O /root/gitrunner/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64;
> cd /root/gitrunner;
> chmod +x gitlab-runner;
> # ×¢Ò⣺½¨ÒéʹÓÃrootÓû§½øÐа²×°£¬ÒÔ±ÜÃâ²»±ØÒªµÄȨÏÞÎÊÌâ¡£
> ./gitlab-runner install --user=root --working-directory=/home/devops/gitrunner;
> ./gitlab-runner start;

2. ×¢²ágitlab-runner

gitlabÖ§³Ö×¢²áÁ½ÖÖÀàÐ͵Ärunner£º

1.Specific Runners

ÕâÊÇÁ¥ÊôÓÚÌØ¶¨ÏîÄ¿µÄרÓй¤ÈË£¬²»½ÓÊÜÆäËûÏîÄ¿µ÷Dz¡£

2. Shared Runners

ÕâÊÇÁ¥ÊôÓÚgitlab-serverµÄ¹¤ÈË£¬¿ÉÒÔ¹²Ïí¸øËùÓеÄÏîÄ¿µ÷Dz¡£

ÕâÁ½ÖÖRunner¸÷ÓÐǧÇÈç¹ûΪÿһ¸öÏîÄ¿¶¼×¢²áרÓÃRunner£¬»áÏԵñȽϷ±ËöºÍ¶àÓ࣬¶øÊ¹Óù²ÏíRunner¾ÍºÜʡʣ¬µ«ÊÇÒ»¸ö¹¤ÈËÒ»´ÎÖ»ÄÜ×öÒ»¼þÊÂÇ飬µ±Í¬Ê±µ÷Dzһ¸ö¹¤ÈËʱ£¬ÄÇô¾Í»á³öÏÖ¾ºÕùµÈ´ý£¬¹Ê´ó¼Ò»¹ÊÇʵ¼ÊÇé¿öÀ´×¢²á¹¤È˰ɣ¬Ö»Òª²»ÑÓÎó¹¤ÆÚ¾ÍÐУ¬ºÙºÙ¡£

×¢²árunner

ÔÚ¿ª·¢¡¢Ô¤Éú²ú¡¢Éú²ú»·¾³×¢²áRunner£¬²¢ÌùÉϱêÇ©£ºbuild¡¢staging¡¢prod¡£

±¸×¢£ººóÃæ´î½¨ DevOps ¹ÜµÀʱ£¬½«¸ù¾Ý±êÇ©À´µ÷Dz¹¤ÈË¡£

²½Öè

1. »ñÈ¡ÏîÄ¿µØÖ·ºÍ×¢²átoken£¬ÒÀ´Î²éÕÒ·¾¶£ºSettings => CI / CD => Runners settings£¬ÈçÏ£º

2.×¢²á£º

> cd /root/gitrunner;
> ./gitlab-runner register
> # »Ø³µ£¬¸ù¾ÝÌáʾÌîдÏîÄ¿µØÖ·¡¢×¢²áToken¡¢±êÇ©¡¢Ö´ÐÐÆ÷
> # ¼ÙÈ磬ÏîÄ¿µØÖ·Îª£ºhttp://gitlab.justmine.cn:8002/£¬ ÏîĿע²átokenΪ£º6iS4GBCh18NR4GPoMyef¡£
> ## ÒÔ¿ª·¢»·¾³ÎªÀý£¨½ö¹©²Î¿¼£©
> Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://gitlab.justmine.cn:8002/
> Please enter the gitlab-ci token for this runner:
6iS4GBCh18NR4GPoMyef
> Please enter the gitlab-ci description for this runner:
[justmine.com]: development environment
> Please enter the gitlab-ci tags for this runner (comma separated):
build
> Registering runner... succeeded runner=4iS4GwCh
> Please enter the executor: ssh, docker+machine, kubernetes, virtualbox, docker-ssh+machine, docker, docker-ssh, parallels, shell:
shell
> Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
> # ÆäËû»·¾³Í¬Àí

 

´î½¨DevOps¹ÜµÀ - PipeLines

ÉÏÃæµÄ·½°¸½ö½öÃèÊöÁËÔ¸¾°£¬Ò²¾ÍÊÇÆÚÍû´ï³ÉÄ¿±êµÄ×îºó½á¹û£¬µ«¶ÔÓÚÈçºÎÂäµØÒ»ÌõÕæÕýµÄ¹ÜµÀ¶øÑÔ£¬»¹ÊÇÏԵ÷dz£µÄ¿Õ¶´¡£ÆäʵÕâÕýÊÇDevOpsµÄÄѵ㣬´óÌåÁ÷³ÌÉ϶¼ÏþµÃÓиö³ÖÐø¼¯³É¡¢³ÖÐø²¿Ê𣬽²ÆðÀ´ÈçÊý¼ÒÕ䣬ÂäµØÊ±¶¼Ö®ºõÕßÒ²¡£

ͬÑù£¬±ü³Ð΢·þÎñµÄ˼Ï룬·Ö¶øÖÎÖ®£¬ÎÒÃǽ«¹ÜµÀ·ÖΪÁ½¸ö²¿·Ö£º´´½¨¡¢¸üУ¬¼´ÏÈ´´½¨Ò»¸öÖ÷°å´Î£¬È»ºóÔÙ»ùÓÚ´ËÖ÷°å´Î½øÐÐС°æ±¾µü´ú£¬²»¶ÏµØÀ©Õ¹Ð¹¦ÄÜ¡£Í¨¹ýÕâÑùÓÐЧµÄ²ð·Ö£¬ÊDz»ÊǾͲ»ÄÇôµÄ¿Õ¶´ÁË£¬¾ÍÏñÁìÓòÇý¶¯Éè¼ÆµÄCQRSģʽһÑù£¬Çø±ðµØ¶Ô´ý¶Áд£¬´Ó¶ø´ó´óµØ¼õÉÙÁË×迹£¬Ò²·Ç³£µØÇкϲúÆ·µÄ´´Ðµü´ú£¬±ÈÈ罫ÐèÇó²ð·ÖΪ3ÆÚ£¬Ã¿Ò»ÆÚ¶¼¶ÔÓ¦Ò»¸öÖ÷°æ´Î£¬È»ºóÔÙС°æ±¾µü´úÿһÆÚµÄÐèÇó£¬Íê³ÉÒ»ÆÚ£¬·â°åÒ»ÆÚ£¬±Ë´Ë¸ôÀ룬»¥²¹Ó°Ï죬ͬʱҲ·½±ã×·ËÝ¡£

ÀíÇåÁËÕû¸ö¹ÜµÀµÄÂöÂ磬ÏÖÔÚ¾ÍÐèҪ˼¿¼Ò»Ð©Êµ¼ÊÎÊÌâÁË£¬±ÈÈ磺

ÈçºÎ½«³ÖÐø¼¯³É/²¿Êð΢·þÎñÁ÷³Ì½Å±¾»¯£¬¼´ÈçºÎʵÏÖ»ù´¡ÉèÊ©´úÂ뻯£¿

ÈçºÎ¶¯Ì¬½âÎögitµ±Ç°±ä»¯ÈÕÖ¾£¬ÊµÏÖ׼ȷµØ°´Ðè·¢²¼Î¢·þÎñ£¿

ÈçºÎ±£ÁôÏÖ³¡£¬²¢ÒÔ×îСµÄ³É±¾ÖØÊԹܵÀ£¿

ÔÚ²»Ð޸ĹܵÀ½Å±¾µÄÇé¿öÏ£¬ÈçºÎÊÖ¹¤¿ØÖư´Ðè·¢²¼¡¢×Ô¶¯ÉìËõºÍ»Ø¹ö΢·þÎñ£¿

ÈçºÎ¼æÈÝÐÂÔöµÄ΢·þÎñ£¿

ÈçºÎ¿ìËÙµ÷ÊÔÕû¸ö¹ÜµÀ½Å±¾£¿

Ö»ÓаÑÉÏÃæµÄÎÊÌâ¶¼´¦ÀíÁË£¬²ÅËãÊÇÒ»Ìõ³ÉÊì¿ÉÓõġ¢ÆóÒµ¼¶±ðµÄCI/CD¹ÜµÀ£¬²Å·ûºÏ¸ß¶È×Ô¶¯»¯¡¢Îȶ¨¡¢¿ìËÙ¡¢ÈÝ´íµÈÌØµã£»ÔÚ»¥ÁªÍø¹«Ë¾£¬¿ÉÄÜÒ»ÌìÒªÌá½»ºÃ¼¸¸ö°æ±¾µ½²»Í¬µÄ»·¾³£¬²»ÄÜÒòΪ¿¼ÂDz»ÖܶøÓ°ÏìÁ¬Ðø²¿ÊðµÄ½ø¶È£¬¹ÜµÀÒ»µ©Í¶ÈëʹÓþÍÐèÒª¶ÔÐ޸ıպϣ¬Ö»¶ÔÀ©Õ¹¿ª·Å¡£

Ö»ÓаÑÉÏÃæµÄÎÊÌâ¶¼´¦ÀíÁË£¬²ÅËãÊÇÒ»Ìõ³ÉÊì¿ÉÓõġ¢ÆóÒµ¼¶±ðµÄCI/CD¹ÜµÀ£¬²Å·ûºÏ¸ß¶È×Ô¶¯»¯¡¢Îȶ¨¡¢¿ìËÙ¡¢ÈÝ´íµÈÌØµã£»ÔÚ»¥ÁªÍø¹«Ë¾£¬¿ÉÄÜÒ»ÌìÒªÌá½»ºÃ¼¸¸ö°æ±¾µ½²»Í¬µÄ»·¾³£¬²»ÄÜÒòΪ¿¼ÂDz»ÖܶøÓ°ÏìÁ¬Ðø²¿ÊðµÄ½ø¶È£¬¹ÜµÀÒ»µ©Í¶ÈëʹÓþÍÐèÒª¶ÔÐ޸ıպϣ¬Ö»¶ÔÀ©Õ¹¿ª·Å¡£

¹ÜµÀÒ»ÀÀͼ£º

ΪÁËÑéÖ¤¹ÜµÀµÄÌØÐÔ£¬ÎÒÌØÒâ×öÁËÒÔϲâÊÔ£º

1. ´´½¨»·¾³ - ·¢²¼Ö÷°å±¾

ÕâÊÇÒ»¸ö´Ó0µ½1¡¢´ÓÎÞµ½ÓеĹý³Ì£¬ÕâÀïһС²½£¬È´ÊÇÂ䵨DevOps¹ÜµÀµÄÒ»´ó²½¡£

°æ±¾µü´úµÄµÚÒ»²½¾ÍÊÇ´´½¨Î¢·þÎñ¼¯Èº»·¾³£¬ÄÇôÈçºÎ¿ì½ÝµØ´´½¨Õâ¸ö»·¾³ÄØ£¿ÎÒ½«Ê¹ÓÃkubernetesµÄ°ü¹ÜÀíÆ÷helmÀ´Íê³ÉÕâ¸öÈÎÎñ£¬¿ÉÄܺܶàͬѧ¶¼Ã»ÓùýÕâ¸ö¹¤¾ß£¬Æ½Ê±²¿Êð×é¼þ¶¼ÊÇÊÖ¹¤±àдºÃyaml×ÊÔ´²¿ÊðÎļþ£¬ËäÈ»ÕâÖÖ·½Ê½·½±ã¿ì½Ý£¬µ«ÊǶÔÓÚ´óÁ¿×é¼þ£¬ÒÔ¼°ÐèҪʵÏÖ»ù´¡ÉèÊ©´úÂ뻯µÄ³¡¾°£¬ÊÖ¹¤´¦ÀíÕâÖÖ·½Ê½¾Í²»ÄÜÂú×ãÐèÇóÁË¡£

Ä£°åÎļþÇë²Î¿¼Ê¾ÀýÏîÄ¿£¬ÏÂÃæÊÇ´´½¨»·¾³µÄ½Å±¾»¯ÃüÁ

helm install /root/AutoDevOpsPipeLinesCharts \
--name=${releaseName} \
--set environment.upper=${Environment} \
--set environment.lower=${environment} \
--set namespace=${namespace} \
--set image.registryhost=${RegistryHost} \
--set image.username=${registryUserName} \
--set image.version=${version} \
--set replicas=${replicas}

´ÓÉÏÃæ¿ÉÒÔ¿´³ö£¬ÊµÏÖ²¿Êð·þÎñ½Å±¾»¯µÄÄ¿µÄÒѾ­´ïµ½ÁË¡£

ÏÂÃæÎÒÃÇÔÚÀ´¿´¿´ÈçºÎ½Å±¾»¯Õû¸ö´´½¨»·¾³¹ÜµÀÏߣº

# 001 Continuous integration image to registry.
bash ./devops/PipeLines/Creation/001_CI.sh .
# 002 Create config information to k8s's configmap.
bash ./devops/PipeLines/Creation/002_CreateConfig.sh

.
# 003 Release major to k8s's cluster.
bash ./devops/PipeLines/Creation/003_ReleaseMajor.sh

.
# 004 Create gateway route.
bash ./devops/PipeLines/Creation/Gateways/Kong/
004_CreateGatewayRoute.sh

±¸×¢£º¹ÜµÀÏ߽ű¾Çë²Î¿¼Ê¾ÀýÏîÄ¿(AspnetCore)£ºMicroService.AutoDevOpsPipeLines/devops/PipeLines/Creation¡£

1.1¡¢²âÊÔ

½«¸Õ¸Õ´´½¨µÄhelmÄ£°åÎļþÉÏ´«µ½gitlab-runnerËùÔÚ·þÎñÆ÷µÄ/rootĿ¼Ï£¬²¢Ìí¼ÓÅäÖã¬ÈçÏ£º

<Project>
<PropertyGroup>
<Major>1</Major>
<Minor>0</Minor>
<Patch>0</Patch>
</PropertyGroup>
</Project>

È»ºóºÏ²¢´úÂëµ½·ÖÖ§release/staging£¬ÈçÏ£º

´ÓÉÏÃæ¿ÉÒÔ£¬µÚÒ»¸öÖ÷°å´Î(1.0.0)ÒѾ­³É¹¦·¢²¼µ½Ô¤Éú²ú»·¾³¡£

·¾³Í¬Àí£¬ÔÚÔ¤Éú²ú»·¾³ÅÜÍê¸÷ÖÖ²âÊԺ󣬺ϲ¢´úÂëµ½·ÖÖ§release/production¼´¿É¡£

2. ¹ö¶¯¸üР- µü´úС°æ±¾

Õâ¸ö½×¶Î½«Ä£ÄâÔÚµÚÒ»¸öÖ÷°å´Î(1.0.0)ÉϽøÐÐС°æ±¾µü´úÐèÇ󣬾àÀëÉϴη¢²¼ÒѾ­Ò»ÖÜÁË£¬¿ª·¢²¿ÃÅÒ²Íê³ÉÁ˵ÚÒ»¸öС°æ±¾µÄ¿ª·¢¹¤×÷£¬ÏÖÔÚÐèÒª·¢²¼°æ±¾1.0.1µ½Ô¤Éú²ú»·¾³½øÐвâÊÔ£¬Ê×ÏÈÐÞ¸ÄÎļþversion.props£¬ÈçÏ£º

<Project>
<PropertyGroup>
<Major>1</Major>
<Minor>0</Minor>
<Patch>1</Patch>
</PropertyGroup>
</Project>

³ýÁË·¢²¼±¾´ÎÐèÇóÐ޸ĵÄÁ½¸ö΢·þÎñ£ºIdentity.API¡¢Marketing.APIÒÔÍ⣬»¹ÐèÇ¿ÖÆ·¢²¼Î¢·þÎñBasket.API£¬Ìí¼ÓÅäÖã¬ÔÚgitlab²Ö¿âÒÀ´Î²éÕÒ (Settings => CI/CD => Secret variables)£¬ÈçÏ£º

×îºóºÏ²¢´úÂëµ½·ÖÖ§staging¡£

ÏÈÀ´¿´¿´ÊÇ·ñÕýÈ·½âÎögit±ä¸üÈÕÖ¾ºÍÈ«¾Ö±äÁ¿£¬×¼È·µØÊµÏÖ×Ô¶¯»¯ºÍÊÖ¹¤¿ØÖÆ£º

ÔÙÀ´¿´¿´Õû¸ö¹ÜµÀµÄÖ´ÐÐÇé¿ö£º

×îºó¿´Ò»ÏÂÔ¤Éú²ú»·¾³µÄЧ¹û

3. ×Ô¶¯ÉìËõ

3.1¡¢ÉìËõµ¥¸ö΢·þÎñ

¾­¹ýÒ»¶Îʱ¼äµÄ¹Û²ì·¢ÏÖÔ¤Éú²ú»·¾³µÄ¹ºÎï³µ(Basket.API)΢·þÎñÍÌÍÂÁ¿ÆÄ¸ß£¬¹Ê¾ö¶¨À©ÈÝËüµÄʵÀýÊýÁ¿µ½2¸ö£¬Ê×ÏÈÐÞ¸ÄÏîÄ¿ÊôÐÔÎļþdeploy.props£¬ÈçÏ£º

<Replicas>2</Replicas>

È»ºóÌí¼ÓÅäÖã¬ÈçÏ£º

×îºóºÏ²¢´úÂëµ½·ÖÖ§scaling/staging£¬ÈçÏ£º

3.2¡¢ÉìËõËùÓÐ΢·þÎñ

ͬÀí£¬Ê×ÏÈÐÞ¸ÄÏîÄ¿ÊôÐÔÎļþdeploy.props£¬ÈçÏ£º

<Replicas>2</Replicas>

È»ºóÌí¼ÓÅäÖã¬ÈçÏ£º

´ÓÉÏÃæ²âÊÔ¿´µ½£¬Ö»ÐèÒªÐÞ¸ÄÅäÖ㬾ͿÉÒÔÖ§³Ö²»Í¬Á£¶ÈµØÉìËõ΢·þÎñ£¬Ò²²»ÓÃÐÞ¸ÄCI/CD¹ÜµÀ½Å±¾¡£

4. »Ø¹ö

4.1¡¢»Ø¹öµ¥¸ö΢·þÎñ

¾­¹ýÒ»¶Îʱ¼äµÄ¹Û²ì£¬·¢ÏÖ¸Õ¸Õ·¢²¼µ½Ô¤Éú²ú»·¾³µÄ°æ±¾1.0.1ÓÐÎÊÌ⣬¹Ê¾ö¶¨»Ø¹öµ½ÉÏÒ»¸ö°æ´Î1.0.0£¬Ê×ÏÈÐÞ¸ÄÏîÄ¿ÊôÐÔÎļþdeploy.props£¬ÈçÏ£º

<!--»Ø¹ö²½³¤-->
<RollBackStep>1</RollBackStep>

È»ºóÌí¼ÓÅäÖã¨Ö»»Ø¹ö¹ºÎﳵ΢·þÎñ£©£¬ÈçÏ£º

×îºóºÏ²¢´úÂëµ½·ÖÖ§rollback/staging£¬ÈçÏ£º

4.2¡¢»Ø¹öËùÓÐ΢·þÎñ

ͬÀí£¬Ê×ÏÈÐÞ¸ÄÏîÄ¿ÊôÐÔÎļþdeploy.props£¬ÈçÏ£º

<!--»Ø¹ö²½³¤-->
<RollBackStep>1</RollBackStep>

È»ºóÌí¼ÓÅäÖûعöËùÓÐ΢·þÎñ£¬ÈçÏ£º

×îºóºÏ²¢´úÂëµ½·ÖÖ§rollback/staging£¬»òÕßÖ±½ÓÖØÊԹܵÀµÄroll-back½×¶Î£¬ÈçÏ£º

5. ¿ÉÀ©Õ¹ÐÔ - ¼æÈÝÐÂÔö΢·þÎñ

5.1¡¢Ìí¼ÓеÄËÑË÷΢·þÎñ

¾­¹ýÒ»¶Îʱ¼äµÄµü´ú£¬Ò»ÆÚÒѾ­Í깤£¬¶þÆÚÐÂÔöÁËËÑË÷΢·þÎñ£¬ÕâʱÐÞ¸ÄhelmÄ£°åÎļþÖ§³Ö²¿ÊðËÑË÷΢·þÎñ£¬È»ºóºÏ²¢´úÂëµ½release/staging£¬²âÊÔÈçÏ£º

k8s

Íø¹ØÂ·ÓÉ

´ÓÉÏÃæ¿ÉÒÔ¿´µ½£¬ÐÂÔöµÄËÑË÷΢·þÎñÒѾ­³É¹¦·¢²¼µ½µÚ¶þ¸öÖ÷°æ´ÎÁË¡£³ýÁËÐÞ¸ÄhelmÄ£°åÎļþÒÔÍ⣬Õû¸ö¹ý³Ì²¢Ã»ÓÐÐÞ¸ÄCI/CD¹ÜµÀ½Å±¾£¬Ô²ÂúÍê³ÉÁ˼æÈÝÐÂÔö΢·þÎñµÄÌØÐÔ¡£

±¸×¢£ºÎÒÃÇ¿ÉÒÔ½«helmÄ£°å¿´³É·þÎñ±àÅÅÎļþ¡£

ÔËά˵Ã÷

1¡¢·ÖÖ§

1¡¢build

¹¹½¨ºÍ±àÒë´úÂë¡£

2¡¢release/staging

´´½¨Ô¤Éú²ú»·¾³¡£

3¡¢staging

¹ö¶¯¸üÐÂÔ¤Éú²ú»·¾³¡£

4¡¢release/production

´´½¨Éú²ú»·¾³¡£

5¡¢master

¹ö¶¯¸üÐÂÉú²ú»·¾³¡£

6¡¢scaling/staging

ÉìËõÔ¤Éú²ú»·¾³

7¡¢scaling/production

ÉìËõÉú²ú»·¾³

8¡¢rollback/staging

»Ø¹öÔ¤Éú²ú»·¾³

9¡¢rollback/production

»Ø¹öÉú²ú»·¾³

2¡¢ÅäÖÃÎļþ

Ó¦ÓóÌÐòÅäÖà - app.props

<!-- k8sÃüÃû¿Õ¼äǰ׺£¬±ÈÈ磺microservice
-autodevopspipeline-v1 -->
<NameSpace>microservice-autodevopspipeline</NameSpace>
<!-- Ó¦ÓóÌÐòÃû³Æ£¬Ö÷ÒªÓÃÓÚTips -->
<AppName>MicroService.AutoDevOpsPipeLine</AppName>
<!-- ½â¾ö·½°¸Ãû³Æ£¬ÓÃÓÚÉú³ÉÏîÄ¿ -->
<SolutionName>MicroService.AutoDevOpsPipeLines.sln
</SolutionName>

°æ±¾ÅäÖà - version.props

<!-- Ö÷°å´Î£¬²»¼æÈÝÉý¼¶ -->
<Major>1</Major>
<!-- ´Î°å´Î£¬¼æÈÝÉý¼¶ -->
<Minor>0</Minor>
<!-- ²¹¶¡°æ´Î£¬¾²Ä¬ÐÞ¸´½Ó¿Ú -->
<Patch>1</Patch>

²¿ÊðÅäÖà - deploy.props

<!-- Auto-scaling ʵÀýÊýÁ¿ -->
<Replicas>1</Replicas>
<!-- Rollback ²½³¤ -->
<RollBackStep>1</RollBackStep>
<!-- ¾µÏñ²Ö¿âÓû§Ãû -->
<ImageUserName>devopspipelines</ImageUserName>

ÌØ¶¨»·¾³ÅäÖã¬È磺deploy.staging.props

<!-- ¾µÏñ²Ö¿âÖ÷»úÓòÃû -->
<RegistryHost>registry.staging.com:8100</RegistryHost>
<!-- k8s restfulµØÖ· -->
<K8sApiServer>https://192.168.2.110:6443</K8sApiServer>
<!-- k8s ½Ó¿Ú·ÃÎÊÁîÅÆ -->
<AccessToken>utyeyerye.ytryeryeryyyyyyr.jhddghdhdhdhd<
/AccessToken>
<!-- kong restfulµØÖ· -->
<KongApiServer>http://192.168.2.110:81</KongApiServer>
<!-- kong ÓòÃû°ó¶¨ -->
<KongRouteDomain>staging.devops.com</KongRouteDomain>

·ÖÖ§»·¾³ÅäÖà - branch.env.props

<!-- ½âñĿǰÓÃÓÚ¹ö¶¯¸üР-->
<!-- key: branch name(last keyword), value: environment -->
<staging>Staging</staging>
<master>Production</master>

×ܽá

ÉÏÃæµÄ²âÊÔ¼¸ºõº­¸ÇÁ˽áºÏk8s¹ÜÀíÓ¦ÓÃÉúÃüÖÜÆÚµÄËùÓÐÁ÷³Ì(²¿Êð¡¢ÉìËõ¡¢»Ø¹ö¡¢·¢²¼)£¬´ó¼Ò¿ÉÒÔ·ÅÐĵØÔËÓûòÕßÀ©Õ¹Õâ¸ö¹ÜµÀµ½×Ô¼ºµÄ΢·þÎñÏîÄ¿ÖУ¬±ÈÈ磺Ŀǰ½öÖ§³Ö×Ô¶¯´´½¨Â·Óɵ½kongÍø¹Ø£¬½¨Òé´ó¼ÒforkÏîÄ¿ºó£¬×ÔÐÐÀ©Õ¹£¬²âÊÔÍê³Éºó£¬Ò²¿ÉÒÔÌáÈ¡PR¡£Èç¹ûÄã²ÉÓÃʾÀýÒ»ÑùµÄÏîÄ¿½á¹¹£¬Ö»ÐèÒªÐÞ¸ÄÅäÖÃÐÅÏ¢£¬È»ºó¿ªÏä¼´Óá£

   
1815 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

DevOpsתÐÍÈÚÈëµ½ÆóÒµÎÄ»¯
DevOps ÄÜÁ¦Ä£ÐÍ¡¢Ñݽø¼°°¸ÀýÆÊÎö
»ùÓÚ DevOps ÀíÄîµÄ˽ÓÐ PaaS ƽ̨ʵ¼ù
΢Èí¿ª·¢ÍŶӵÄDevOpsʵ¼ùÆôʾ
Ïà¹ØÎĵµ

DevOpsÇý¶¯Ó¦ÓÃÔËά±ä¸ïÓë´´ÐÂ
ÔËά¹ÜÀí¹æ»®
ÈçºÎʵÏÖÆóÒµÓ¦Óò¿Êð×Ô¶¯»¯
ÔËά×Ô¶¯»¯Êµ¼ù֮·
Ïà¹Ø¿Î³Ì

×Ô¶¯»¯ÔËά¹¤¾ß£¨»ùÓÚDevOps£©
»¥ÁªÍøÔËάÓëDevOps
MySQLÐÔÄÜÓÅ»¯¼°ÔËάÅàѵ
ITϵͳÔËά¹ÜÀí
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]
 
×îÐÂÎÄÕÂ
DevOps µÀ·¨ÊõÆ÷£¬Á¢Ì廯ʵʩ¿ò¼Ü
DevOps ÖиßЧ²âÊÔ»ù´¡¼Ü¹¹µÄ×î¼Ñʵ¼ù
DevOps ÔÚ¹«Ë¾ÏîÄ¿ÖеÄʵ¼ùÂ䵨
ÈçºÎ»ùÓÚ Kubernetes ¹¹½¨ÍêÕûµÄ DevOps Á÷Ë®Ïß
°¢ÀïÔÆKubernetesʵս
×îпγÌ
DevOpsÌåϵʵ¼ù¡¢¹¤¾ßÓëÆ½Ì¨
»ùÓÚKubernetesµÄDevOpsʵ¼ù
»¥ÁªÍøÔËάÓëDevOps
»ùÓÚKubernetes¹¹½¨ÆóÒµÈÝÆ÷ÔÆ
ÆóÒµ¼¶DevOps¹¤×÷ÌåϵÓëÆ½Ì¨
³É¹¦°¸Àý
±±¾© DevOpsÌåϵʵ¼ù¡¢¹¤¾ßÓëÆ½Ì¨
ÉñÁúÆû³µ DevOpsÌåϵʵ¼ù¡¢¹¤¾ßÓëÆ½Ì¨
ÖйúÒÆ¶¯Í¨ÐÅ ÍøÂç¹æ»®Óë¹ÜÀí
ijº½¿Õ¹«Ë¾ IT¹æ»®ÓëÆóÒµ¼Ü¹¹
ij½ðÈÚ¹«Ë¾ IT·þÎñ¹ÜÀí£¨ITIL V3£©