《kubernetes源码剖析》- 资源创建流程
| 阅读 | 共 470 字,阅读约
Overview
简介
k8s中的资源创建方法有很多中,本文以kubectl create
命令创建Deployment
资源对象的过程进行分析。大体流程包括:
- 实例化Factory接口
- 通过Builder和Visitor将yaml文件文本格式转换为资源对象
- 资源对象以http请求的方式发送给kube-apiserver
- 并得到结果响应,并判断是否创建成功
实例化Factory接口
- 执行每一个kubectl命令之前,都需要执行实例化Factory接口对象的操作
- Factory是一个通用对象,提供与apiserver的交互方式,以及验证资源对象的方法
源码位置:pkg/kubectl/cmd/cmd.go
1
Builder构建资源对象
- Builder用于将命令行获取的参数转换成资源对象
- 类似于Builder建造者模式,提供了一种实例化对象的最佳方式
源码位置:pkg/kubectl/cmd/create/create.go
1
FilenameParam函数用于识别 kubectl create 命令行参数是通过哪种方式传入资源描述文件的。支持三种方式:
- 标准输入 Stdin
- 本地文件
- 网络文件