±à¼ÍƼö: |
Knative
Ö÷ÒªÓÉ Build¡¢Serving ºÍ Eventing Èý´óºËÐÄ×é¼þ¹¹³É£¬±¾ÎÄÖ÷Òª½éÉÜÁËÕâÈý´óºËÐÄ×é¼þ£¬Ï£Íû¶ÔÄãÓаïÖú¡£
À´×ÔÓÚ°Ù¶È£¬ÓÉ»ðÁú¹ûÈí¼þLinda±à¼¡¢ÍƼö¡£ |
|
Knative Ö÷ÒªÓÉ Build¡¢Serving ºÍ Eventing
Èý´óºËÐÄ×é¼þ¹¹³É¡£Knative ÕýÊÇÒÀ¿¿ÕâÈý¸öºËÐÄ×é¼þ£¬Çý¶¯×Å Knative ÕâËÒ Serverless
¾ÞÂÖǰÐС£ÏÂÃæÈÃÎÒÃÇÀ´·Ö±ð½éÉÜÒ»ÏÂÕâÈý¸öºËÐÄ×é¼þ¡£
Build
Knative Build ÊÇ»ùÓÚÏÖÓÐµÄ Kubernetes ÄÜÁ¦Ö®ÉÏ£¬ÌṩµÄÒ»Ì×±ê×¼»¯¡¢¿ÉÒÆÖ²¡¢¿É¸´ÓõÄÈÝÆ÷¾µÏñ¹¹½¨·½Ê½¡£Í¨¹ýÔÚ
Kubernetes ÉÏÔËÐи´ÔӵĹ¹½¨ÈÎÎñ£¬Knative Build ʹÄã²»±ØÔÙµ¥¶À¿ª·¢ºÍÖØ¸´ÕâЩ¾µÏñ¹¹½¨¹ý³Ì£¬
´Ó¶øÍ¨¹ýϵͳ»¯¡¢¹¤³Ì»¯µÄ·½Ê½£¬¼õÉÙÁ˾µÏñ¹¹½¨Ê±¼ä¼°³É±¾¡£
Build ͨ¹ý Kubernetes ×Ô¶¨Òå×ÊÔ´¶¨Òå(CRD)ʵÏÖ¡£ ͨ¹ý Build Äã¿ÉÒÔ×Ô¶¨ÒåÒ»¸ö´ÓÔËÐе½½áÊøµÄ¹¹½¨Á÷³Ì¡£ÀýÈ磬¿ÉÒÔʹÓÃ
Knative Build À´»ñÈ¡¡¢¹¹½¨ºÍ´ò°ü´úÂë¡£Build ¾ß±¸ÒÔϹ¦ÄÜ£º
Ö§³Ö Source Ô´¹ÒÔØ£¬Ä¿Ç°Ö§³ÖµÄ Source Ô´°üÀ¨£º
git ´úÂë²Ö¿â
ÈÎÒâÈÝÆ÷¾µÏñ
Ö§³Öͨ¹ý BuildTemplate ´´½¨¿ÉÖØ¸´Ö´Ðй¹½¨µÄÄ£°å
Ö§³Ö K8s ServiceAccount Éí·ÝÑéÖ¤
µäÐ͵ÄBuildʾÒâͼ£º

ËäȻĿǰ Knative Build ²¢²»ÌṩÍêÕûµÄ¶ÀÁ¢ CI/CD ½â¾ö·½°¸£¬µ«ËüÈ´ÌṩÁËÒ»¸öµ×²ãµÄ¹¹½¨Ä£¿é£¬Óû§¿Éµ¥¶ÀʹÓøù¹½¨Ä£¿éÔÚ´óÐÍϵͳÖÐʵÏÖ¼¯³ÉºÍÀûÓá£
Serving
Knative ×÷Ϊ Severless ¿ò¼Ü×îÖÕÊÇÓÃÀ´Ìṩ·þÎñµÄ£¬ ÄÇô Knative Serving
Ó¦Ô˶øÉú¡£
Knative Serving ¹¹½¨ÓÚ Kubernetes ºÍ Istio Ö®ÉÏ£¬Îª Serverless
Ó¦ÓÃÌṩ²¿ÊðºÍ·þÎñÖ§³Ö¡£ÆäÌØÐÔÈçÏ£º
¿ìËÙ²¿Êð Serverless ÈÝÆ÷
Ö§³Ö×Ô¶¯À©ËõÈݺÍËõµ½ 0 ʵÀý
»ùÓÚ Istio ×é¼þ£¬Ìṩ·ÓɺÍÍøÂç±à³Ì
Ö§³Ö²¿Êð¿ìÕÕ
Knative Serving Öж¨ÒåÁËÒÔÏ CRD ×ÊÔ´£º
Service: ×Ô¶¯¹ÜÀí¹¤×÷¸ºÔØÕû¸öÉúÃüÖÜÆÚ¡£¸ºÔð´´½¨ Route¡¢Configuration
ÒÔ¼° Revision ×ÊÔ´¡£Í¨¹ý Service ¿ÉÒÔÖ¸¶¨Â·ÓÉÁ÷Á¿Ê¹ÓÃ×îÐ嵀 Revision »¹Êǹ̶¨µÄ
Revision
Route£º¸ºÔðÓ³ÉäÍøÂç¶Ëµãµ½Ò»¸ö»ò¶à¸ö Revision¡£¿ÉÒÔͨ¹ý¶àÖÖ·½Ê½¹ÜÀíÁ÷Á¿¡£°üÀ¨»Ò¶ÈÁ÷Á¿ºÍÖØÃüÃû·ÓÉ
Configuration: ¸ºÔð±£³Ö Deployment µÄÆÚÍû״̬£¬ÌṩÁË´úÂëºÍÅäÖÃÖ®¼äÇåÎúµÄ·ÖÀ룬²¢×ñÑÓ¦Óÿª·¢µÄ
12 ÒªËØ¡£ÐÞ¸ÄÒ»´Î Configuration ²úÉúÒ»¸ö Revision
Revision£ºRevision ×ÊÔ´ÊǶԹ¤×÷¸ºÔؽøÐеÄÿ¸öÐ޸ĵĴúÂëºÍÅäÖõÄʱ¼äµã¿ìÕÕ¡£Revision
ÊDz»¿É±ä¶ÔÏ󣬿ÉÒÔ³¤ÆÚ±£Áô
×ÊÔ´¹ØÏµÍ¼£º

