±à¼ÍƼö: |
Ê×Ïȸø´ó¼Ò½éÉÜÒ»ÏÂknativeÊÇʲô£¬È»ºóÊÇknativeµÄÖ÷Òª×é¼þ£¬Èôó¼Ò¶ÔknativeÓÐÒ»¸ö»ù±¾µÄÁ˽⡣֮ºóÎÒ»á¼òµ¥µÄ¶Ôknative×öһЩ·ÖÎöºÍ̽ÌÖ£¬ÒÔ¼°½éÉÜÒ»ÏÂknativeºóÐøµÄ·¢Õ¹¡£Ï£Íû±¾´ÎµÄÄÚÈÝÈôó¼ÒÄܹ»¶ÔknativeÓÐÒ»¸ö»ù±¾µÄÈÏÖª¡£ À´×ÔÓÚservicemesher,ÓÉ»ðÁú¹ûÈí¼þAnna±à¼¡¢ÍƼö¡£ |
|

ʲôÊÇknative£¿

KnativeÊÇGoogleǣͷ·¢ÆðµÄ serverless ÏîÄ¿¡£

ÕâÊÇKnativeµÄÏîÄ¿¶¨Ò壬עÒâÕâ¾ä»°ÀïÃæ¼¸¸ö¹Ø¼ü×Ö£ºkubernetes£¬serverless£¬workload¡£

ÕâÊÇ×î½ü¼¸Äê Google ×ö´óÐÍÏîÄ¿µÄ³£Ì¬£º²úÆ·¸Õ³öÀ´£¬ÕóÓª¾ÍÒѾºÜÇ¿´óÁË£¬ËùνÏÈÉù¶áÈË¡£

ÕâÊÇĿǰKnativeÏîÄ¿µÄ½øÕ¹£¬¿ÉÒÔ¿´µ½ÕâÊÇÒ»¸ö·Ç³£ÐµÄÏîÄ¿£¬¸Õ¸ÕÆð²½¡£
±¸×¢£ºÕâÊǽØÖÁ2018-11-24Ñݽ²µ±ÌìµÄÇé¿ö£¬µ½2018Äê12Ôµף¬knativeÒѾ·¢²¼ÁËv0.2.2ºÍv0.2.3Á½¸öbugfix°æ±¾¡£µ«Ò²»¹Ö»ÊÇ
0.2 ¡¡

ÎÒÃÇÀ´¿´Ò»Ï£¬ÔÚknative³öÀ´Ç°£¬ serverless ÁìÓòÒÑÓеÄʵÏÖ£¬°üÀ¨ÔƶËÌṩµÄ²úÆ·ºÍ¸÷ÖÖ¿ªÔ´ÏîÄ¿¡£

Õâ·ùͼƬժ×ÔThe New StackµÄÒ»¸öserverless µ÷²é£¬ÎÒÃǺöÂÔµ÷²éÄÚÈÝ£¬½ö½ö¿´¿´ÕâÀïÁгöÀ´µÄserverless²úÆ·µÄÊýÁ¿¡ª¡ª¸ÐÊÜÊÇʲô£¿ºÃ¶àserverlessÏîÄ¿£¬ºÃ¶àÑ¡Ôñ£¡
ÄÇÎÊÌâÀ´ÁË£ºµ½µ×¸ÃÔõôѡ£¿

Õâ¾ÍÊÇĿǰ serverless µÄÎÊÌ⣺ÓÉÓÚȱ·¦±ê×¼£¬Êг¡³ÊÏÖË鯬»¯¡£²»Í¬³§ÉÌ£¬²»Í¬ÏîÄ¿£¬¸÷²»Ïàͬ£¬Òò´ËÎÞÂÛÔõôѡÔñ£¬¶¼ÃæÁÙÒ»¸ö·çÏÕ£º¹©Ó¦Ḛ́󶨣¡

Õâ¶Î»°À´×Ô knative µÄ¹Ù·½½éÉÜ£¬google ÍÆ³ö knative µÄÀíÓɺͶ¯»ú¡£ÆäÖеÚÒ»ÌõºÍµÚ¶þÌõÕë¶ÔµÄÊǵ±Ç°
serverless Êг¡Ë鯬µÄÏÖ×´¡£¶øµÚËÄÌõ¶àÔÆÕ½ÂÔ£¬ÔòÊÇÕë¶Ô¹©Ó¦Ḛ́󶨵ķçÏÕ¡£

