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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
KubeVela£º±ê×¼»¯µÄÔÆÔ­Éúƽ̨¹¹½¨ÒýÇæ
  1875  次浏览      30
 2021-3-17
×÷ÕߣºË。²¨
 
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½éÉÜÁËKubeVela µÄ±³¾°¡¢KubeVela ÊÇʲô¡¢KubeVela ÄÜΪÄã×öʲô¼°KubeVela ¶ÔÓÚ¡°³éÏó¡±µÄÉè¼ÆÓëʵÏÖ¡£
±¾ÎÄÀ´×ÔÓÚ°¢ÀïÔÆÔÆÆÜºÅ£¬ÓÉ»ðÁú¹ûLinda±à¼­¡¢ÍƼö¡£

KubeVela µÄ±³¾°

KubeVela ÊÇÒ»¸ö»ùÓÚ Go ÓïÑÔ¿ª·¢µÄÔÆÔ­Éúƽ̨¼¶¿ªÔ´ÏîÄ¿£¬Õâ¸öÏîÄ¿ÊÇÈ¥Äê 11 ÔÂÖÐÑ®Õýʽ·¢²¼µÄ¡£ËäÈ»·¢²¼µ½ÏÖÔÚ²»×ãÁ½¸öÔÂʱ¼ä£¬µ«ÊÇ KubeVela ×÷Ϊ"°¢Àï°Í°ÍÍ³Ò»ÔÆÔ­ÉúÓ¦ÓÃÆ½Ì¨Äںˡ±±³ºóµÄºËÐÄÒÀÀµ£¬ÆäʵÒѾ­ÔÚ°¢Àï¶à¸ö²úÆ·±³ºóÔËÐÐÁ˱Ƚϳ¤µÄÒ»¶Îʱ¼ä£¬ÎÒ±¾ÈËĿǰҲÔÚ´óÁ¿²ÎÓëÕâЩ²úÆ·ºÍÏîÄ¿µÄÄں˽¨É蹤×÷¡£

ÕâÌ×ÄÚºËϵͳµ®Éú×Ô 2019 ÄêÄêµ×°¢ÀïÔÆÁªºÏ΢Èí¹²Í¬ÍÆ³öµÄ Open Application Model£¨¼ò³ÆOAM£©Ä£ÐÍ»ùÓÚ Kubernetes µÄʵÏÖ£¬ÔÚ²»¶ÏÑݽøºÍµü´úÖÐÈÚºÏÁË´óÁ¿À´×Ô¿ªÔ´ÉçÇø£¨ÓÈÆäÊÇ΢Èí¡¢×Ö½ÚÌø¶¯¡¢µÚËÄ·¶Ê½¡¢ÌÚѶºÍÂú°ï¼¯ÍŵÄÉçÇø²ÎÓëÕßÃÇ£©µÄ·´À¡Óë¹±Ï×£¬×îÖÕÔÚ 2020 Äê KubeCon ±±ÃÀ·å»áÉÏÒÔ ¡°KubeVela¡± µÄÃû×ÖÕýʽÓ뿪ԴÉçÇø¼ûÃæ¡£KubeVela ÏîÄ¿ÔÚ¹ÙÐûºóµÃµ½ÁËÕû¸öÔÆÔ­ÉúÉú̬µÄ³ÖÐø¹Ø×¢£¬ÔÚ·¢²¼ºóµÄµÚËÄÌì¾ÍµÇÉÏÁË Go ÓïÑԵĿªÔ´Ç÷ÊÆ°ñ°ñÊס£

ͼ 1 KubeVela µÄ GitHub Star ¿ìËÙÔö³¤

KubeVela ÊÇʲô£¿

Ò»ÑÔÒÔ±ÎÖ®£¬KubeVela ÊÇÒ»¸öÃæÏòƽ̨¹¹½¨Õߵġ¢¼òµ¥Ò×Óõ«Óָ߶ȿÉÀ©Õ¹µÄÔÆÔ­Éúƽ̨¹¹½¨ÒýÇæ¡£

¾ßÌåÀ´Ëµ£¬KubeVela µÄÄ¿±êÊÇÈÃÈÎºÎÆ½Ì¨ÍŶӶ¼Äܹ»ÒÔ Kubernetes Ô­ÉúµÄ·½Ê½£¬¿ìËÙ¡¢¸ßЧµÄ´òÔì³öÊʺϲ»Í¬ÒµÎñ³¡¾°µÄ¡¢Äܹ»Ö±ÃæÓû§µÄÔÆÔ­Éúƽ̨³öÀ´¡£±ÈÈ磺¹¹½¨Ó¦Óà PaaS¡¢Êý¾Ý¿â PaaS¡¢AI PaaS »òÕß³ÖÐø½»¸¶ÏµÍ³µÈµÈ¡£

ͼ 2 KubeVela ¡°¹Ø×¢µã·ÖÀ롱µÄ¹¤×÷Á÷

ÔÚÉè¼ÆÉÏ£¬KubeVela ¶Ôƽ̨ÍŶӱ©Â¶ÁËÁ½´óºËÐÄ API£¬°üÀ¨£º

