| ±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜʲôÊÇ
KubeVela £¿ KubeVela ½â¾öÁËʲôÎÊÌ⣬²¢¾ÙÀý˵Ã÷Õë¶ÔÕâЩÎÊÌâÈçºÎ½â¾ö£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚ°¢Àï°Í°ÍÔÆÔÉú¹«Öںţ¬ÓÉAlice±à¼¡¢ÍƼö¡£ |
|
ʲôÊÇ KubeVela £¿
Ò»ÑÔÒÔ±ÎÖ®£¬KubeVela ÊÇÒ»¸ö¼òµ¥Ò×ÓÃÇҸ߶ȿÉÀ©Õ¹µÄÓ¦ÓùÜÀíÆ½Ì¨ÓëºËÐÄÒýÇæ¡£KubeVela
ÊÇ»ùÓÚ Kubernetes Óë OAM ¼¼Êõ¹¹½¨µÄ¡£
ÏêϸµÄ˵£¬¶ÔÓÚÓ¦Óÿª·¢ÈËÔ±À´½²£¬KubeVela ÊÇÒ»¸ö·Ç³£µÍÐÄÖǸºµ£µÄÔÆÔÉúÓ¦ÓùÜÀíÆ½Ì¨£¬ºËÐŦÄÜÊÇÈÿª·¢ÈËÔ±·½±ã¿ì½ÝµØÔÚ
Kubernetes É϶¨ÒåÓë½»¸¶ÏÖ´ú΢·þÎñÓ¦Óã¬ÎÞÐèÁ˽âÈκΠKubernetes ±¾ÉíÏà¹ØµÄϸ½Ú¡£ÔÚÕâÒ»µãÉÏ£¬KubeVela
¿ÉÒÔ±»ÈÏΪÊÇÔÆÔÉúÉçÇøµÄ Heroku¡£
ÁíÒ»·½Ã棬¶ÔÓÚÆ½Ì¨ÍŶÓÀ´½²£¬KubeVela ÊÇÒ»¸öÇ¿´ó²¢ÇҸ߿ÉÀ©Õ¹µÄÔÆÔÉúÓ¦ÓÃÆ½Ì¨ºËÐÄÒýÇæ¡£»ùÓÚÕâÑùÒ»¸öÒýÇæ£¬Æ½Ì¨ÍŶӿÉÒÔ¿ìËÙ¡¢¸ßЧµØÒÔ
Kubernetes ÔÉúµÄ·½Ê½ÔÚ KubeVela ÖÐÖ²ÈëÈκÎÀ´×ÔÔÆÔÉúÉçÇøµÄÓ¦ÓùÜÀíÄÜÁ¦£¬´Ó¶ø»ùÓÚ
KubeVela ´òÔì³ö×Ô¼ºÐèÒªµÄÔÆÔÉúƽ̨£¬±ÈÈç£ºÔÆÔÉúÊý¾Ý¿â PaaS¡¢ÔÆÔÉú AI ƽ̨¡¢ÉõÖÁ
Serverless ·þÎñ¡£ÔÚÕâÒ»µãÉÏ£¬KubeVela ¿ÉÒÔ±»ÈÏΪÊÇÒ»¸ö¡°ÒÔÓ¦ÓÃΪÖÐÐÄ¡±µÄ Kubernetes
·¢Ðа棬ÒÔ OAM ΪºËÐÄ£¬ÈÃÆ½Ì¨ÍŶӿÉÒÔ»ùÓÚ KubeVela ¿ìËÙ´òÔì³öÊôÓÚ×Ô¼ºµÄ PaaS¡¢Serverless
ÄËÖÁÈκÎÃæÏòÓû§µÄÔÆÔÉúƽ̨ÏîÄ¿¡£
KubeVela ½â¾öÁËʲôÎÊÌ⣿
ÏÖÈç½ñ£¬ÔÆÔÉú¼¼ÊõµÄѸÃÍ·¢Õ¹¿ÉÄÜÈúܶàÈ˶¼¸Ð¾õµ½ÑÛ»¨çÔÂÒ£¬µ«Êµ¼ÊÉÏ£¬Õâ¸öÉú̬µÄ×ÜÌå·¢Õ¹Ç÷ÊÆºÍÖ÷ÐýÂÉ£¬ÊÇͨ¹ý
Kubernetes ´î½¨ÁËÒ»¸öͳһµÄ»ù´¡ÉèÊ©³éÏó²ã£¬ÎªÆ½Ì¨ÍŶӯÁ±ÎµôÁË¡°¼ÆË㡱¡¢¡°ÍøÂ硱¡¢¡°´æ´¢¡±µÈ¹ýÈ¥ÎÒÃDz»µÃ²»¹Ø×¢µÄ»ù´¡ÉèÊ©¸ÅÄʹµÃÎÒÃÇÄܹ»»ùÓÚ
Kubernetes ·½±ãµØ¹¹½¨³öÈκÎÎÒÃÇÏëÒªµÄ´¹Ö±ÒµÎñϵͳ¶øÎÞÐè¹ØÐÄÈκλù´¡ÉèÊ©²ãµÄϸ½Ú¡£ÕâÕýÊÇ
Kubernetes ±»³ÆÎªÔƼÆËã½çµÄ Linux ÒÔ¼° ¡°Platform for Platforms¡±
µÄ¸ù±¾ÔÒò¡£
µ«ÊÇ£¬µ±ÎÒÃǰÑÊÓ½Ç´ÓÆ½Ì¨ÍŶÓÌáÉýµ½´¹Ö±ÒµÎñϵͳµÄ×îÖÕÓû§£¨È磺ӦÓÿª·¢ÈËÔ±£©µÄʱºò£¬ÎÒÃǻᷢÏÖ Kubernetes
ÕâÑùµÄ¶¨Î»ºÍÉè¼ÆÔÚ½â¾öÁËÆ½Ì¨ÍŶӵĴóÎÊÌâÖ®ºó£¬È´Ò²ÎªÓ¦Óÿª·¢ÕßÃÇ´øÀ´ÁËÌôÕ½ºÍÀ§ÈÅ¡£±ÈÈ磬̫¶àµÄÓû§¶¼ÔÚ±§Ô¹
Kubernetes ¡°Ì«¸´ÔÓÁË¡±¡£¾¿ÆäÔÒò£¬ÆäʵÔÚÓÚ Kubernetes ÖеĺËÐĸÅÄîÓëÌåϵ£¬È磺Pod¡¢sidecar¡¢Service¡¢×ÊÔ´¹ÜÀí¡¢µ÷¶ÈËã·¨ºÍ
CRD µÈµÈ£¬Ö÷ÒªÊÇÃæÏòƽ̨ÍŶӶø·Ç×îÖÕÓû§Éè¼ÆµÄ¡£È±·¦ÃæÏòÓû§µÄÉè¼Æ²»½ö´øÀ´Á˶¸Ç͵ÄѧϰÇúÏߣ¬Ó°ÏìÁËÓû§µÄʹÓÃÌåÑ飬ÍÏÂýÁËÑз¢Ð§ÄÜ£¬ÉõÖÁÔںܶàÇé¿öÏ»¹»áÒý·¢´íÎó²Ù×÷ÄËÖÁÉú²ú¹ÊÕÏ£¨±Ï¾¹²»¿ÉÄÜÿ¸öÒµÎñ¿ª·¢ÈËÔ±¶¼ÊÇ
Kubernetes ר¼Ò£©¡£
ÕâÒ²ÊÇΪʲôÔÚÔÆÔÉúÉú̬ÖУ¬¼¸ºõÿһ¸öƽ̨ÍŶӶ¼»á»ùÓÚ Kubernetes ¹¹½¨Ò»¸öÉÏ²ãÆ½Ì¨¸øÓû§Ê¹Óá£×î¼òµ¥µÄÒ²»á¸ø
Kubernetes ×öÒ»¸öͼÐνçÃæ£¬ÉÔ΢ÕýʽһЩµÄÔòÍùÍù»á»ùÓÚ Kubernetes ¿ª·¢Ò»¸öÀà
PaaS ƽ̨À´Âú×ã×Ô¼ºµÄÐèÇó¡£ÀíÂÛÉϽ²£¬ÔÚ Kubernetes Éú̬Öи÷ÖÖÄÜÁ¦ÒѾ·Ç³£·á¸»µÄ½ñÌ죬¿ª·¢Ò»¸öÀà
PaaS ƽ̨Ӧ¸ÃÊDZȽÏÈÝÒ׵ġ£
È»¶øÏÖʵȴÍùÍù²»¾¡ÈçÈËÒâ¡£ÔÚ´óÁ¿µÄÉçÇø·Ã̸µ±ÖУ¬ÎÒÃÇ·¢ÏÖÔÚÔÆÔÉú¼¼Êõ¼«´óÆÕ¼°µÄ½ñÌ죬»ùÓÚ Kubernetes
¹¹½¨Ò»¸ö¹¦ÄÜÍêÉÆ¡¢Óû§ÓѺõÄÉϲãÓ¦ÓÃÆ½Ì¨£¬ÒÀÈ»ÊÇÖдóÐ͹«Ë¾Ãǵġ°×¨Àû¡±¡£ÕâÀïµÄÔÒòÔÚÓÚ£º
Kubernetes Éú̬±¾ÉíµÄÄÜÁ¦³Ø¹ÌÈ»·á¸»£¬µ«ÊÇÉçÇøÀïÈ´²¢Ã»ÓÐÒ»¸ö¿ÉÀ©Õ¹µÄ¡¢·½±ã¿ì½ÝµÄ·½Ê½£¬Äܹ»°ïÖúƽ̨ÍŶӰÑÕâЩÄÜÁ¦¿ìËÙ¡°×é×°¡±³ÉÃæÏò×îÖÕÓû§µÄ¹¦ÄÜ£¨Feature£©¡£
ÕâÖÖÀ§¾³´øÀ´µÄ½á¹û£¬¾ÍÊǾ¡¹Ü´ó¼Ò½ñÌì¶¼ÔÚ»ùÓÚ Kubernetes ÔÚ¹¹½¨ÉϲãÓ¦ÓÃÆ½Ì¨£¬µ«ÕâЩƽ̨±¾ÖÊÉÏÈ´²¢²»Äܹ»Óë
Kubernetes Éú̬ÍêÈ«´òͨ£¬¶ø¶¼±ä³ÉÒ»¸öÓÖÒ»¸öµÄ´¹Ö±¡°ÑÌ´Ñ¡±¡£
ÔÚ¿ªÔ´ÉçÇøÖУ¬Õâ¸öÎÊÌâ»á¸ü¼ÓÃ÷ÏÔ¡£ÔÚ½ñÌìµÄ Kubernetes ÉçÇøÖУ¬²»·¦¸÷ÖÖ¡°ÃæÏòÓû§¡±¡¢¡°ÃæÏòÓ¦Óá±µÄ
Kubernetes Éϲãϵͳ¡£µ«ÕýÈçǰÎÄËùÊö£¬ÕâЩƽ̨¶¼ÎÞÒ»ÀýÍâµÄÒýÈëÁË×Ô¼ºµÄרÊôÉϲã³éÏó¡¢Óû§½çÃæºÍ²å¼þ»úÖÆ¡£ÕâÀï×îµäÐ͵ÄÀý×Ó°üÀ¨¾µä
PaaS ÏîÄ¿±ÈÈç Cloud Foundry£¬Ò²°üÀ¨¸÷ÖÖ Serverless ƽ̨¡£×÷Ϊһ¸ö¹«Ë¾µÄƽ̨ÍŶӣ¬ÎÒÃÇʵ¼ÊÉÏÖ»ÓÐÁ½¸öÑ¡Ôñ£ºÒªÃ´°Ñ×Ô¼º¾ÖÏÞÔÚijÖÖ´¹Ö±µÄ³¡¾°ÖÐÀ´ÊÊÅäºÍ²ÉÄÉij¸ö¿ªÔ´ÉÏ²ãÆ½Ì¨ÏîÄ¿£»ÒªÃ´¾ÍÖ»ÄÜ×ÔÑÐÒ»¸ö·ûºÏ×Ô¼ºËßÇóµÄÉÏ²ãÆ½Ì¨²¢ÇÒÔìÎÞÊý¸öÉçÇøÖÐÒѾ´æÔڵġ°ÂÖ×Ó¡±¡£
ÄÇô£¬ÓÐûÓС±µÚÈýÖÖÑ¡Ôñ¡±Äܹ»ÈÃÆ½Ì¨ÍŶÓÔÚ²»ÔìÂÖ×Ó¡¢ÍêÈ«´òͨ Kubernetes Éú̬µÄǰÌáÏ£¬ÇáËɵĹ¹½¨ÃæÏòÓû§µÄÉÏ²ãÆ½Ì¨ÄØ£¿
KubeVela ÈçºÎ½â¾öÉÏÊöÎÊÌ⣿
KubeVela ÏîÄ¿µÄ´´Á¢³õÖÔ£¬¾ÍÊÇÒÔÒ»¸öͳһµÄ·½Ê½Í¬Ê±½â¾öÉÏÊö×îÖÕÓû§ÓëÆ½Ì¨ÍŶÓËùÃæÁÙµÄÀ§¾³¡£ÕâÒ²ÊÇΪºÎÔÚÉè¼ÆÖУ¬KubeVela
¶Ô×îÖÕÓû§ºÍƽ̨ÍŶÓÕâÁ½ÖÖȺÌå½øÐÐÁ˵¥¶ÀµÄ»Ïñ£¬ÒÔÂú×ãËûÃDz»Í¬µÄËßÇó¡£
ÓÉÓÚ KubeVela ĬÈϵŦÄܼ¯Óë¡°Heroku¡±ÀàËÆ£¨¼´£ºÖ÷ÒªÃæÏòÓ¦Óÿª·¢ÈËÔ±£©£¬ËùÒÔÔÚÏÂÎÄÖУ¬ÎÒÃÇ»áÒÔÓ¦Óÿª·¢ÈËÔ±»òÕß¿ª·¢ÕßÀ´´úÌæ×îÖÕÓû§¡£µ«ÎÒÃǺܿìÒ²»á½²µ½£¬KubeVela
ÀïµÄÿһ¸ö¹¦ÄÜ£¬¶¼ÊÇÒ»¸ö²å¼þ£¬×÷Ϊƽ̨ÍŶӣ¬Äã¿ÉÒÔÇáËɵء°Ð¶ÔØ¡±ËüµÄËùÓÐÄÚÖÃÄÜÁ¦¡¢È»ºó¡°°²×°¡±×Ô¼ºÐèÒªµÄÈκÎÉçÇøÄÜÁ¦£¬ÈÃ
KubeVela ±ä³ÉÒ»¸öÍêÈ«²»Ò»ÑùµÄϵͳ¡£
1. Ó¦Óÿª·¢ÕßÑÛÖÐµÄ KubeVela
Ç°ÃæÒѾÌáµ½£¬¶ÔÓÚ¿ª·¢ÕßÀ´Ëµ£¬KubeVela ÊÇÒ»¸ö¼òµ¥¡¢Ò×Óá¢Óָ߿ÉÀ©Õ¹µÄÔÆÔÉúÓ¦ÓùÜÀí¹¤¾ß£¬Ëü¿ÉÒÔÈÿª·¢ÕßÒÔ¼«µÍµÄÐÄÖǸºµ£ºÍÉÏÊֳɱ¾ÔÚ
Kubernetes É϶¨ÒåÓ벿ÊðÓ¦Ó᣶ø¹ØÓÚÕû¸öϵͳµÄʹÓ㬿ª·¢ÕßÖ»ÐèÒª±àдһ¸ö docker-compose
·ç¸ñÓ¦ÓÃÃèÊöÎļþ Appfile ¼´¿É£¬²»ÐèÒª½Ó´¥ºÍѧϰÈκΠKubernetes ²ãµÄÏà¹ØÏ¸½Ú¡£
1£©Ò»¸ö Appfile ʾÀý
ÔÚÏÂÊöÀý×ÓÖУ¬ÎÒÃǻὫһ¸ö½Ð×ö vela.yaml µÄ Appfile ·ÅÔÚÄãµÄÓ¦ÓôúÂëĿ¼ÖУ¨±ÈÈçÓ¦ÓõÄ
GitHub Repo£©¡£Õâ¸ö Appfile ¶¨ÒåÁËÈçºÎ½«Õâ¸öÓ¦ÓñàÒë³É Docker ¾µÏñ£¬ÈçºÎ½«¾µÏñ²¿Êðµ½
Kubernetes£¬ÈçºÎÅäÖÃÍâ½ç·ÃÎÊÓ¦ÓõÄ·ÓɺÍÓòÃû£¬ÓÖÈçºÎÈà Kubernetes ×Ô¶¯¸ù¾Ý CPU
ʹÓÃÁ¿À´Ë®Æ½À©Õ¹Õâ¸öÓ¦Óá£