Eventing
Knative Eventing Ö¼ÔÚÂú×ãÔÆÔÉú¿ª·¢ÖÐͨÓÃÐèÇó, ÒÔÌṩ¿É×éºÏµÄ·½Ê½°ó¶¨Ê¼þÔ´ºÍʼþÏû·ÑÕß¡£ÆäÉè¼ÆÄ¿±ê£º
Knative Eventing ÌṩµÄ·þÎñÊÇËÉÉ¢ñîºÏ£¬¿É¶ÀÁ¢¿ª·¢ºÍ²¿Êð¡£·þÎñ¿É¿çƽ̨ʹÓã¨Èç Kubernetes,
VMs, SaaS »òÕß FaaS£©
ʼþµÄÉú²úÕߺÍʼþµÄÏû·ÑÕßÊÇÏ໥¶ÀÁ¢µÄ¡£ÈκÎʼþµÄÉú²úÕߣ¨Ê¼þÔ´£©¿ÉÒÔÏÈÓÚʼþµÄÏû·ÑÕß¼àÌý֮ǰ²úÉúʼþ£¬Í¬ÑùʼþµÄÏû·ÑÕß¿ÉÒÔÏÈÓÚʼþ²úÉú֮ǰ¼àÌýʼþ
Ö§³ÖµÚÈý·½µÄ·þÎñ¶Ô½Ó¸Ã Eventing ϵͳ
È·±£¿ç·þÎñµÄ»¥²Ù×÷ÐÔ
ʼþ´¦ÀíʾÒâͼ£º