googleÃèÊöknativeµÄ¶¯»úÖ®Ò»£¬Êǽ«ÔÆÔÉúÖÐÈý¸öÁìÓòµÄ×î¼Ñʵ¼ù½áºÏÆðÀ´¡£
С½á£º
µ±Ç° serverless Êг¡²úÆ·ÖڶർÖÂË鯬»¯ÑÏÖØ£¬´æÔÚ³§Ḛ́󶨷çÏÕ£¬¶ø google ÍÆ³ö
knative £¬Ï£ÍûÄÜÌṩһÌ×¼òµ¥Ò×ÓÃµÄ serverless ·½°¸£¬ÊµÏÖ serverless
µÄ±ê×¼»¯ºÍ¹æ·¶»¯¡£
KnativeµÄÖ÷Òª×é¼þ

µÚ¶þ²¿·Ö£¬À´½éÉÜÒ»ÏÂknativeµÄÖ÷Òª×é¼þ¡£

Ç°ÃæÌáµ½£¬google ÍÆ³ö knative £¬ÊÔͼ½«ÔÆÔÉúÖÐÈý¸öÁìÓòµÄ×î¼Ñʵ¼ù½áºÏÆðÀ´¡£·´Ó¦µ½
knative ²úÆ·ÖУ¬¾ÍÊÇÕâÈý´óÖ÷Òª×é¼þ£ºBuild£¬Serving£¬Eventing¡£

Knative Build ×é¼þ£¬ÊµÏÖ´Ó´úÂëµ½ÈÝÆ÷µÄÄ¿±ê¡£ÎªÊ²Ã´²»Ö±½ÓʹÓà dockfile À´Íê³ÉÕâ¸öÊÂÇ飿

Knative Build ÔÚʵÏÖʱ£¬ÊDZíÏÖΪ kubernetes µÄ CRD£¬Í¨¹ý yaml
ÎļþÀ´¶¨Òå¹¹½¨¹ý³Ì¡£ÕâÀïÒýÈëÁ˺ܶà¸ÅÄîÈ磺build£¬builder£¬step£¬template£¬sourceµÈ¡£ÁíÍâÖ§³ÖÓÃ
service account ×öÉí·ÝÑéÖ¤¡£

Knative Serving×é¼þµÄÖ°ÔðÊÇÔËÐÐÓ¦ÓÃÒÔ¶ÔÍâÌṩ·þÎñ£¬¼´Ìṩ·þÎñ¡¢º¯ÊýµÄÔËÐÐʱ֧³Å¡£
×¢ÒⶨÒåÖеÄÈý¸ö¹Ø¼ü£º
kubernetes-based£º»ùÓÚk8s£¬Ò²½öÖ§³Ök8s£¬ºÃ´¦ÊÇ¿ÉÒÔ³ä·ÖÀûÓÃk8sƽ̨µÄÄÜÁ¦
scale-to-zero£ºserverless ×îÖØÒªµÄÂôµãÖ®Ò»£¬µ±È»ÒªÇ¿µ÷
request-driven compute£ºÇëÇóÇý¶¯µÄ¼ÆËã
ÖµµÃ×¢ÒâµÄÊÇ£¬³ýÁËk8sÖ®Í⣬»¹ÓÐÁíÍâÒ»¸öÖØÒª»ù´¡£ºistio£¡ºóÃæ»áÏêϸÁÄÕâ¸ö¡£
Knative ServingÏîĿͬÑùÒ²ÌṩÁË×Ô¼ºµÄÖмä¼þÔÓÒÔÖ§³ÖÈçͼËùʾµÄ¼¸¸öÖØÒªÌØÐÔ¡£

