本文QQ空间的链接:http://user.qzone.qq.com/29185807/blog/1461036130
本文csdn博文的链接:http://blog.youkuaiyun.com/screscent/article/details/51188790
源码为k8s v1.1.1
1、原因
首先讲讲为啥,我们要讲解Factory
代码在k8s.io\kubernetes\cmd\kubectl
先从main函数入口来说
main函数很简单,进来就直接构建了一个cmd,然后调用了Execute
而cmd里面的参数除了几个标准的输入输出之外,就只有一个NewFactory

下面我们继续看看NewKubectlCommand,在函数中,构建了很多cmd的,每个cmd传入进去的参数也是Factory
代码在k8s.io\kubernetes\pkg\kubectl\cmd

我们简单的看一个NewCmdCreate

很明显在Run中最重要的函数是RunCreate

而在RunCreate中,所有的重要参数都是有Factory产出
所以在分析kubectl命令之前,我们先分析下Factory。
2、构建
代码在k8s.io\kubernetes\pkg\kubectl\cmd\util
下面是源码中的注释
Factory provides abstractions that allow the Kubectl command to be extended across multiple types of resources and different API sets.
主要的含义就是Factory提供了一些抽象动作,目的就是用于kubectl command可以扩展很多不同的类型和不同的api(英文翻译的不好,大致就是这个意思)


本文详细探讨了k8s kubectl命令的Factory构建过程,包括mapper、Generator及其子类BasicReplicationController、BasicPod、ServiceGenerator的实现。Factory提供资源和API集的扩展抽象,用于构建不同类型的cmd。核心组件如mapper、Generator和clients的初始化及功能,如Object、Client和RESTClient的获取,都在Factory中实现。
最低0.47元/天 解锁文章
1206

被折叠的 条评论
为什么被折叠?