ÄÜÁ¦Ä£°å£º¡°ÄÜÁ¦¡±ÔÚ KubeVela ÖУ¬Ö¸Äܹ»×é³ÉÒ»¸öÍêÕûÓ¦ÓõÄÔ­×Ó»¯¹¦ÄÜ£¬±ÈÈç StatefulSet ºÍ Ingress ¾ÍÊôÓÚÁ½ÖÖ²»Í¬µÄ¡°ÄÜÁ¦¡±¡£KubeVela ÔÊÐíÆ½Ì¨ÍŶÓͨ¹ý¶¨Òå¸÷ÖÖÄÜÁ¦¡°Ä£°å¡±µÄ·½Ê½£¬ÔÚ Kubernetes ÖÐÔ¤Öø÷ÖÖ¸÷ÑùµÄÄÜÁ¦¡£

²¿Êð»·¾³Ä£°å£ºÓë¡°ÄÜÁ¦¡±ÀàËÆ£¬Ó¦ÓõIJ¿Êð»·¾³ÔÚ KubeVela ÖÐͨ¹ý¡°»·¾³¡±Ä£°åÀ´½øÐÐÔ¤¶¨ÒåºÍ³õʼ»¯£¬±ÈÈç¡°²âÊÔ¼¯Èº¡±ºÍ¡°Éú²ú¼¯Èº¡±£¬¾ÍÊôÓÚÁ½ÖÖ¡°»·¾³¡±¡£

¶ø×÷Ϊƽ̨µÄÓû§£¬±ÈÈçÒµÎñÍŶӣ¬ËûÃÇÖ»ÐèҪͨ¹ýƽ̨ÍŶÓÌṩµÄ»·¾³Ä£°åÀ´¡°Ò»¼ü¡±³õʼ»¯×Ô¼ºÔ¤ÆÚµÄ²¿Êð¼¯Èº£¬È»ºó°Ñ×Ô¼ºÐèÒªµÄÄÜÁ¦Ä£°å¡°×é×°¡±³ÉÒ»¸öÍêÕûµÄÓ¦Ó㬾ͿÉÒÔÖ±½ÓÏòÈκΠKubernetes ¼¯Èº½øÐÐÓ¦Óý»¸¶ºÍÔËάÁË¡£

ÓÉÓÚÉÏÊöÕâЩÄÜÁ¦ºÍ»·¾³£¬¶¼Í¨¹ý¡°Ä£°å¡±µÄ·½Ê½½øÐÐÁ˳éÏó£¬ËùÒÔ¶ÔÓÚÒµÎñÍŶÓÀ´Ëµ£¬ËüÃDz¢²»ÐèҪѧϰÍêÕûµÄ Kubernetes ¸ÅÄîÓëϸ½Ú£¬Ö»ÐèÒªÁ˽âÉÏÊöÄ£°å±©Â¶³öÀ´µÄ²ÎÊý£¬¾Í¿ÉÒÔÎÞ·ìµÄʹÓà Kubernetes À´Íê³É×Ô¼ºÒª×öµÄÊÂÇé¡£¶ø¾ßÌåͨ¹ýÄ£°å±©Â¶³öÄÄЩ¿ÉÅäÖÃÏî¡¢±³ºóµÄÄ£°åÔõôäÖȾ¡¢äÖȾ³ÉʲôÑù Kubernetes ¶ÔÏó£¬ÔòÍêȫȫÔÚÆ½Ì¨ÍŶӵÄÕÆ¿ØÖ®ÖУ¬²¢ÇÒ¿ÉÒÔËæÊ±µ÷½ÚºÍÐ޸ġ£

ÉÏÊö¡°Æ½Ì¨ÍŶÓÌṩÄÜÁ¦Ä£°å¡±½áºÏ¡°ÒµÎñÍŶÓ×é×°Ä£°åÉùÃ÷Ó¦ÓᱵŤ×÷Á÷£¬Ò²ÕýÊǰ¢ÀïºÍ΢Èí¹²Í¬·¢²¼µÄ OAM ÏîÄ¿ÌᳫµÄ¡°¹Ø×¢µã·ÖÀ롱˼ÏëµÄ¼¯ÖÐÌåÏÖ¡£ÔÚ¾ßÌåµÄÄ£°åÖ§³ÖÉÏ£¬KubeVela µÚÒ»ÆÚÖ§³ÖµÄÊÇ Google ¿ªÔ´µÄ CUELang Ä£°åÓïÑÔ£¬µÚ¶þÆÚÔò»áÖ§³Ö Helm Chart °üÖ±½Ó×÷ΪÄÜÁ¦Ä£°å¡£

KubeVela ÄÜΪÄã×öʲô£¿

ÔÚÁ˽âÁË KubeVela ÊǸöʲôÏîÄ¿ÒÔºó£¬ÎÒÃÇÔÙÀ´»Ø´ðµÚ¶þ¸ö´ó¼ÒÒ»Ö±¶¼ºÜ¹ØÐĵÄÎÊÌ⣺

×÷Ϊһ¸öƽ̨¹¹½¨Õߣ¬KubeVela Äܹ»°ïÖúÄã×öʲô?

1. ¿ìËÙ¹¹½¨³éÏó

¹¹½¨¡°³éÏó¡±£¬ÊÇÈκÎÒ»¸öÔÆÔ­Éúƽ̨µÄ×î»ù´¡¡¢Ò²±ØÈ»»áÌṩµÄ¹¦ÄÜ¡£