Ö»ÒªÓÐÁËÕâ¸ö 20 ÐеÄÅäÖÃÎļþ£¬Äã½ÓÏÂÀ´Î¨Ò»ÐèÒªµÄÊÂÇé¾ÍÊÇ $ vela up£¬Õâ¸öÓ¦Óþͻᱻ²¿Êðµ½
Kubernetes ÖÐÈ»ºó±»Íâ½çÒÔ https://example.com/testapp µÄ·½Ê½·ÃÎʵ½¡£
2£©Appfile ÊÇÈçºÎ¹¤×÷µÄ£¿
ÔÚ KubeVela µÄ Appfile ±³ºó£¬ÓÐ×ŷdz£¾«ÃîµÄÉè¼Æ¡£Ê×ÏÈÐèÒªÖ¸³öµÄ¾ÍÊÇ£¬Õâ¸ö Appfile
ÊÇûÓй̶¨µÄ Schema µÄ¡£
ʲôÒâË¼ÄØ£¿Õâ¸ö Appfile ÀïÃæÄãÄܹ»ÌîдµÄÿһ¸ö×ֶΣ¬¶¼ÊÇÖ±½ÓÈ¡¾öÓÚµ±Ç°Æ½Ì¨ÖÐÓÐÄÄЩ¹¤×÷¸ºÔØÀàÐÍ£¨Workload
Types£©ºÍÓ¦ÓÃÌØÕ÷£¨Traits£©ÊÇ¿ÉÓõġ£¶øÊìϤ OAM µÄͬѧ¶¼ÖªµÀ£¬ÕâÁ½¸ö¸ÅÄÕýÊÇ OAM
¹æ·¶µÄºËÐÄÄÚÈÝ£¬ÆäÖУº
¹¤×÷¸ºÔØÀàÐÍ£¨Workload Type£©£¬¶¨ÒåµÄÊǵײã»ù´¡ÉèÊ©ÈçºÎÔËÐÐÕâ¸öÓ¦Óá£ÔÚÉÏÃæµÄÀý×ÓÖУ¬ÎÒÃÇÉùÃ÷£ºÃû½Ð
testapp µÄÓ¦ÓûáÆô¶¯Ò»¸öÀàÐÍΪ¡°ÔÚÏß Web ·þÎñ£¨Web Service£©¡± µÄ¹¤×÷¸ºÔØ£¬ÆäʵÀýµÄÃû×ÖÊÇ
express-server¡£
Ó¦ÓÃÌØÕ÷£¨Traits£©£¬ÔòΪ¹¤×÷¸ºÔØÊµÀý¼ÓÉÏÁËÔËάʱÅäÖá£ÔÚÉÏÃæµÄÀý×ÓÖУ¬ÎÒÃǶ¨ÒåÁËÒ»¸ö Route
Trait À´ÃèÊöÓ¦ÓÃÈçºÎ±»´ÓÍâ½ç·ÃÎÊ£¬ÒÔ¼°Ò»¸ö Autoscale Trait À´ÃèÊöÓ¦ÓÃÈçºÎ¸ù¾Ý
CPU ʹÓÃÁ¿½øÐÐ×Ô¶¯µÄˮƽÀ©ÈÝ¡£
¶øÕýÊÇ»ùÓÚÕâÖÖÄ£¿é»¯µÄÉè¼Æ£¬Õâ¸ö Appfile ±¾ÉíÊǸ߶ȿÉÀ©Õ¹µÄ¡£µ±ÈκÎÒ»¸öÐ嵀 Workload
Type »òÕß Trait ±»°²×°µ½Æ½Ì¨ºó£¬Óû§¾Í¿ÉÒÔÁ¢¿ÌÔÚ Appfile ÀïÉùÃ÷ʹÓÃÕâ¸öÐÂÔöµÄÄÜÁ¦¡£¾Ù¸öÀý×Ó£¬±ÈÈçºóÃæÆ½Ì¨ÍŶÓпª·¢ÁËÒ»¸öÓÃÀ´ÅäÖÃÓ¦ÓÃ¼à¿ØÊôÐÔµÄÔËά²àÄÜÁ¦£¬½Ð×ö
Metrics¡£ÄÇôֻÐèÒª¾ÙÊÖÖ®ÀÌ£¬Ó¦Óÿª·¢Õ߾ͿÉÒÔÁ¢¿ÌʹÓà $ vela show metrics
ÃüÁî²é¿´Õâ¸öÐÂÔöÄÜÁ¦µÄÏêÇ飬²¢ÇÒÔÚ Appfile ÖÐʹÓÃËü£¬ÈçÏÂËùʾ£º

