¡¡¡¡Ô±êÌ⣺»ùÓÚ K8s ×öÓ¦Ó÷¢²¼µÄ¹¤¾ßÄÇô¶à, °¢ÀïΪɶѡÔñ»Ò¹ÃÄï°ãµÄ Tekton £¿
¡¡¡¡£º½üÄêÀ´£¬Ô½À´Ô½¶àרßø Kubernetes ×öÓ¦Ó÷¢²¼µÄ¹¤¾ß¿ªÊ¼çͷ׳ÊÏÖ£¬°ïÖú´ó¼Ò¹ÜÀíºÍ·¢²¼²»¶ÏÔö¶àµÄ Kubernetes Ó¦Óá£ÔÚ×ö¼¼ÊõÑ¡Ð͵Äʱºò£¬ÎÒÃÇÐèÒª¸øÒµÎñÑ¡ÔñÒ»¸ö×îºÃµÄ¹¤¾ß¡¢×îÎȵĵ××ù¡£ÄÇôÓÖ¸ÃÈçºÎ±È½ÏºÍºâÁ¿ÕâЩ¹¤¾ßÄØ£¿±¾ÆªÎÄÕÂÖа¢ÀïÔÆ¼¼Êõר¼ÒµËºé³¬½«»áºÍ´ó¼Ò·ÖÏí×Ô¼º¶ÀÌØµÄÌåÑ飬°ïÖú¶ÁÕß³õ²½Á˽â Tekton ÏîÄ¿¡£
¡¡¡¡½üÄêÀ´£¬°éËæ×ÅÔÆÔÉúÉçÇø (CNCF Community) µÄѸÃÍ·¢Õ¹£¬Ô½À´Ô½¶àµÄÓ¦ÓÃÅÜÔÚÁË K8s ÉÏ¡£ÂýÂýµØ£¬´ó¼ÒµÄ¹Ø×¢µãÒ²Öð½¥´Ó×ÊÔ´²ã×ªÒÆµ½Ó¦Óò㡣һ·½Ã棬ÎÒÃÇ¿´µ½ÔÚÓÐÔ½À´Ô½¶àÐ嵀 K8s Operators ³öÏÖ£¬ÓÃÀ´×Ô¶¯»¯Ó¦ÓõIJ¿ÊðºÍÔËά¡£ÁíÒ»·½Ãæ£¬Ëæ×Ÿ÷·´óÐÍÔÆ³§ÉÌÈ볡£¬K8s ·þÎñÒÔºó¾Í»áÏñ¼ÒÀïµÄË®ºÍµçÒ»ÑùËæÐÄËùÓû¿ÉÓã¬×Ô¼ºÔÙÈ¥¶¯ÊִÒѾûÓÐÁËÒâÒå¡£ÓÚÊÇÈËÃÇÌá³öÁË“K8s ½«»áÏûʧ”£¬ÕâÆäʵָµÄÊÇÒÔ k8s Ϊµ××ùÀ´ÃæÏòÈ«ÊÀ½çÈκÎÒ»¸öÔÆÒÔ¼°Êý¾ÝÖÐÐĽ»¸¶Ó¦Ó㬻áÊǽÓÏÂÀ´µÄ±ØÈ»Ç÷ÊÆ¡£¹ØÓÚÕâ¸öÇ÷ÊÆ£¬ÎÒÃÇÍŶӵÄͬѧרÃÅд¹ýһƪ¹ØÓÚ¡¶K8s ¶à¼¯Èº/¶àÔÆ¼¼ÊõÓë·¢Õ¹¡·µÄÎÄÕ£¬»¶Ó´ó¼Ò½øÒ»²½ÔĶÁ¡£
¡¡¡¡»ùÓÚ k8s ×öÓ¦Ó÷¢²¼µÄ¹¤¾ß£¬ÎÒÃÇÓÐ×ÅÐí¶àÑ¡Ôñ£¬ÆäÖв»·¦Òµ½çÖªÃûÏîÄ¿ Jenkins X¡¢Spinnaker£¬Ò²Óд´Òµ¹«Ë¾³öÀ´µÄС¹¤¾ß±ÈÈç Argo Rollout¡£²»¹ýÔÚÕâÆäÖУ¬ÎÒÃÇÍŶÓÏÖÔÚÖ÷ҪʹÓõÄÊÇ Tekton¡£ÕâÀïÒ²ÓиöÖØÒªµÄ±³¾°£¬ÄǾÍÊÇÎÒÃÇÍŶÓÒªÃæÏò¶àÔÆ/¶à¼¯Èº½»¸¶µÄ£¬ÊǸ´ÔÓÓÐ״̬µÄ°¢Àï°Í°ÍÖмä¼þÓ¦Óá£ÕâÒòËØÎÒÂíÉÏ»áÏêϸ½éÉܵ½¡£
¡¡¡¡¿ÉÄÜ»¹Óв¿·Öͬѧ»¹²»Á˽â Tekton ÏîÄ¿ÊÇʲô£¿ÕâÀïÎÒÏȼòµ¥½éÉÜÏ¡£Tekton ÊÇÒ»¿î k8s ÔÉúµÄÓ¦Ó÷¢²¼¿ò¼Ü£¬Ö÷ÒªÓÃÀ´¹¹½¨ CI/CD ϵͳ¡£ËüÔ±¾ÊÇ knative ÏîÄ¿ÀïÃæÒ»¸ö½Ð×ö build-pipeline µÄ×ÓÏîÄ¿£¬ÓÃÀ´×÷Ϊ knative-build µÄÏÂÒ»´úÒýÇæ¡£È»¶ø£¬Ëæ×Å k8s ÉçÇøÀï¸÷ÖÖ¸÷ÑùµÄÐèÇóÓ¿È룬Õâ¸ö×ÓÏîÄ¿ÂýÂý³É³¤ÎªÒ»¸öͨÓõĿò¼Ü£¬Äܹ»ÌṩÁé»îÇ¿´óµÄÄÜÁ¦È¥×ö»ùÓÚ k8s µÄ¹¹½¨·¢²¼¡£
¡¡¡¡¿ÉÄܲ»ÉÙͬѧ»á¸Ðµ½ÒÉ»ó£¬ÓÐÕâô¶à¹¦Äܷḻ¡¢ÉùÃûÔ¶ÑïµÄÏîÄ¿£¬ÎªÊ²Ã´ÎÒÃÇÑ¡ÔñÁ˻ҹÃÄï°ãµÄ Tekton£¿¿Í¹Ù±ð¼±£¬ÈÝÎÒÃÇÏÈÀ´ÊáÀíÒ»ÏÂÕâ¸öƽ̨µ××ùµÄÒªÇó£º
¡¡¡¡¾Ù¸öÀý×Ó£ºSpinnaker Õâ¸öÏîÄ¿ÊǺÜÇ¿´óµÄ£¬µ«ËüµÄÉè¼Æ³õÖÔ£¬ÊÇÃæÏò¹«ÓÐÔÆ½øÐÐÓ¦Óý»¸¶Óõģ¨ÒÔÐéÄâ»úΪÔËÐÐʱ£©£¬Kubernetes Ö»ÊÇËüËùÖ§³ÖµÄÒ»ÖÖ Provider£¬²¢ÇÒ Provider »¹µÃÓà Groovy д¼¯³É²å¼þ¡£Õâ¾ÍʹµÃËü¸ú K8s µÄÐ×÷ÊDZȽϱðŤµÄ¡£
¡¡¡¡¾Ù¸öÀý×Ó£ºArgo Rollout ±¾ÉíµÄÓ¦Ó÷¢²¼£¬ÊǸú K8s µÄ Workload £¨±ÈÈç Deployment £©ñîºÏÔÚÒ»ÆðµÄ¡£Õâ¾Í²»ÊÇÒ»¸öºÜ¾ß±¸À©Õ¹ÐÔµÄ×ö·¨¡£×î¼òµ¥µÄÀý×Ó£º¶ÔÓÚ¸´ÔÓÓÐ״̬ӦÓÃÀ´Ëµ£¬´ó¶à¶¼ÊÇÓà Operator »òÕß OpenKruise ¹ÜÀíµÄ£¬Õâʱºò Argo Rollout ¸ÃÔõô°ìÄØ£¿
¡¡¡¡¾Ù¸öÀý×Ó£ºSpinnaker ËäÈ»¹¦ÄÜÇ¿´ó£¬µ«ÊÇÕâÒ²¾ÍÒâζ×ÅËü°ÑËùÓеÄÊÂÇé¶¼°ïÄã×öÁË¡£¶øÎÒÃÇÍŶÓÒª·¢²¼µÄÓ¦ÓÃÊǸ´ÔÓÓÐ״̬µÄÖмä¼þÓ¦Ó㬠ÊÇÐèÒªÎÒÃÇд×Ô¼ºµÄ Rollout Controller À´¿ØÖÆ·¢²¼Á÷³ÌµÄ¡£Õâ¸öÒª»ùÓÚ Spinnaker À´×ö£¬»¹µÃ´óÁ¿×ö¶þ´Î¿ª·¢ÁË£¬ÓÚÊÇÔÓеÄÖڶ๦ÄܺÍ×é¼þ·´¶ø³ÉÁ˸ºµ£¡£
¡¡¡¡¾Ù¸öÀý×Ó£ºTekton ÆäʵֻÌṩ Pipeline Õâ¸öÒ»¸ö¹¦ÄÜ£¬Pipeline »á±»Ö±½ÓÓ³Éä³É K8s Pod µÈ API ×ÊÔ´¡£¶ø±ÈÈçÓ¦Ó÷¢²¼¹ý³ÌµÄ¿ØÖÆ£¬»Ò¶ÈºÍÉÏÏß²ßÂÔ£¬¶¼ÊÇÎÒÃÇ×Ô¼º±àд K8s Controller À´ÊµÏֵģ¬Õâ¸ö¿É¿Ø¶ÈÆäʵÊÇÎÒÃDZȽÏϲ»¶µÄ¡£ÁíÍ⣬ÕâÖÖÉè¼Æ£¬Ò²¾ÍÒâζ×Å Tekton ²»»áÔÚK8s ÉϸÇÒ»¸ö”´óñ×Ó“£¬±ÈÈçÎÒÃÇÏë¿´·¢²¼×´Ì¬¡¢ÈÕÖ¾£¬¾ÍµÈÊÇÖ±½Óͨ¹ý K8s ²é¿´Õâ¸ö Pipeline ¶ÔÓ¦µÄ Pod µÄ״̬ºÍÈÕÖ¾£¬²»ÐèÒªÔÙÃæ¶ÔÁíÍâÒ»¸ö API¡£
¡¡¡¡¿ÉÒÔ¿´µ½£¬Tekton ÔÚÁé»îʵÏÖ¶¨ÖÆ»¯¹¦ÄÜ¡¢K8s ÔÉúÐÔ¡¢ÒÔ¼°ÉçÇøÀïµÄÊÜ»¶Ó³Ì¶ÈµÈ·½Ãæ¿ÉÒÔ˵»¹ÊÇÓÅÊÆÃ÷ÏԵġ£ÕâÒ²ÊÇΪʲô£¬ÎÒÃÇÍŶÓÔÚ¸ºÔð°¢ÀïÖмä¼þ¸´ÔÓÓÐ״̬ӦÓõĽ»¸¶¹¤×÷ʱ£¬Ñ¡ÔñÁËÔÚ Tekton Ö®ÉϹ¹½¨Ó¦Óý»¸¶Ìåϵ¡£
¡¡¡¡Èç¹û Git ¸Ä¶¯ÀïÓÐÒ»¸öÓ¦Óà YAML ÇÒ¸ÃÓ¦Óò»´æÔÚ£¬ÄÇô½«äÖȾºÍÉú³É Tekton Pipelines ÓÃÀ´´´½¨Ó¦Óá£
¡¡¡¡Èç¹û Git ¸Ä¶¯ÀïÓÐÒ»¸öÓ¦Óà YAML ÇÒ¸ÃÓ¦ÓôæÔÚ£¬ÄÇô½«äÖȾºÍÉú³É Tekton Pipelines ÓÃÀ´Éý¼¶Ó¦Óá£ÕâÀïÎÒÃÇ»á¸ù¾ÝÓ¦Óö¨Òå YAML ÀïµÄ²ßÂÔÀ´×öÉý¼¶£¬±ÈÈç×ö½ð˿ȸ·¢²¼¡¢»Ò¶ÈÉý¼¶¡£
¡¡¡¡Èç¹û Git ¸Ä¶¯ÀïÓÐÒ»¸öÓ¦Óà YAML ÇÒ¸ÃÓ¦ÓôæÔÚÇÒ±ê¼ÇÁË“±»É¾³ý”£¬ÄÇô½«äÖȾºÍÉú³É Tekton Pipelines ÓÃÀ´É¾³ýÓ¦Óá£È·ÈÏÓ¦Óñ»É¾³ýºó£¬ÎÒÃÇ²Å´Ó Git Àïɾ³ýÕâ¸öÓ¦ÓÃµÄ YAML¡£
¡¡¡¡Óû§²Ù×÷µÄ±ß½ç¾ÍÊÇ Git£¬Ö®ºóËùÓÐÁ÷³Ì¶¼ÊÇ×Ô¶¯»¯µÄ¡£ÄÇôÕû¸ö¹ý³ÌÖÐÓû§ÔõôµÃµ½·´À¡ÐÅÏ¢ÄØ£¿ÕâÀïÖ÷ÒªÓУº
¡¡¡¡ÉÏÃæ¸ø´ó¼Ò½éÉÜÁË Tekton ÏîÄ¿µÄ»ù±¾ÔÀí¡¢ÒÔ¼°Ê¹Óà Tekton ×öµ××ù½øÐÐÓ¦Ó÷¢²¼µÄÖ÷ÒªÁ÷³Ì¡£ÔÚÕâÀï×ܽáһЩ¾ÑéÌå»á£º