ÎÒÃÇÖªµÀ£¬Kubernetes ±©Â¶³öÀ´µÄÊÇÒ»Ì×ÉùÃ÷ʽ API£¬¶øËùν³éÏ󣬯äʵ¾ÍÊÇÒ»¸öƽ̨ÔÚÕâЩÉùÃ÷ʽ API µÄ»ù´¡ÉÏ£¬ÎªÓû§±©Â¶³öÀ´µÄ¿É²Ù×÷ÏîºÍ¿ÉÅäÖÃÏî¡£×÷Ϊƽ̨ÍŶӣ¬ÎÒÃÇÖ®ËùÒÔÒªÌṩ¡°³éÏó¡±£¬Æä×îÖÕÄ¿µÄ¶¼ÊÇΪÁ˼ò»¯Óû§µÄʹÓÃÐÄÖÇ£¬ÈÃÒµÎñÍŶÓÖ»¹Ø×¢ËûÃǹØÐĵÄÊÂÇ飬±ÜÃâÒýÈë´óÁ¿ÓëÒµÎñÎÞ¹ØµÄÆ½Ì¨²ãϸ½ÚÈÃÓû§¡°Íû¶øÈ´²½¡±¡£¿ÉÒÔ˵£¬Ìṩ¡°³éÏó¡±£¬ÊÇÈκÎÒ»¸öƽ̨ÍŶÓÂ䵨 Kubernetes µÈϵͳ¼¶¿ªÔ´ÏîÄ¿µÄµÚÒ»²½¡£

Òµ½ç×î³£¼ûµÄ³éÏó·½Ê½£¬ÊǸøÓû§Ìṩһ¸öͼÐνçÃæÀ´½øÐвÙ×÷£¨±ÈÈç Console »òÕß Dashboard£©£¬ÕâЩͼÐνçÃæµÄ¹²Í¬µã£¬¾ÍÊǽöÔÊÐíÓû§ÌîÐ´Ä³Ð©ÌØ¶¨µÄ×ֶβÎÊý£¬´Ó¶øÊµÏÖ¼ò»¯Óû§ÐÄÖǵÄÄ¿µÄ£¬±ÈÈçÏÂͼËùʾµÄij¿ªÔ´ K8s PaaS ÏîÄ¿µÄ Console£º

ͼ 3 ij¿ªÔ´ K8s PaaS ÏîÄ¿µÄ Console

»¹ÓÐһЩÏîÄ¿£¨±ÈÈç Racher Rio£©Ñ¡Ôñ¸øÓû§Ìṩһ¸öÃüÁîÐй¤¾ß£¬ÆäʵËüµÄ×÷ÓøúͼÐνçÃæÍêÈ«ÀàËÆ£¬Ö»²»¹ýÔÊÐíÌîдµÄ²ÎÊý±ä³ÉÁË CLI µÄ²ÎÊý¶øÒÑ¡£

µ±È»£¬¶ÔÓÚһЩ¼¼Êõˮλ¸ü¸ßµÄÍŶӣ¬ËûÃÇ»á»ùÓÚ Kubernetes ÔÙ¿ª·¢ÉϲãµÄ CRD + Operator À´×÷Ϊ¡°³éÏ󡱡£±ÈÈç Knative Æäʵ¾ÍÊÇÒ»ÖÖÃæÏò Serverless ³¡¾°µÄ³éÏó£¬Pinterest ¹«Ë¾ÔòÓÐ×Ô¼ºµÄ Application CRD ³éÏóµÈ¡£

ÄÇô£¬×÷Ϊƽ̨ÍŶӣ¬ÎÒÃÇÓÖÊÇÔõôÀ´¾ö¶¨¸øÓû§±©Â¶ÄÄЩ¿ÉÅäÖòÎÊýÄØ£¿Õâ¾ÍÉæ¼°µ½ÁË¡°³éÏó¡±µÄÈýÖÖ»ù´¡Ä£Ê½£¨¸ü¸´ÔÓµÄÇé¿ö¶¼ÊǶÔÕâÈýÖÖģʽµÄ½øÒ»²½×éºÏ£©£º

×éºÏ³éÏó£¬ÕâÖÖģʽ³£¼ûÓÚÎÒÃǰÑ2¸öÔ­×ÓÄÜÁ¦×éºÏ³ÉΪһ¸öÄÜÁ¦Ìṩ£¬±ÈÈçÎÒÃÇÔÚʵ¼Ê¿ª·¢ Console ʱ£¬¾­³£»á°Ñ K8s Deployment ºÍ Service ½øÐС°×éºÏ¡±£¬±©Â¶³öÒ»¸ö Web Service µÄ¸ÅÄîÀ´ÈÃÓû§¿ÉÒÔÔÚÒ»¸ö±íµ¥Àïͬʱ¶¨ÒåÈÝÆ÷¾µÏñºÍ±©Â¶¶Ë¿Ú¡£

