本文内容源自 2023.05.09 k8s官方博客
作者: Katrina Verey(独立个人)和 Justin Santa Barbara (Google)
译者: Michael Yao (DaoCloud)
通过 命令执行声明式配置管理是创建或修改 Kubernetes 资源的黄金标准方法。但这种方法也带来了一个挑战,那就是删除不再需要的资源。在 Kubernetes 1.5 版本中,引入了 标志来解决此问题, 允许 自动清理从当前配置中删除的先前应用的资源。
然而,现有的 实现存在设计缺陷,会降低性能并导致意外行为。主要问题源于先前的 操作未对已应用的集合进行显式编码,有必要进行易错的动态发现。对象泄漏、意外过度选择资源以及与自定义资源的有限兼容性是这种实现的一些明显缺点。此外,其与客户端 apply 的耦合阻碍了用户升级到更优秀的服务器端 apply 方式。
的 1.27 版本引入了 Alpha 版本的重构裁剪实现,解决了这些问题。这个基于 ApplySet 概念的新实现承诺能够提供更好的性能和更好的安全性。
ApplySet 是一个与集群上的父对象相关联的资源组,通过标准化的标签和注解进行标识和配置。附加的标准化元数据允许准确标识集群内的 ApplySet 成员对象,简化了裁剪等操作。
为了充分利用基于 ApplySet 的裁剪,设置 环境变量, 并在 调用中包括标志 和 :
默认情况下,ApplySet 使用 Secret 作为父对象。但是,你也可以通过格式 来使用 ConfigMap。如果所需的 Secret 或 ConfigMap 对象尚不存在,则 将为你创建它。此外,可以启用自定义资源以用作 ApplySet 父对象。
ApplySet 实现基于新的底层规约,可以通过提高其互操作性来支持更高层次的生态系统工具。这种规约的轻量性使得这些工具可以继续使用现有的对象分组系统, 同时选用 ApplySet 的元数据约定以防被其他工具(例如 )意外更改。
如果你想参与 ApplySet 的开发,可以联系 SIG CLI 的开发人员。如需提供有关此特性的反馈,请在 代码库上提交 bug 或提出增强请求。
领取专属 10元无门槛券
私享最新 技术干货