knativeÖÐÓдóÁ¿µÄ¸ÅÄî³éÏ󣬶øÔÚÕâÖ®ºóµÄ±³¾°£¬ËµÆðÀ´ÓÐЩÒâ˼£ºknative ¾õµÃ kubernetes
ºÍ istio ±¾ÉíµÄ¸ÅÄî·Ç³£¶à£¬¶àµ½ÄÑÓÚÀí½âºÍ¹ÜÀí£¬Òò´Ë knative ¾ö¶¨Òª×Ô¼ºÌṩ¸ü¸ßÒ»²ãµÄ³éÏó¡£ÖÁÓÚÕâ¸ö×ö·¨£¬»áÊǸªµ×³éн½â¾öÎÊÌ⣬»¹ÊÇÑ©ÉϼÓ˪ÈÃÎÊÌâ¸üÂé·³¡¡
knativeµÄÕâЩ³éÏó¶¼ÊÇ»ùÓÚ kubernetes µÄ CRD À´ÊµÏÖ£¬¾ßÌå³éÏó¸ÅÄîÓУºService¡¢Route¡¢Configuration
ºÍ Revision¡£ÌرðÌáÐѵÄÊÇ£¬ÓÒ±ßͼÖÐµÄ Service ÊÇ knative ÖÐµÄ service
¸ÅÄservice.serving.knative.dev£¬¶ø²»ÊÇ´ó¼Òͨ³£×îÊìϤµÄ k8s µÄ service¡£

¶ÔÓÚKnative Serving ×é¼þ£¬×îÖØÒªµÄÌØÐÔ¾ÍÊÇ×Ô¶¯ÉìËõµÄÄÜÁ¦¡£Ä¿Ç°ÉìËõ±ß½çÖ§³Ö´Ó0µ½ÎÞÏÞ£¬ÈÝÐíͨ¹ýÅäÖÃÉèÖá£
Knative ĿǰÊÇ×Ô¼ºÊµÏÖµÄ autoscaler £¬ÔÀ´±È½Ï¼òµ¥£ºRevision ¶ÔÓ¦µÄpodÓÉ
k8s deployment ¹ÜÀí£¬podÉϵŤ×÷¸ºÔØÉϱ¨ metrics£¬»ã×ܵ½ autoscaler
·ÖÎöÅжÏ×ö¾ö²ß£¬ÔÚÐèҪʱÐÞ¸Ä replicas ÊýÁ¿À´ÊµÏÖ×Ô¶¯ÉìËõ£¨ºóÃæ»áÔÙ½²Õâ¿é´æÔÚµÄÎÊÌ⣩¡£
µ±ÊÕËõµ½0£¬»òÕß´Ó0À©Õ¹µ½1ʱ£¬Çé¿ö»áÌØ±ðһЩ¡£knativeÔÚÕâÀïÌṩÁËÃûΪ Activator
µÄÉè¼Æ£¬ÈçͼËùʾ£º
Istio Route ¿ØÖÆÁ÷Á¿×ßÏò£¬Õý³£Çé¿öϹæÔòÉèÖÃΪ½«Á÷Á¿Çе½¹¤×÷¸ºÔØËùÔÚµÄpod
µ±Ã»ÓÐÁ÷Á¿£¬ÐèÒªÊÕËõµ½0ʱ£¬¹æÔòÐÞ¸ÄΪ½«Á÷Á¿Çе½ Activator £¬Èç¹ûһֱûÓÐÁ÷Á¿£¬Ôòʲô¶¼²»·¢Éú¡£´Ëʱautoscaler
ͨ¹ý deployment ½« replicas ÉèÖÃΪ0¡£
µ±ÐµÄÁ÷Á¿µ½À´Ê±£¬Á÷Á¿±» Activator ½ÓÊÕ£¬Activator Ëæ¼´ÀÆð pod£¬ÔÚ pod
ºÍ¹¤×÷¸ºÔØ×¼±¸ºÃÖ®ºó£¬ÔÙ½«Á÷Á¿×ª·¢¹ýÈ¥

Knative Eventing ×é¼þ¸ºÔðʼþ°ó¶¨ºÍ·¢ËÍ£¬Í¬ÑùÌṩ¶à¸ö³éÏó¸ÅÄFlow£¬Source£¬Bus£¬ÒÔ°ïÖú¿ª·¢ÈËÔ±°ÚÍѸÅÄîÌ«¶àµÄ¸ºµ££¨¹ØÓÚÕâÒ»µã£¬ÎÒ±£ÁôÒâ¼û£©¡£

Bus ÊǶÔÏûÏ¢×ÜÏߵijéÏó¡£

Source ÊÇʼþÊý¾ÝÔ´µÄ³éÏó¡£