²ð·Ö³éÏó£¬ÕâÖÖģʽ³£¼ûÓÚÎÒÃÇÏ£ÍûÔÚʹÓÃÁ÷³ÌÉϰÑÒ»¸ö¶ÔÏóÉϵÄ×ֶηֿª³É¼¸¸ö±íµ¥À´½øÐзֲ½ÖèÌîд£¬´Ó¶ø½âñÊðʱÓëÔËάʱµÄÅäÖᣱÈÈçÒ»¸ö Pod ÀïÃæµÄ¶à¸öÈÝÆ÷£¬ ÎÒÏ£ÍûÔÚµÚÒ»¸ö±íµ¥ÀïÈÃÓû§ÌîдҵÎñÈÝÆ÷£¬ÔÚÁíÒ»¸ö±íµ¥ÈÃÔËάÌîд Sidecar ÈÝÆ÷¡£ÔÙ±ÈÈç ArgoRollout Õâ¸ö¶ÔÏó£¬ÎÒ»áÏ£ÍûÒ»¸ö±íµ¥ÈÃÓû§ÌîдÈÝÆ÷¾µÏñ£¬ÁíÒ»¸ö±íµ¥ÈÃÔËάÌîд»Ò¶È²ßÂÔ¡£

ת»»³éÏó£¬ÕâÖÖģʽͨ³£ÓÃÓڸĸöÃû×Ö£¬»òÕß˵ȥµôһЩÎ޹صĸÅÄ±ÈÈç Knative Revision ¸ú Deployment ±¾ÖÊÉÏÊÇÒ»Ò»¶ÔÓ¦µÄ£¬µ«ÊÇÀïÃæÀàËÆ LabelSelector ÕâÖÖÓû§²»ÐèÒª¹ØÐĵÄ×Ö¶ÎÔÚ Knative ¾Í»áÖ±½ÓÈ¥µôÁË¡£

ͼ 4 ³£¼û³éÏóģʽ

ÉÏÊö¼¸ÖÖ³éÏóµÄģʽ£¬ÔÚÒµ½çµÄºÜ¶àƽ̨¼¶ÏîÄ¿ºÍ²úÆ·Öж¼ÓÐÌåÏÖ¡£µ«ÁíÒ»·½Ã棬ÈçºÎÕýÈ·µÄÉè¼Æ³éÏó£¬ÒÔ¼°ÈçºÎÈ·±£³éÏóÄܹ»Âú×ãÒµÎñ·½Óû§µÄʹÓÃÐèÇóºÍϰ¹ß£¬ÆäʵÊÇÒ»¸ö·Ç³£¾ß±¸ÌôÕ½ÐÔµÄÎÊÌâ¡£ÕâÀïµÄ¹Ø¼üµãÔÚÓÚ£¬ÎÞÂÛÊÇͼÐλ¯½çÃæ£¬»¹ÊÇ CRD Operator£¬ÕâЩ¡°³éÏó¡±Ò»µ©ÉÏÏߣ¬¶ÔËüµÄÐ޸ľͷdz£À§ÄÑ¡£¿ÉÊÇÁíÒ»·½Ã棬ҵÎñ·½Óû§µÄÐèÇó£¬ÓÖ¼¸ºõ²»¿ÉÄÜÊÇÒ»³É²»±äµÄ£¨Êµ¼ÊÇé¿öÉõÖÁÊÇ¡°Ò»ÌìÒ»¸öÑù¡±£©¡£

KubeVela ¶ÔÓÚ¡°³éÏó¡±µÄÉè¼ÆÓëʵÏÖ

×÷Ϊ°¢Àï°Í°ÍµÄƽ̨ÍŶӣ¬ÎÒÃÇÔÚ½øÐдó¹æÄ£ÔÆÔ­ÉúÓ¦Óûù´¡ÉèÊ©µÄʵ¼ùÖУ¬Í¬ÑùÒ²Óöµ½ÁËÈçºÎÉè¼Æ¡°³éÏó¡±µÄÄÑÌâÓëÌôÕ½¡£¾­¹ý´óÁ¿µÄ³¢ÊÔÓë×ܽᣬÎÒÃÇ×îÖÕºÍÑз¢Ð§ÄÜÍŶÓÒ»ÆðÑ¡ÔñÁË GitOps + IaC£¨Infrastructure as Code£©µÄ¼¼Êõ×éºÏÀ´½â¾öÕâ¸öÎÊÌ⣨¾ßÌå´ó¼Ò¿ÉÒÔ¿´ÕâÆªÎÄÕ£º¡¶ÔÆÔ­Éúʱ´ú£¬Ó¦Óüܹ¹½«ÈçºÎÑݽø£¿¡·£©¡£

ÆäÖУ¬GitOps ¸ü¶àÊǶԽ»¸¶Á÷Ë®ÏߵĴ´Ð£¬¶ø IaC µÄ´æÔÚ£¬¾ÍÊÇΪÁ˽â¾ö¡°³éÏó¡±Õâ¸öÎÊÌâ¡£¾ßÌåÀ´Ëµ£¬IaC µÄÇ¿´óÖ®´¦ÔÚÓÚ£¬Ëü¶Ô¡°³éÏ󡱵͍ÒåÊÇͨ¹ý¡°Ä£°å¡±À´±í´ïµÄ¡£ÕâÒâζ×ÅÒ»¸ö¡°³éÏó¡±±³ºó£¬²¢²»ÐèÒª CRD Operator ÕâÑù¸´ÔӵķþÎñÆ÷¶Ë±à³Ì¹¤×÷£¬×÷Ϊƽ̨ÍŶÓÎÒÃÇÖ»ÐèÒªÌá½»Ò»¸öÄ£°å£¬Óû§¾Í¡°×Ô¶¯¡±ÓÐÁ˳éÏóºóµÄ×ֶΣ»¶øÈç¹ûÒªÐÞ¸ÄÕâЩ³éÏó×ֶΣ¬ÎÒÃÇÖ»ÐèÒª½«¶ÔӦģ°å¸üУ¬Óû§ÄDZߵijéÏóÒ²¾Í¡°×Ô¶¯¡±¸Ä±äÁË¡£ÕâÖÖ³éÏó»úÖÆµÄµ÷ÕûºÍ¸üУ¬²»ÐèÒªÈκÎÖØÐ±àÒëºÍÉÏÏߵĻ·½Ú£¬ËùÒÔÎÒÃǰÑËüÒ²³ÆÎª¡°¿Í»§¶Ë³éÏ󡱡£