ÕâÖÖ¼òµ¥ÓѺá¢Óָ߶ÈÃô½ÝµÄʹÓÃÌåÑ飬ÕýÊÇ KubeVela ÔÚ×îÖÕÓû§²àÌṩµÄÖ÷ÒªÌå¸Ð¡£
3£©Vela Up ÃüÁî
Ç°ÃæÌáµ½£¬Ò»µ© Appfile ×¼±¸ºÃ£¬¿ª·¢ÕßÖ»ÐèÒªÒ»¾ä vela up ÃüÁî¾Í¿ÉÒÔ°ÑÕû¸öÓ¦ÓÃÁ¬Í¬ËüµÄÔËÎ¬ÌØÕ÷²¿Êðµ½
Kubernetes ÖС£²¿Êð³É¹¦ºó£¬Äã¿ÉÒÔʹÓà vela status À´²é¿´Õû¸öÓ¦ÓõÄÏêÇ飬°üÀ¨ÈçºÎ·ÃÎÊÕâ¸öÓ¦Óá£

ͨ¹ý KubeVela ²¿ÊðµÄÓ¦Óûᱻ×Ô¶¯ÉèÖú÷ÃÎÊ URL£¨ÒÔ¼°²»Í¬°æ±¾¶ÔÓ¦µÄ²»Í¬ URL£©£¬²¢ÇÒ»áÓÉ
cert-manager Éú³ÉºÃÖ¤Êé¡£Óë´Ëͬʱ£¬KubeVela »¹ÌṩÁËһϵÁи¨ÖúÃüÁ±ÈÈ磺vela
logs ºÍ vela exec£©À´°ïÖúÄãÔÚÎÞÐè³ÉΪ Kubernetes ר¼ÒµÄÇé¿öϸüºÃµØ¹ÜÀíºÍµ÷ÊÔÄãµÄÓ¦Óá£Èç¹ûÄã¶ÔÉÏÊöÓÉ
KubeVela ´øÀ´µÄ¿ª·¢ÕßÌåÑé¸ÐÐËȤµÄ»°£¬»¶ÓǰÍù KubeVela ÏîÄ¿µÄÓû§Ê¹ÓÃÎĵµÀ´Á˽â¸ü¶à¡£
¶ø½ÓÏÂÀ´£¬ÎÒÃÇÒªÇл»Ò»ÏÂÊӽǣ¬¸ÐÊÜÒ»ÏÂÆ½Ì¨ÍŶÓÑÛÖÐµÄ KubeVela ÓÖÊÇʲôÑù×ӵġ£
2. ƽ̨¹¤³ÌʦÑÛÖÐµÄ KubeVela
ʵ¼ÊÉÏ£¬Ç°Ãæ½éÉܵ½µÄËùÓпª·¢Õß²àÌåÑ飬¶¼Àë²»¿ª KubeVela ÔÚÆ½Ì¨²à½øÐеĸ÷ÖÖ´´ÐÂÐÔÉè¼ÆÓëʵÏÖ¡£Ò²ÕýÊÇÕâЩÉè¼ÆµÄ´æÔÚ£¬²ÅʹµÃ
KubeVela ²»ÊÇÒ»¸ö¼òµ¥µÄ PaaS »òÕß Serverless£¬¶øÊÇÒ»¸ö¿ÉÒÔÓÉÆ½Ì¨¹¤³ÌʦÀ©Õ¹³ÉÈÎÒⴹֱϵͳµÄÔÆÔÉúƽ̨Äںˡ£
¾ßÌåÀ´Ëµ£¬KubeVela Ϊƽ̨¹¤³ÌʦÌṩÁËÈý´óºËÐÄÄÜÁ¦£¬Ê¹µÃ»ùÓÚ Kubernetes ¹¹½¨ÉÏÊöÃæÏòÓû§µÄÔÆÔÉúƽ̨´Ó¡°Ñô´º°×Ñ©¡±±ä³ÉÁË¡°Ð¡²ËÒ»µú¡±£º
µÚÒ»£ºÒÔÓ¦ÓÃΪÖÐÐÄ¡£ÔÚ Appfile ±³ºó£¬Æäʵ¾ÍÊÇ¡°Ó¦Óá±Õâ¸ö¸ÅÄËüÊÇ»ùÓÚ OAM Ä£ÐÍʵÏֵġ£Í¨¹ýÕâÑùµÄ·½Ê½£¬KubeVela
Èá°Ó¦Óá±Õâ¸ö¸ÅÄî³ÉΪÁËÕû¸öƽ̨¶ÔÓû§±©Â¶µÄºËÐÄ API¡£KubeVela ÖеÄËùÓÐÄÜÁ¦£¬¶¼ÊÇÎ§ÈÆ×Å¡°Ó¦Óá±Õ¹¿ªµÄ¡£ÕâÕýÊÇΪºÎ»ùÓÚ
KubeVela À©Õ¹ºÍ¹¹½¨³öÀ´µÄƽ̨£¬ÌìÈ»ÊÇÓû§ÓѺõģº¶ÔÓÚÒ»¸ö¿ª·¢ÕßÀ´Ëµ£¬ËûÖ»¹ØÐÄ¡°Ó¦Óá±£¬¶ø²»ÊÇÈÝÆ÷»òÕß
Kubernetes£»¶ø KubeVela »áÈ·±£¹¹½¨Õû¸öƽ̨µÄ¹ý³Ì£¬Ò²Ö»ÓëÓ¦ÓòãµÄÐèÇóÓйء£
µÚ¶þ£ºKubernetes ÔÉúµÄ¸ß¿ÉÀ©Õ¹ÐÔ¡£ÔÚÇ°ÃæÎÒÃÇÒѾÌáµ½¹ý£¬Appfile ÊÇÒ»¸öÓÉ Workload
Type ºÍ Trait ×é³ÉµÄ¡¢Íêȫģ¿é»¯µÄ¶ÔÏó¡£¶ø OAM Ä£Ð͵ÄÒ»¸öÌØµã£¬¾ÍÊÇÈÎÒâÒ»¸ö Kubernetes
API ×ÊÔ´£¬¶¼¿ÉÒÔÖ±½Ó»ùÓÚ Kubernetes µÄ CRD ·¢ÏÖ»ú֯ע²áΪһ¸ö Workload
Type »òÕß Trait¡£ÕâÖÖ¿ÉÀ©Õ¹ÐÔ£¬Ê¹µÃ KubeVela ²¢²»ÐèÒªÉè¼ÆÈκΡ°²å¼þϵͳ¡±£ºKubeVela
ÀïµÄÿһ¸öÄÜÁ¦£¬¶¼ÊDzå¼þ£¬¶øÕû¸ö Kubernetes ÉçÇø£¬¾ÍÊÇ KubeVela ÔÉúµÄ²å¼þÖÐÐÄ¡£
µÚÈý£º¼òµ¥ÓѺõ«¸ß¶È¿ÉÀ©Õ¹µÄÓû§²à³éÏóÌåϵ¡£ÔÚÁ˽âÁË Appfile Ö®ºó£¬Äã¿ÉÄÜÒѾ¶ÔÕâ¸ö¶ÔÏóµÄʵÏÖ·½Ê½²úÉúÁËºÃÆæ¡£Êµ¼ÊÉÏ£¬KubeVela
Öв¢²»ÊǼòµ¥µÄʵÏÖÁËÒ»¸ö Appfile¡£ÔÚÆ½Ì¨²ã£¬KubeVela ÔÚ OAM Ä£ÐͲãʵÏÖÖм¯³ÉÁË
CUELang ÕâÖÖ¼ò½àÇ¿´óµÄÄ£°åÓïÑÔ£¬´Ó¶øÎªÆ½Ì¨¹¤³Ìʦ»ùÓÚ Kubernetes API ¶ÔÏó¶¨ÒåÓû§²à³éÏ󣨼´£º¡°×îºóÒ»¹«À³éÏó£©ÌṩÁËÒ»¸ö±ê×¼¡¢Í¨ÓõÄÅäÖù¤¾ß¡£¸üÖØÒªµÄÊÇ£¬Æ½Ì¨¹¤³Ìʦ»òÕßϵͳ¹ÜÀíÔ±£¬¿ÉÒÔËæÊ±ËæµØµÄÿ¸öÄÜÁ¦¶ÔÓ¦µÄ
CUE Ä£°å½øÐÐÐ޸ģ¬ÕâЩÐÞ¸ÄÒ»µ©Ìá½»µ½ Kubernetes£¬Óû§ÔÚ Appfile Àï¾Í¿ÉÒÔÁ¢¿ÌʹÓõ½ÐµijéÏ󣬲»ÐèÒªÖØÐ²¿Êð»òÕß°²×°
KubeVela¡£
ÔÚ¾ßÌåʵÏֲ㣬KubeVela ÊÇ»ùÓÚ OAM Kubernetes Runtime ¹¹½¨µÄ£¬Í¬Ê±²ÉÓÃ
KEDA £¬Flagger£¬Prometheus µÈÉú̬ÏîÄ¿×÷Ϊ Trait µÄ±³ºóµÄÒÀÀµ¡£µ±È»£¬ÕâЩÒÀÀµÖ»ÊÇ
KubeVela µÄÑ¡ÐÍ£¬Äã¿ÉÒÔËæÊ±Îª KubeVela ¶¨ÖƺͰ²×°Äãϲ»¶µÄÈκÎÄÜÁ¦×÷Ϊ Workload
Type »òÕß Trait¡£×ÛºÏÒÔÉϽ²½â£¬KubeVela ÏîÄ¿µÄÕûÌå¼Ü¹¹ÓÉÓû§½çÃæ²ã£¬Ä£ÐͲ㣬ºÍÄÜÁ¦¹ÜÀí²ãÈý²¿·Ö×é³É£¬ÈçÏÂËùʾ£º