Knative ÔÚʼþ¶¨Òå·½Ãæ×ñÑÁË cloudevents ¹æ·¶¡£
С½á£º
¼òµ¥½éÉÜÁËһϠknative ÖеÄÈý´ó×é¼þ£¬Èôó¼Ò¶Ô knative µÄ´óÌå¼Ü¹¹ºÍ¹¦ÄÜÓиö»ù±¾µÄÈÏÖª¡£Õâ´Î¾Í²»ÔÙ¼ÌÐøÉîÈë
knative µÄʵÏÖϸ½Ú£¬ÒÔºóÓлú»áÔÙÕ¹¿ª¡£
Knative·ÖÎöºÍ̽ÌÖ

ÔÚµÚÈý²¿·Ö£¬ÎÒÃÇÀ´·ÖÎö̽ÌÖһϠknative µÄ²úÆ·¶¨Î»£¬Ë³±ãÒ²ÁÄÒ»ÏÂΪʲôÎÒÃǻῴºÃ knative¡£

Ê×ÏÈ£¬×îÖØÒªµÄÒ»µãÊÇ£ºknative ²»ÊÇÒ»¸ö Serverless ʵÏÖ£¬¶øÊÇÒ»¸ö Serviceless
ƽ̨¡£
Ò²¾ÍÊÇ˵£¬knative ²»ÊÇÔÚÏÖÓÐÊг¡ÉϵÄ20¶à¸ö serverless ²úÆ·ºÍ¿ªÔ´ÏîÄ¿µÄ»ù´¡Éϼòµ¥ÔÙÔö¼ÓÒ»¸öеľºÕùÕߣ¬¶øÊÇͨ¹ý½¨Á¢Ò»¸ö±ê×¼¶ø¹æ·¶µÄ
serverless ƽ̨£¬ÈÝÐíÆäËû serverless ²úÆ·ÔÚ knative ÉÏÔËÐС£

Knative ÔÚ²úÆ·¹æ»®ºÍÉè¼ÆÀíÄîÉÏÒ²´øÀ´ÁËÐµĶ«Î÷£¬ºÍ´«Í³ serverless ²»Í¬¡£¹¤×÷¸ºÔØºÍÆ½Ì¨Ö§³ÅÊÇ
knative ×îÎüÒýÎÒÃǵĵط½¡£

Òª²»ÒªIstio£¿ÕâÊÇ knative Ò»³öÀ´¾Í±»ÈËÚ¸²¡ºÍÌôÕ½µÄµã£ºÒòΪ Istio µÄÈ·ÊǸ´ÔÓ¶ÈÓеã¸ß¡£¶ø
k8s µÄ¸´ÔÓ¶È£¬»¹ÓÐ knative ×ÔÉíµÄ¸´ÔӶȶ¼²»µÍ£¬ÔÙ¼ÓÉÏ Istio¡¡
¹ØÓÚÕâÒ»µã£¬¸öÈ˵Ľ¨ÒéÊÇ£º
Èç¹ûÔÓÐϵͳÖÐûÓй滮 Istio/Service mesh µÄλÖã¬ÄÇôΪÁË knative ¶øÒýÈë
Istio µÄÈ·ÊÇ´ú¼ÛÆ«¸ß¡£¿ÉÒÔ¿¼ÂÇÓÃÆäËû·½Ê½Ìæ´ú£¬×îа汾µÄ knative ÒѾʵÏÖÁË¶Ô Istio
µÄ½âñÈÝÐíÌæ»»¡£
Èç¹û±¾À´¾ÍÓй滮ʹÓà Istio/Service mesh £¬±ÈÈçÏñÎÒÃÇÂìÒÏÕâÖÖ£¬ÄÇô knative
¶Ô Istio µÄÒÀÀµ¾Í²»ÊÇÎÊÌâÁË£¬·´¶ø¿ÉÒÔ×éºÏʹÓá£
¶ø kubernetes + servicemesh + serverless µÄ×éºÏ£¬ÎÒÃǷdz£¿´ºÃ¡£

µ±È»£¬knative ÌåϵµÄ¸´ÔÓ¶ÈÎÊÌâÊÇÎÞ·¨»Ø±ÜµÄ£ºkubernetes£¬istio£¬knative
ÈýÕß¶¼ÊǸ´ÔӶȺܸߵIJúÆ·£¬ ¼ÓÔÚÒ»ÆðÕûÌ帴ÔӶȾͷdz£¿É¹ÛÁË£¬ÌôÕ½·Ç³£´ó¡£
KnativeºóÐø·¢Õ¹

