从HelloWorld看Knative Serving代码实现( 九 )

Revision

/pkg/reconciler/v1alpha1/revision/revision.go
1.获取build进度
2.设置镜像摘要
3.创建deployment
4.创建k8s service:根据Revision构建服务访问Service
5.创建fluentd configmap
6.创建KPA
感觉这段代码写的很优雅 , 函数执行过程写的很清晰 , 值得借鉴 。 另外我们也可以发现 , 目前knative只支持deployment的工作负载

最后我们看一下生成的Revision资源:

这里我们可以看到访问域名helloworld-go.default.svc.cluster.local , 以及当前revision的流量配比(100%)这样我们分析完之后 , 现在打开Serving这个黑盒:

最后

这里只是基于简单的例子 , 分析了主要的业务流程处理代码 。 对于activator(如何唤醒业务容器) , autoscaler(Pod如何自动缩为0)等代码实现有兴趣的同学可以一起交流 。

参考

推荐阅读