《kubernetes源码剖析》- 资源创建流程


| 阅读 |,阅读约 1 分钟
| 复制链接:

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
  • 本地文件
  • 网络文件

Visitor多层匿名函数嵌套