µÚËĸö²¿·Ö£¬ÎÒÃÇÀ´Õ¹ÍûһϠknative µÄºóÐø·¢Õ¹£¬°üÀ¨ÈçºÎ½â¾öһЩÏÖÓÐÎÊÌâ¡£

µÚÒ»¸öÎÊÌâ¾ÍÊÇÐÔÄÜÎÊÌâ¡£

Queue ProxyÒ²ÊÇÒ»¸öÏÖ´æµÄÐèÒªÌæ»»µÄÄ£¿é¡£

Ç°Ãæ½²¹ý knative µÄ Autoscaler ÊÇ×ÔÐÐʵÏֵ쬶ø k8s ĿǰÒѾÓбȽϽ¡È«ÔÉúÄÜÁ¦£º
HPA ºÍ Custom Metrics¡£Ä¿Ç° knative ÒѾÓмƻ®Òª×ª¶øÊ¹Óà k8s µÄÔÉúÄÜÁ¦¡£ÕâÒ²·ûºÏ
Cloud Native µÄÍæ·¨£º½«»ù´¡ÄÜÁ¦Ï³Áµ½ k8s ÕâÑùµÄ»ù´¡ÉèÊ©£¬Éϲã¼õ¸º¡£

³ýÁËϳÁµ½ k8s Ö®Í⣬autoscaler»¹Óкܶàϸ½ÚÐèÒªÔÚºóÐø°æ±¾ÖÐÍêÉÆ¡£

¶ÔʼþÔ´ºÍÏûϢϵͳµÄÖ§³ÖÒ²Ô¶²»¹»ÍêÉÆ£¬µ±È»¿¼Âǵ½Ä¿Ç°²Å 0.2.0 °æ±¾£¬¿ÉÒÔÀí½â¡£

Ŀǰ knative »¹Ã»Óй滮 workflow ÀàµÄ²úÆ·¡£

ÔÚÍøÂç·ÓÉÄÜÁ¦·½ÃæÒ²ÓкܶàǷȱ£¬ÉÏÃæÊÇ knative ÔÚÎĵµÖÐÁгöÀ´µÄÐèÇóÁÐ±í¡£

×îºóÁÄÁÄ knative µÄ¿É°Î²åÉè¼Æ£¬ÕâÊÇ knative Ôڼܹ¹Éè¼ÆÉϵÄÒ»¸ö»ù±¾ÔÔò£º¶¥²ãËÉñîºÏ£¬µ×²ã¿É°Î²å¡£
×î¶¥²ãÊÇ Build / Serving / Eventing Èý´ó×é¼þ£¬ÖмäÊǸ÷ÖÖÄÜÁ¦£¬Í¨¹ý k8s
µÄ CRD ·½Ê½À´½øÐÐÉùÃ÷£¬È»ºóµ×²ãÊǸ÷ÖÖʵÏÖ£¬°´ÕÕ CRD µÄÒªÇó½øÐоßÌåµÄʵÏÖ¡£
ÔÚÕâ¸öÌåϵÖУ¬Óû§½Ó´¥µÄÊÇ Build / Serving / Eventing ͨÓÃ×é¼þ£¬Í¨¹ýͨ¹ý±ê×¼µÄ
CRD ½øÐÐÐÐΪ¿ØÖÆ£¬¶øºÍµ×²ã¾ßÌåµÄʵÏÖ½âñî¡£ÀíÂÛÉÏ£¬Ö®ºóÔÚʵÏÖ²ã×öÊÊÅ䣬knative ¾Í¿ÉÒÔÔËÐÐÔÚ²»Í¬µÄµ×²ã
serverless ʵÏÖÉÏ¡£´Ó¶øÊµÏÖ knative µÄÕ½ÂÔÄ¿±ê£ºÌṩ serverless µÄͨÓÃÆ½Ì¨£¬ÊµÏÖ
serverless µÄ±ê×¼»¯ºÍ¹æ·¶»¯¡£
×ܽá

×îºó£¬ÎÒÃÇ¶Ô knative ×öÒ»¸ö¼òµ¥×ܽᡣ