ͼ 5 Óû§¡¢³éÏó¡¢Ä£°åºÍԭʼ K8s API Ö®¼äµÄ¹ØÏµ

ÔÚ¾ßÌåµÄʵÏÖÉÏ£¬°¢Àï°Í°ÍÊÇͨ¹ýCUELang Õâ¸ö Google ¿ª·¢µÄÄ£°åÓïÑÔÀ´¶¨Òå³éÏóÄ£°åµÄ£¬ÕâÒ²ÊÇΪºÎ KubeVela µÚÒ»ÆÚÏÈ¿ªÔ´ÁË»ùÓÚ CUE µÄ³éÏó»úÖÆ¡£ÔÚ¾ßÌåʹÓÃÉÏ£¬Æ½Ì¨ÍŶÓÖ»ÐèÒª½« CUE Ä£°å°´ÕÕ OAM ¹æ·¶£¨¼´£ºWorkloadDefinition ºÍ TraitDefinition ¶ÔÏó£©×¢²á£¨kubectl apply£©µ½ Kubernetes ¼¯Èºµ±ÖУ¬ÒµÎñÓû§¾Í¿ÉÒÔÁ¢¿ÌʹÓÃÕâ¸ö³éÏ󣨾ßÌåµÄʹÓ÷½Ê½ÎÒÃǺóÃæ»áÏêϸ˵Ã÷£©¡£

ÁíÒ»·½Ã棬CUE Ö®ËùÒÔÊܵ½ Google ºÍ°¢ÀïµÄÇàíù£¬»¹ÔÚÓÚËü±È½ÏÍêÉÆµÄ³éÏó²ãʵÏÖÄÜÁ¦¡£±ÈÈçÇ°ÃæÎÒÃÇ×ܽáÁ˳éÏóµÄÈýÖÖģʽ£¬ÆäÖÐ ¡°×ª»»³éÏ󡱺͡°×éºÏ³éÏó¡±ÔÚÄ£°åäÖȾµÄʱºòºÜÈÝÒ××ö£¬Î޷ǾÍÊÇÄ£°åäÖȾµÄʱºò»»¸ö×Ö¶ÎÃû³Æ£¬Éú³ÉµÄÄÚÈݱä³É¶à¸ö¶ÔÏó¶øÒÑ¡£µ«ÊDzð·Ö³éÏóÆäʵÊÇÓкܴóÄѶȵģ¬ÕâÉæ¼°µ½²ð·ÖºóÄÜÁ¦µÄ¶ÀÁ¢ÔËÐÐÒÔ¼°×îÖÕÁ½¸öÄÜÁ¦ÓÖÖØÐÂ×éºÏµ½Ò»Æð£¨patch-merge£©µÄ¹ý³Ì¡£

¶ø½èÖú KubeVela£¬Õâ¸ö²ð·Ö¾Í±È½Ï¼òµ¥ÁË¡£ÒÔÇ°ÃæÌáµ½½âñîÒµÎñÈÝÆ÷Óë Sidecar ÈÝÆ÷µÄ¶¨ÒåÁ÷³ÌΪÀý£¬ÎÒÃÇÏ£Íû°Ñ¡°¶¨ÒåÒµÎñÈÝÆ÷¡±ºÍ¡°¶¨Òå Sidecar ÈÝÆ÷¡±ÔÚÓû§²à²ðµ½Á½¸ö²»Í¬µÄ±íµ¥ÉÏÈ¥¡£ÔÚ¾ßÌåÖ´ÐÐÉÏ£¬Æ½Ì¨ÍŶÓÖ»ÐèҪע²áÒ»¸ö WorkloadDefinition ¶ÔÏó£¨Ãû½Ð worker£©£¬ÀïÃæÐ¯´øÒµÎñÈÝÆ÷µÄ Deployment Ä£°å£¬È»ºóÔÙ×¢²áÒ»¸ö TraitDefinition ¶ÔÏó£¨Ãû½Ð sidecar£©£¬ÀïÃæÖ»Ð¯´ø Sidecar ÈÝÆ÷µÄÄ£°å£¬ÄÇô KubeVela ¾Í»á¶ÔÓû§²à±©Â¶³ö worker ºÍ sidecar Á½Ì×ÍêÈ«¶ÀÁ¢µÄ¿ÉÅäÖÃÏʹµÃÓû§¿ÉÒÔÔÚ²¿ÊðʱֻÐèÒªÌîд worker ÖеÄÒµÎñÈÝÆ÷²ÎÊý£¬ÔËάÔò¿ÉÒÔÔÚºóÐøµÄÔËάʱ¶ÀÁ¢Ìîд sidecar µÄÅäÖòÎÊý£¬¶øÍêÈ«²»ÐèÒª¶ÔÓû§µÄ worker ²¿·Ö½øÐÐÈκÎÐ޸ġ£

