部署图像插件 (deploy-image/v1-alpha)

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

通过使用此插件,您将获得:

  • 一个控制器实现,用于在集群上部署和管理操作数(镜像)。
  • 测试以验证对账逻辑,使用 ENVTEST
  • 自定义资源样本已更新至所需规格。
  • 环境变量支持用于管理管理器中的操作数(镜像)。

什么时候使用它?

  • 这个插件非常适合刚开始使用 Kubernetes operator 的用户。
  • 它帮助用户使用Operator模式部署和管理镜像(操作数)。
  • 如果您正在寻找一种快速有效的方法来设置自定义控制器并管理容器镜像,这个插件是一个很好的选择。

如何使用它?

  1. 初始化您的项目:在使用 kubebuilder init 创建新项目后,您可以使用此插件来创建 API。在继续之前,请确保您已完成 快速入门 指南。

  2. 创建 API:使用此插件,您可以创建 API,以指定您想要在集群上部署的图像(操作数)。您还可以使用各种标志可选地指定命令、端口和安全上下文:

    示例命令:

    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/<版本>/*_types.go:搭建 API 规范。
  • config/samples/*_.yaml: 为自定义资源提供默认值的框架。
  • main.go: 更新文件以添加控制器设置。
  • config/manager/manager.yaml:更新以包含用于存储图像的环境变量。

更多资源:

  • 查看这个 视频 来了解它是如何工作的。