Kubebuilder v1 与 v2(从遗留的 v1.0.0+ 到 v2.0.0 的 Kubebuilder CLI 版本)
本文件涵盖了从 v1 迁移到 v2 时的所有重大变更。
所有更改的详细信息(无论是重大更改还是其他更改)可以在 controller-runtime、controller-tools 和 kubebuilder 的发布说明中找到。
常见变更
V2 项目使用 Go 模块。但是 kubebuilder 将继续支持 dep
,直到 Go 1.13 发布。
控制器-runtime
-
Client.List
现在使用函数选项 (List(ctx, list, ...option)
) 而不是List(ctx, ListOptions, list)
。 -
Client.DeleteAllOf
被添加到Client
接口中。 -
指标现在默认开启。
-
在
pkg/runtime
下的一些包已被移动,其旧位置已被弃用。旧位置将在 controller-runtime v1.0.0 之前删除。有关更多信息,请参见 godocs。
与Webhook相关的
-
已移除自动生成 Webhook 的证书功能,Webhook 将不再自动注册。请使用 controller-tools 生成 Webhook 配置。如果您需要证书生成,我们推荐使用 cert-manager。Kubebuilder v2 将为您生成 cert-manager 配置 - 有关更多详细信息,请参阅 Webhook 教程。
-
builder
包现在有了单独的控制器和网络钩子构建器,这使得选择要运行的构建器更加方便。
控制器工具
生成器框架在 v2 中进行了重写。在许多情况下,它仍然与之前的工作方式相同,但请注意,有一些重大更改。有关更多详细信息,请查看 标记文档。
Kubebuilder
-
Kubebuilder v2 引入了简化的项目布局。你可以在 这里 找到设计文档。
-
在 v1 中,管理器作为
StatefulSet
部署,而在 v2 中,它作为Deployment
部署。 -
kubebuilder create webhook
命令用于搭建变更/验证/转换 Webhook,取代了kubebuilder alpha webhook
命令。 -
v2 使用
distroless/static
作为基础镜像,而不是 Ubuntu。这减少了镜像大小和攻击面。 -
v2 需要 kustomize v3.1.0 及以上版本。