ͼ 6 KubeVela ¶Ô Kubernetes API ½øÐС°²ð·Ö¡±µÄÀý×Ó

µ±È»£¬³ýÁË CUE Ö®Í⣬ÉÏÊö³éÏó»úÖÆÒ²¿ÉÒÔͨ¹ý Helm À´ÊµÏÖ£¬²¢ÇÒͬ GitOps Á÷Ë®ÏßÎ޷켯³É¡£Õâ¸ö¹¦ÄÜ»á×÷Ϊ KubeVela ÏÂÒ»¸öÖØÒªÌØÐÔ·¢²¼£¬½ìʱÎÒÃÇ»á·ÖÏí»ùÓÚ KubeVela ¹¹½¨³ÖÐø½»¸¶ÏµÍ³µÄ°¸ÀýÓë×î¼Ñʵ¼ù¡£

2. ¿ìËÙ¹¹½¨Óû§Ê¹ÓýçÃæ

ÔÚÓÐÁËÉÏÊö¡°³éÏó¡±Ö®ºó£¬×÷Ϊƽ̨µÄ×îÖÕÓû§£¬ÒµÎñÍŶӾͿÉÒÔͨ¹ýijÖÖ·½Ê½Ê¹ÓÃÕâЩ³éÏóÀ´½»¸¶ºÍ¹ÜÀíÓ¦ÓÃÁË¡£ÔÚÕâÒ»²ã£¬KubeVela ²»»á×öÈκÎÔ¼Êø£¬Ïà·´£¬ËüµÄÄ¿±êÊÇÈóéÏóÄܹ»±»Ö±½Ó͸³öÔÚÓû§µÄʹÓýçÃæÉÏ£¬ÕâÑù£¬µ±Æ½Ì¨ÍŶӶÔÕâЩ³éÏó½øÐÐÁ˵÷ÕûÖ®ºó£¬ÒµÎñÓû§¾Í¿ÉÒÔÁ¢¼´Ê¹Óõ½×îеijéÏ󣬲»ÐèÒª¶Ôϵͳ×öÈκθüлòÕßÉý¼¶¡£

ÔÚ¾ßÌåÖ´ÐÐÉÏ£¬KubeVela »á¸øÉÏÊö³éÏó×Ô¶¯Éú³É JSON schema£¬Õâ¸ö JSON schema µÄÄÚÈÝ£¬¾ÍÊǸóéÏóÔÊÐíÓû§ÌîдµÄ²ÎÊýÁбíºÍÀàÐÍ¡£ËùÒÔÎÞÂÛÊÇͼÐνçÃæ£¬»¹ÊÇÆäËûÓû§½çÃæ£¬¾Í¿ÉÒÔÖ±½ÓʹÓÃÕâ¸ö JSON schema äÖȾ³öÓû§±íµ¥£¬ÉõÖÁÉú³ÉʹÓÃÎĵµ¡£

±ÈÈçÇ°Ãæ½âñî Sidecar ÈÝÆ÷¶¨ÒåµÄÀý×Ó£¬KubeVela ¾Í»áΪÓû§±©Â¶³öÁ½·Ý JSON schema£ºÒ»¸öÓÃÀ´¶¨ÒåÒµÎñÈÝÆ÷µÄ²ÎÊýÁÐ±í£¬Ò»¸öÓÃÀ´ Sidecar ÈÝÆ÷µÄ²ÎÊýÁÐ±í£¬Ç°¶Ë¾Í¿ÉÒÔäÖȾ³ÉÁ½¸ö¶ÀÁ¢µÄ±íµ¥À´¹©Óû§Ìîд¡£

ÕýÊÇÉÏÊö IaC ³éÏó + ×Ô¶¯Éú³É Schema µÄ»úÖÆ£¬ÈûùÓÚ KubeVela ¹¹½¨ÃæÏòÓû§µÄʹÓýçÃæ²»½ö±äµÃ·Ç³£¼òµ¥£¬¶øÇÒ»¹¸ß¶È¿ÉÀ©Õ¹£ºÕâЩ³éÏ󱳺óµÄÄ£°åÖ»Òª±»Æ½Ì¨¹ÜÀíÔ±Ð޸ģ¬¾Í»áÁ¢¿ÌÌåÏÖÔÚÓû§µÄͼÐνçÃæ±íµ¥ÉÏ£¬¸ù±¾²»ÐèÒª½øÐÐϵͳÉý¼¶ºÍÖØÐÂÉÏÏß¡£

ÔÚ KubeVela ÖУ¬ËüÄÚÖÃÁËÒ»¸ö¼ò»¯°æµÄͼÐνçÃæ£¬½Ð×ö Appfile£¬ËüÆäʵ¾ÍÊǰÑÉÏÊö³éÏóµÄ schema ÒÔ YAML µÄ·½Ê½Õ¹Ê¾Á˳öÀ´£¬´Ó¶øÔÊÐíÓû§½øÐÐÐ޸ĺÍÅäÖã¬ÔÚÏÂÃæµÄÀý×ÓÖУ¬ÎÒÃÇ¿ÉÒÔÐÎÏóµÄ¿´µ½Ã¿Ò»¸ö¡°ÄÜÁ¦³éÏó¡±£¨route£¬autoscaler µÈµÈ£©ÔÚ Appfile ÈçºÎÌåÏÖΪһ¸ö¸ö¿ÉÅäÖÃÏîµÄ¡£

