从HelloWorld看Knative Serving代码实现( 七 )
Service
首先我们要从Service来看 , 因为我们一开始的输入就是Service资源 。 在/pkg/reconciler/v1alpha1/service/service.go 。
比较简单 , 就是根据Service创建Configuration和Route资源
Route
/pkg/reconciler/v1alpha1/route/route.go
看一下Route中reconcile做了哪些处理:
1.判断是否有Ready的Revision可进行traffic
2.设置目标流量的Revision(runLatest:使用最新的版本;pinned:固定版本 , 不过已弃用;release:通过允许在两个修订版之间拆分流量 , 逐步扩大到新修订版 , 用于替换pinned 。 manual:手动模式 , 目前来看并未实现)
3.创建ClusterIngress:Route不直接依赖于VirtualService[https://istio.io/docs/reference/config/istio.networking.v1alpha3/#VirtualService
而是依赖一个中间资源ClusterIngress , 它可以针对不同的网络平台进行不同的协调 。 目前实现是基于istio网络平台 。
推荐阅读
- 最详细的SpringBoot入门项目——HelloWorld
- 2分钟上手、3小时学会无代码软件开发---开发案例HelloWorld
- Knative 实战:三步走!基于 Knative Serverless 技术实现一个短网址服务
- 深入解读 Knative Eventing 0.7 版本新特性
- 业界 | TensorFlow 携手 NVIDIA,使用 TensorRT 优化 TensorFlow Serving 性能