ÓÐÁË KubeVela£¬Æ½Ì¨¹¤³ÌʦÖÕÓÚÓµÓÐÁËÒ»¸ö¿ÉÒÔ·½±ã¿ì½ÝµØ½«ÈκÎÒ»¸ö Kubernetes ÉçÇøÄÜÁ¦·â×°³éÏó³ÉÒ»¸öÃæÏòÓû§µÄÉÏ²ãÆ½Ì¨ÌØÐÔµÄÇ¿´ó¹¤¾ß¡£¶ø×÷ΪÕâ¸öƽ̨µÄ×îÖÕÓû§£¬Ó¦Óÿª·¢ÕßÃÇÖ»ÐèҪѧϰÕâЩÉϲã³éÏó£¬ÔÚÒ»¸öÅäÖÃÎļþÖÐÃèÊöÓ¦Ó㬾ͿÉÒÔÒ»¼ü½»¸¶³öÈ¥¡£
3. KubeVela VS ¾µä PaaS
ºÜ¶àÈË¿ÉÄÜ»áÎÊ£¬KubeVela ¸ú¾µä PaaS µÄÖ÷񻂿±ðºÍÁªÏµÊÇÊ²Ã´ÄØ£¿
ÊÂʵÉÏ£¬´ó¶àÊý¾µä PaaS ¶¼ÄÜÌṩÍêÕûµÄÓ¦ÓÃÉúÃüÖÜÆÚ¹ÜÀí¹¦ÄÜ£¬Í¬Ê±Ò²·Ç³£¹Ø×¢Ìṩ¼òµ¥ÓѺõÄÓû§ÌåÑ飬ÌáÉýÑз¢Ð§ÄÜ¡£ÔÚÕâЩµãÉÏ£¬KubeVela
¸ú¾µä PaaS µÄÄ¿±ê£¬ÊǷdz£Ò»Öµġ£
µ«ÁíÒ»·½Ã棬¾µä PaaS ÍùÍùÊDz»¿ÉÀ©Õ¹µÄ£¨±ÈÈç Rancher µÄ Rio ÏîÄ¿£©£¬»òÕß»áÒýÈëÊôÓÚ×Ô¼ºµÄ²å¼þÉú̬£¨ÄÄÅÂÕâ¸ö
PaaS ÊÇÍêÈ«»ùÓÚ Kubernetes ¹¹½¨µÄ£©£¬ÒÔ´ËÀ´È·±£Æ½Ì¨±¾ÉíµÄÓû§ÌåÑéºÍÄÜÁ¦µÄ¿É¿ØÖÆÐÔ£¨±ÈÈç
Cloud Foundry »òÕß Heroku µÄ²å¼þÖÐÐÄ£©¡£
Ïà±È֮ϣ¬KubeVela µÄÉè¼ÆÊÇÍêÈ«²»Í¬µÄ¡£KubeVela µÄÄ¿±ê£¬´ÓÒ»¿ªÊ¼¾ÍÊÇÀûÓÃÕû¸ö Kubernetes
ÉçÇø×÷Ϊ×Ô¼ºµÄ¡°²å¼þÖÐÐÄ¡±£¬²¢ÇÒ¡°¹ÊÒ⡱°ÑËüµÄÿһ¸öÄÚÖÃÄÜÁ¦¶¼Éè¼Æ³ÉÊǶÀÁ¢µÄ¡¢¿É²å°ÎµÄ²å¼þ¡£ÕâÖָ߶ȿÉÀ©Õ¹µÄÄ£ÐÍ£¬±³ºóÆäʵÓÐמ«ÃܵÄÉè¼ÆÓëʵÏÖ¡£±ÈÈ磬KubeVela
ÈçºÎÈ·±£Ä³¸öÍêÈ«¶ÀÁ¢µÄ Trait Ò»¶¨Äܹ»°ó¶¨ÓÚijÖÖ Workload Type£¿ÈçºÎ¼ì²éÕâЩÏ໥¶ÀÁ¢µÄ
Trait ÊÇ·ñ³åÍ»£¿ÕâЩÌôÕ½£¬ÕýÊÇ Open Application Model£¨OAM£©×÷Ϊ KubeVela
Ä£ÐͲãµÄÆðµ½µÄ¹Ø¼ü×÷Óã¬Ò»ÑÔÒÔ±ÎÖ®£ºOAM ÊÇÒ»¸ö¸ß¶È¿ÉÀ©Õ¹µÄÓ¦Óö¨ÒåÓëÄÜÁ¦¹ÜÀíÄ£ÐÍ¡£
KubeVela ºÍ OAM ÉçÇø»¶Ó´ó¼ÒÉè¼ÆºÍÖÆ×÷ÈκΠWorkload Type ºÍ Trait
µÄ¶¨ÒåÎļþ¡£Ö»Òª°ÑËüÃÇ´æ·ÅÔÚ GitHub ÉÏ£¬È«ÊÀ½çÈκÎÒ»¸ö KubeVela Óû§¾Í¶¼¿ÉÒÔÔÚ×Ô¼ºµÄ
Appfile ÀïʹÓÃÄãËùÉè¼ÆµÄÄÜÁ¦¡£¾ßÌåµÄ·½Ê½£¬Çë²Î¿¼ $ vela cap £¨¼´£º²å¼þÄÜÁ¦¹ÜÀíÃüÁµÄʹÓÃÎĵµ¡£
|