ͼ 7 ÔÚ Appfile ʹÓà KubeVela ÖеijéÏó

ͼ 8 ʹÓà vela traits ²é¿´ÒѾ­×¢²áµÄÄÜÁ¦

ͼ 9 ʹÓà vela show ²é¿´ÄÜÁ¦µÄʹÓÃÎĵµ£¨×Ô¶¯Éú³É£©

Ŀǰ£¬Appfile ÊÇ KubeVela ÄÚÖõÄʹÓá°³éÏó¡±µÄÖ÷ÒªÓû§½çÃæ¡£Óë´Ëͬʱ£¬Ïàͬ»úÖÆµÄ Dashboard ºÍRestful API Ôò¼Æ»®ÔÚ 2021 Q2 ÔÚ KubeVela Öз¢²¼³öÀ´£¬´Ó¶øÈÃÓû§Í¨¹ýͼÐνçÃæºÍ API µÄ·½Ê½À´¶¨ÒåºÍʹÓÃÕâÌ׳éÏó»úÖÆ¡£

ÖµµÃÒ»ÌáµÄÊÇ£¬×÷Ϊ Kubernetes Ô­ÉúµÄƽ̨¹¹½¨ÒýÇæ£¬KubeVela µÄÉÏÊö³éÏó»úÖÆºÍ Appfile ±¾Éí£¬È«²¿¶¼ÒÔÉùÃ÷ʽ API µÄ·½Ê½ÊµÏÖÔÚ Kubernetes µ±ÖУ¬ÆäÖÐ Appfile ¶ÔÓ¦µÄ CRD ¾Í½Ð×ö Application ¶ÔÏó¡£

ËùÒÔ×÷Ϊƽ̨ÍŶӣ¬ËûÃÇͨ¹ý Definition CRD À´×¢²á³éÏóÄ£°å£¬×÷Ϊƽ̨µÄÓû§£¬ËûÃÇʵ¼ÊÉÏÔòÊÇͨ¹ýÕâ¸ö Application CRD À´Ê¹ÓóéÏóÄ£°å£¬ÕûÌ×»úÖÆÍêÈ«ÒÔ Kubernetes ²å¼þµÄ·½Ê½ÔËÐУ¬ÌṩÁË×îÔ­ÉúµÄ±»¼¯³ÉºÍ¿ÉÀ©Õ¹ÄÜÁ¦¡£

3. ½èÖú Terraform ͳһ¶¨ÒåºÍ¹ÜÀíÔÆ×ÊÔ´

¶øÓÐÁË Definition + Application ÕâÌ×Ìåϵ£¨ÕâÒ²ÕýÊÇ OAM ¹æ·¶µÄºËÐÄÄÚÈÝ£©Ö®ºó£¬KubeVela ¾Í¿ÉÒÔÔÚÒ»Ì×ͳһµÄʹÓÃÌåÑéºÍ API Ï£¬¼¯³É¸ü¶àµÄÄÜÁ¦Ìṩ·½£¬±ÈÈ磺Terraform¡£

Terraform ÊÇÒµÄÚÖªÃûµÄ´´½¨ÔÆ×ÊÔ´µÄ¹¤¾ß£¬Ëü·á¸»µÄÉú̬¼¸ºõ°üº¬ÁËËùÓÐÖ÷Á÷ÔÆ³§É̵Ĵ󲿷ÖÔÆ×ÊÔ´£¬ÊÇ¶Ô Kubernetes ÔÆ×ÊÔ´¹ÜÀíÄÜÁ¦²»×ã×îºÃµÄ²¹³ä¡£ ÔÚ KubeVela ÖÐʹÓà Terraform ¶¨ÒåºÍÀ­ÆðÔÆ×ÊÔ´·Ç³£¼òµ¥£¬ÈçÏÂͼËùʾ£º

ͼ 10 KubeVela ʹÓà Terraform À­ÆðÔÆ×ÊÔ´

1£©Æ½Ì¨ÍŶӣº×¢²áÔÆ×ÊÔ´Ä£°åºÍ³éÏó

ƽ̨ÍŶӵŤ×÷ÊǶ¨ÒåÒ»¸öÃûΪ"aliyun-rds"µÄ WorkloadDefinition ¶ÔÏ󣬲¢ÇÒÔÚÀïÃæ¶¨ÒåºÃ Terraform °¢ÀïÔÆ RDS ÔÆ×ÊÔ´µÄÄ£°å¡£ÔÚÉÏÊöÀý×ÓÖÐÎÒÃÇͬÑùÊÇͨ¹ý CUE À´±àдµÄ Terraform ÅäÖ㬠ÕâÊÇÒòΪ Terraform ÔÆ×ÊÔ´±¾ÉíÖ§³ÖʹÓà JSON ¸ñʽÃèÊö£¬¶ø CUE ÓÖÊÇ JSON µÄ³¬¼¯£¬ËùÒÔ¿ÉÒÔ×ÔÈ»µÄʹÓà Terraform ËùÓеÄÄÜÁ¦¡£