ÈçÉÏͼËùʾ£¬Eventing Ö÷ÒªÓÉʼþÔ´£¨Event Source£©¡¢Ê¼þ´¦Àí£¨Flow£©ÒÔ¼°Ê¼þÏû·ÑÕߣ¨Event
Consumer£©Èý²¿·Ö¹¹³É¡£
ʼþÔ´£¨Event Source£©
µ±Ç°Ö§³ÖÒÔϼ¸ÖÖÀàÐ͵ÄʼþÔ´£º
ApiserverSource£ºÃ¿´Î´´½¨»ò¸üРKubernetes ×ÊԴʱ£¬ApiserverSource
¶¼»á´¥·¢Ò»¸öÐÂʼþ
GitHubSource£ºGitHub ²Ù×÷ʱ£¬GitHubSource »á´¥·¢Ò»¸öÐÂʼþ
GcpPubSubSource£º GCP ÔÆÆ½Ì¨ Pub/Sub ·þÎñ»á´¥·¢Ò»¸öÐÂʼþ
AwsSqsSource£ºAws ÔÆÆ½Ì¨ SQS ·þÎñ»á´¥·¢Ò»¸öÐÂʼþ
ContainerSource: ContainerSource ½«ÊµÀý»¯Ò»¸öÈÝÆ÷£¬Í¨¹ý¸ÃÈÝÆ÷²úÉúʼþ
CronJobSource: ͨ¹ý CronJob ²úÉúʼþ
KafkaSource: ½ÓÊÕ Kafka ʼþ²¢´¥·¢Ò»¸öÐÂʼþ
CamelSource: ½ÓÊÕ Camel Ïà¹Ø×é¼þʼþ²¢´¥·¢Ò»¸öÐÂʼþ
ʼþ½ÓÊÕ/ת·¢£¨Flow£©
µ±Ç° Knative Ö§³ÖÈçÏÂʼþ½ÓÊÕ´¦Àí£º
Ö±½Óʼþ½ÓÊÕ
ͨ¹ýʼþÔ´Ö±½Óת·¢µ½µ¥Ò»Ê¼þÏû·ÑÕß¡£Ö§³ÖÖ±½Óµ÷Óà Knative Service »òÕß Kubernetes
Service ½øÐÐÏû·Ñ´¦Àí¡£ÕâÑùµÄ³¡¾°Ï£¬Èç¹ûµ÷ÓõķþÎñ²»¿ÉÓã¬Ê¼þÔ´¸ºÔðÖØÊÔ»úÖÆ´¦Àí¡£
ͨ¹ýʼþͨµÀ(Channel)ÒÔ¼°Ê¼þ¶©ÔÄ(Subscriptions)ת·¢Ê¼þ´¦Àí
ÕâÑùµÄÇé¿öÏ£¬¿ÉÒÔͨ¹ý Channel ±£Ö¤Ê¼þ²»¶ªÊ§²¢½øÐлº³å´¦Àí£¬Í¨¹ý Subscriptions
¶©ÔÄʼþÒÔÂú×ã¶à¸öÏû·Ñ¶Ë´¦Àí¡£
ͨ¹ý brokers ºÍ triggers Ö§³ÖʼþÏû·Ñ¼°¹ýÂË»úÖÆ
´Ó v0.5 ¿ªÊ¼£¬Knative Eventing ¶¨Òå Broker ºÍ Trigger ¶ÔÏó£¬ÊµÏÖÁ˶Ôʼþ½øÐйýÂË£¨ÒàÈçͨ¹ý
ingress ºÍ ingress controller ¶ÔÍøÂçÁ÷Á¿µÄ¹ýÂËÒ»Ñù£©¡£
ͨ¹ý¶¨Òå Broker ´´½¨ Channel£¬Í¨¹ý Trigger ´´½¨ Channel µÄ¶©ÔÄ£¨subscription£©£¬²¢²úÉúʼþ¹ýÂ˹æÔò¡£
ʼþÏû·ÑÕߣ¨Event Consumer£©
ΪÁËÂú×㽫ʼþ·¢Ë͵½²»Í¬ÀàÐ͵ķþÎñ½øÐÐÏû·Ñ£¬ Knative Eventing ͨ¹ý¶à¸ö k8s
×ÊÔ´¶¨ÒåÁËÁ½¸öͨÓõĽӿڣº
Addressable ½Ó¿ÚÌṩ¿ÉÓÃÓÚʼþ½ÓÊպͷ¢Ë굀 HTTP ÇëÇóµØÖ·£¬²¢Í¨¹ý
status.address.hostname
×ֶζ¨Òå¡£×÷ΪһÖÖÌØÊâÇé¿ö£¬Kubernetes Service ¶ÔÏóÒ²¿ÉÒÔʵÏÖ Addressable
½Ó¿Ú
Callable ½Ó¿Ú½ÓÊÕͨ¹ý HTTP ´«µÝµÄʼþ²¢×ª»»Ê¼þ¡£¿ÉÒÔ°´ÕÕ´¦ÀíÀ´×ÔÍⲿʼþԴʼþµÄÏàͬ·½Ê½£¬¶ÔÕâЩ·µ»ØµÄʼþ×ö½øÒ»²½´¦Àí
µ±Ç° Knative Ö§³Öͨ¹ý Knative Service »òÕß Kubernetes Service
½øÐÐÏû·Ñʼþ¡£
ÁíÍâÕë¶ÔʼþÏû·ÑÕߣ¬ÈçºÎÊÂÏÈÖªµÀÄÄЩʼþ¿ÉÒÔ±»Ïû·Ñ£¿ Knative Eventing ÔÚ×îÐ嵀 0.6
°æ±¾ÖÐÌṩ Registry ʼþ×¢²á»úÖÆ, ÕâÑùʼþÏû·ÑÕ߾ͿÉÒÔÊÂÏÈͨ¹ý Registry »ñµÃÄÄЩ
Broker ÖеÄʼþÀàÐÍ¿ÉÒÔ±»Ïû·Ñ¡£
×ܽá
Knative ʹÓà Build Ìá¹©ÔÆÔÉú¡°´ÓÔ´´úÂëµ½ÈÝÆ÷¡±µÄ¾µÏñ¹¹½¨ÄÜÁ¦£¬Í¨¹ý Serving
²¿ÊðÈÝÆ÷²¢ÌṩͨÓõķþÎñÄ£ÐÍ£¬Í¬Ê±ÒÔ Eventing ÌṩʼþÈ«¾Ö¶©ÔÄ¡¢´«µÝºÍ¹ÜÀíÄÜÁ¦£¬ÊµÏÖʼþÇý¶¯¡£Õâ¾ÍÊÇ
Knative ³ÊÏÖ¸øÎÒÃǵıê×¼ Serverless ±àÅÅ¿ò¼Ü¡£
|