Knative是一套简单易用的开源Serverless架构方案。
Knative由三个核心组件构成:
- Build,构建系统,将用户定义的代码和应用构建成Docker镜像;
- Serving,服务系统,用于配置应用的路由、升级册罗、自动扩缩容等;
-
Knative Serving
核心功能包括:
蓝绿发布功能、回滚功能
- 监控应用的请求,并自动扩缩容
- 自动启动和销毁容器
根据名字生成网络访问相关的Service、Ingress对象
Serving Resources
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/)