µ±È»£¬ÁíÒ»·½ÃæÎÒÃÇÒ²Ôڼƻ®Ö§³Ö Terraform µÄ HCL Óï·¨À´×÷Ϊ KubeVela µÄÁíÒ»ÖÖÄ£°åÓïÑÔ¡£ÔÚ CUE Ä£°åÖÐÎÒÃÇÒýÓÃÁ˰¢ÀïÔÆµÄ RDS ¶¨Ò壬²¢³éÏó³É user¡¢passwordµÈÉÙÁ¿Óû§×ֶΣ¨parameter£©¡£

2£©Óû§£º¶¨ÒåºÍʹÓÃÔÆ×ÊÔ´

ÕâÑù£¬Óû§Ö»ÐèÒªÔÚ Appfile ÖУ¬Ìîдһ¸öÐ嵀 Service£¬ÃüÃûΪ sample-db ¶øÆäÀàÐ;ÍÊÇÎÒÃÇÉÏÃæ¶¨ÒåµÄ aliyun-rds£¬¾Í¿ÉÒÔÔÚÕâ¸ö²¿·Ö¶¨ÒåÄ£°åÖÐÌṩµÄ user£¬password µÈ²ÎÊý¡£

³ý´ËÖ®Í⣬Óû§»¹¿ÉÒÔÔÚÉÏÃæµÄ express-server Õâ¸öÒµÎñÓ¦ÓÃÖж¨ÒåÊý¾Ý°ó¶¨£¬ÌîдÃûΪ sample-db µÄÅäÖü°ÆäÓ³ÉäµÄ»·¾³±äÁ¿Ãû³Æ¡£

×îºó£¬Óû§Ö»ÐèÒªÒ»¾ä vela up ÃüÁKubeVela ¾Í»áÀ­ÆðÒµÎñÈÝÆ÷£¬È»ºó×Ô¶¯°Ñ Terraform ´´½¨µÄ°¢ÀïÔÆRDS·µ»ØµÄÁ´½ÓÐÅÏ¢´«µÝµ½ÒµÎñµÄÈÝÆ÷ÖУ¬ÎÒÃÇ¿ÉÒÔÔÚ×îºóÒ»²¿·Ö¿´µ½Õâ¸öÓ¦ÓÃÒѾ­³É¹¦Æô¶¯£¬²¢»ñµÃÁËÊý¾Ý¿âµÄÁ¬½ÓÐÅÏ¢¡£µ±È»£¬Õâ¸öÁ÷³ÌÖеÄÊý¾Ý´«µÝºÍ±àÅŹ¦ÄÜ£¬Ò²ÊÇ KubeVela ÄÚÖõĺËÐÄÄÜÁ¦¡£

×ܽá

×÷Ϊ Kubernetes ÉϵÚÒ»¸öÔÆÔ­Éúƽ̨¹¹½¨ÒýÇæÒÔ¼° OAM Ä£Ð͵ÄÍêÕûʵÏÖ£¬KubeVela Ϊƽ̨¹¹½¨ÕßÌṩµÄÄÜÁ¦Ô¶²»Ö¹ÕâЩ£¬±ÈÈçºóÐø¼´½«¿ªÔ´µÄͳһӦÓûҶȿò¼Ü¡¢¶à¼¯Èº¶à»·¾³µÄ½»¸¶×é¼þ¡¢CRD Controller µÄÉúÃüÖÜÆÚ¹ÜÀíµÈµÈ£¬¶¼ÊÇ KubeVela ÖØµã´òÔìµÄµÄºËÐÄÄÜÁ¦¡£

 

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

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

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

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]
 
×îÐÂÎÄÕÂ
ÔÆÔ­Éú¼Ü¹¹¸ÅÊö
K8S¸ß¿ÉÓü¯Èº¼Ü¹¹ÊµÏÖ
ÈÝÆ÷ÔÆ¹ÜÀíÖ®K8S¼¯Èº¸ÅÊö
k8s-ÕûÌå¸ÅÊöºÍ¼Ü¹¹
Ê®·ÖÖÓѧ»áÓÃdocker²¿Êð΢·þÎñ
×îпγÌ
ÔÆ¼ÆË㡢΢·þÎñÓë·Ö²¼Ê½¼Ü¹¹
Æóҵ˽ÓÐÔÆÔ­ÀíÓë¹¹½¨
»ùÓÚKubernetesµÄDevOpsʵ¼ù
ÔÆÆ½Ì¨¼Ü¹¹ÓëÓ¦Ó㨰¢ÀïÔÆ£©
Docker²¿Êð±»²âϵͳÓë×Ô¶¯»¯¿ò¼Üʵ¼ù
³É¹¦°¸Àý
±±¾© ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ͨÓù«Ë¾GE DockerÔ­ÀíÓëʵ¼ùÅàѵ
ij¾ü¹¤Ñо¿µ¥Î» MDA£¨Ä£ÐÍÇý¶¯¼Ü¹¹£©
ÖªÃûÏû·Ñ½ðÈÚ¹«Ë¾ ÁìÓòÇý¶¯Éè¼Æ
ÉîÛÚijÆû³µÆóÒµ Ä£ÐÍÇý¶¯µÄ·ÖÎöÉè¼Æ