【原创】k8s源码分析-----kubectl(3)主要框架

本文详细分析了k8s kubectl命令的执行流程,包括从main函数开始,到kubectlcommand、cmdCreate的实现,以及visitor模式在构建visitors中的应用。重点介绍了URLVisitor、FileVisitor、streamVisitor、selectorVisitor和infoVisitor,还有builder如何根据不同的输入参数构建visitors。同时,阐述了Info visitor的工作原理,涉及RESTClient和Helper的角色。整个设计思路清晰,适合对k8s源码感兴趣的读者深入理解。
摘要由CSDN通过智能技术生成

本文QQ空间的链接:http://user.qzone.qq.com/29185807/blog/1461123088

本文csdn博文的链接:http://blog.csdn.net/screscent/article/details/51199351

 

源码为k8s v1.1.1

 

1、整体流程

我们先整体的流程走一遍,不用太过于关心看不看的懂,先有个整体的流程概念,后续再一步一步分析

1.1 main

先从main开始

代码在k8s.io\kubernetes\cmd\kubectl\kubectl.go

其中的Factory我们已经分析过了,可以看(【原创】k8s源码分析-----kubectl(2)Factory

 

1.2 kubectlcommand

接着我们继续往下看

代码在k8s.io\kubernetes\pkg\kubectl\cmd\cmd.go

这里采用了第三方库github.com/spf13/cobra,如果不了解的可以看下用法介绍https://github.com/spf13/cobra

 

在一级cmd下,添加了很多的二级cmd,如NewCmdCreate,NewCmdGet,NewCmdDelete等

 

1.3 cmdCreate

这里我们就以NewCmdCreate为例,继续跟踪

 

代码在Z:\work\mywork\trunk\src\k8s.io\kubernetes\pkg\kubectl\cmd\create.go

上面先是从Factory里获取一系列参数,然后通过NewBuilder的一系列动作,获取到了Result

接着调用了Result的visit函数,并传入了回调函数

 

1.4 小结

1、利用第三方库github.com/spf13/cobra构建多级command

2、利用Factory对参数识别,并做一些处理

3、利用builder进行构建visitors

4、对builder构建的visitors,进行处理

 

整体上来看,流程还是很清晰的。主要部分有Factory,已经有讲解过了。再接着就是builder࿰

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值