Knative是一套简单易用的开源Serverless架构方案。
Knative由三个核心组件构成:

  • Build,构建系统,将用户定义的代码和应用构建成Docker镜像;
  • Serving,服务系统,用于配置应用的路由、升级册罗、自动扩缩容等;
  • Events,事件系统,用于自动完成事件的绑定和出发。

    Knative Serving

    核心功能包括:

  • 蓝绿发布功能、回滚功能

  • 监控应用的请求,并自动扩缩容
  • 自动启动和销毁容器
  • 根据名字生成网络访问相关的Service、Ingress对象

    Serving Resources

    image.png

  • Service, 管理作业的整个声明周期。确保每个应用有一个路由、一个配置、以及为每次更新创建新的迭代保本。

  • Route,管理到一至多个revision的网络
  • Configuration,目标态管理,每次修改创建一个新的revision
  • Revision,每次代码或配置修改会创建新的revision,不可直接修改。根据流量自动扩容或缩容。

    istio plugin

    在使用knative serving的istio插件时,knative route会创建knative ingress,进而创建istio gateway与istio virtual service。
    相应的配置可查看:

  • kubectl edit configmap -nknative-serving config-istio (参考:https://knative.dev/docs/install/installing-istio/)

  • https://knative.dev/docs/serving/setting-up-custom-ingress-gateway/
  • kubectl edit configmap -nknative-serving config-domain (参考:https://knative.dev/docs/serving/cluster-local-route/