ÏÈ̸һÏ knative µÄÓÅÊÆ£¬Ê×ÏÈÊÇ knative ×ÔÉíµÄ¼¸µã£º
²úÆ·¶¨Î»×¼È·£ºÕë¶ÔÊг¡ÏÖ×´£¬²»×ö¾ºÕùÕß¶øÊÇ×öƽ̨
¼¼Êõ·½ÏòÃ÷È·£º»ùÓÚ k8s£¬×ß cloud native ·½Ïò
ÍÆ³öʱ»ú¾«×¼£ºk8s ´óÊÆÒѳɣ¬istio ½Ó½ü³ÉÊì
È»ºó£¬ÔÙ´ÎÇ¿µ÷£ºkubernetes + service mesh + serverless µÄ×éºÏ£¬ÔÚÓúõÄǰÌáÏ£¬Ó¦¸ÃÍþÁ¦²»·²¡£
´ËÍ⣬knative ÔÚ¸ºÔصÄÖ§³ÅÉÏ£¬²»¾ÐÄàÓÚ´«Í³µÄFaaS£¬¿ÉÒÔÖ§³Ö BaaS ºÍ´«Í³Ó¦Óã¬ÔÚÂäµØÊ±ÊÊÓÃÐÔ»á¸üºÃ£¬Ê¹Óó¡¾°»á¸ü¹ã·º¡££¨±¸×¢£ºÔÚÕâÀïÎÒ¸öÈËÓиö²Â²â£¬knative
Ãû×ÖÖÐ native ¿ÉÄÜÖ¸µÄÊÇ native workload£¬¼´ÔÚ k8s ºÍ cloud native
ÓïÒåϵÄÔÉú¹¤×÷¸ºÔØ£¬Èç¹ûÊÇÕâÑù£¬ÄÇô google ºÍ knative µÄÕâÅÌÆå¾ÍϵÄÓеã´óÁË¡££©
×îºó£¬¿¼Âǵ½Ä¿Ç° serverless µÄÊг¡ÏÖ×´£¬¶Ô serverless ×ö±ê×¼»¯ºÍ¹æ·¶»¯£¬³öÏÖÒ»¸ö
serverless ƽ̨£¬ËƺõÒ²ÊÇÒ»¸ö²»´íµÄÑ¡Ôñ¡£ÔÙ¿¼Âǵ½ google À£´óÀкÍÉçÇøÒ»Æð¸ÉµÄÒ»¹á·ç¸ñ£¬Ð¯
k8s ºÍ cloud native µÄ´óÊÆºÜÓпÉÄÜʵÏÖÕâ¸öÄ¿±ê¡£
µ±È»£¬knative Ŀǰ´æÔÚµÄÎÊÌâÒ²ºÜÃ÷ÏÔ£¬Ï¸½Ú²»Ëµ£¬ÕûÌåÉϸöÈ˸оõÓУº
³ÉÊì¶È£ºÄ¿Ç°²Å 0.2 °æ±¾£¬ÊµÔÚÌ«ÔçÆÚ£¬Ì«¶à¶«Î÷»¹ÔÚ¿ª·¢ÉõÖÁ¹æ»®ÖС£Ï£ÍûËæ×Åʱ¼äµÄÍÆÒÆºÍ°æ±¾Ñݽø£¬knative
Äܾ¡¿ì×ßÏò³ÉÊì¡£
¸´ÔÓ¶È£º³ÉÊì¶ÈµÄÎÊÌ⻹ºÃ˵£¬×ÜÄÜÒ»²½Ò»²½¸ÄÉÆµÄ£¬ÎÞ·ÇÊÇʱ¼äÎÊÌâ¡£µ«ÊÇ knative µÄϵͳ¸´ÔӶȹý¸ßµÄÎÊÌ⣬Ŀǰ¿´À´¼¸ºõÊDz»¿É±ÜÃâµÄ¡£
×îºó£¬¶Ô knative µÄ×ܽᣬ¾ÍÒ»¾ä»°£ºÇ°Í¾²»¿ÉÏÞÁ¿£¬µ«Êdzɳ¤ÐèҪʱ¼ä¡£ÈÃÎÒÃÇÊÃÄ¿ÒÔ´ý¡£
|