Deploy Image 插件(deploy-image/v1-alpha)

deploy-image 插件允许用户创建用于在集群中部署与管理容器镜像的控制器与自定义资源,遵循 Kubernetes 最佳实践。它简化了部署镜像的复杂性,同时允许用户按需自定义项目。

使用该插件,你将获得:

  • 一个在集群中部署与管理 Operand(镜像)的控制器实现
  • 使用 ENVTEST 的测试,以验证调谐逻辑
  • 已填充必要规格的自定义资源样例
  • 在 manager 中用于管理 Operand(镜像)的环境变量支持

何时使用?

  • 该插件非常适合刚开始接触 Kubernetes Operator 的用户
  • 它帮助用户使用Operator 模式 来部署并管理镜像(Operand)
  • 如果你在寻找一种快速高效的方式来搭建自定义控制器并管理容器镜像,该插件是上佳选择

如何使用?

  1. 初始化项目: 使用 kubebuilder init 创建新项目后,你可以使用该插件创建 API。在继续之前,请确保已完成快速开始

  2. 创建 API: 使用该插件,你可以创建 API 以指定要在集群上部署的镜像(Operand)。你还可以通过参数选择性地指定命令、端口与安全上下文:

    示例命令:

    kubebuilder create api --group example.com --version v1alpha1 --kind Memcached --image=memcached:1.6.15-alpine --image-container-command="memcached,--memory-limit=64,modern,-v" --image-container-port="11211" --run-as-user="1001" --plugins="deploy-image/v1-alpha"
    

子命令

deploy-image 插件包含以下子命令:

  • create api:使用该命令为管理容器镜像生成 API 与控制器代码

受影响的文件

当使用该插件的 create api 命令时,除了 Kubebuilder 现有的脚手架外,以下文件会受到影响:

  • controllers/*_controller_test.go:为控制器生成测试
  • controllers/*_suite_test.go:生成或更新测试套件
  • api/<version>/*_types.go:生成 API 规格
  • config/samples/*_.yaml:为自定义资源生成默认值
  • main.go:更新以添加控制器初始化
  • config/manager/manager.yaml:更新以包含用于存储镜像的环境变量

更多资源

  • 查看此视频了解其工作方式