












参考文章:
https://medium.com/pareture/kubectl-install-crd-failed-annotations-too-long-2ebc91b40c7d
原因:
使用kubectl apply创建或更新资源时,系统都会自动添加一个名为kubectl.kubernetes.io/last-applied-configuration的元数据注解(metadata.annotation)。该注解是一个记录上次应用配置的JSON文档。通常情况下这不会引发问题,但在极少数情况下(例如处理大型CRD时),可能会因表面上的大小限制而导致问题。
解决方案:
使用 kubectl create 创建 CRD
使用 kubectl replace 更新 CRD
这两种方式不会添加 last-applied-configuration 字段。当然,你也可以先用 apply 创建 CRD,再针对过长的特定 CRD 改用 create 或 replace 操作
如果使用的是 Kubernetes v1.22 或更高版本,可以采用服务端应用(Server-Side Apply)。这是一种声明式管理方式,允许多个控制器通过部分配置(partial configurations)协同管理工作负载的不同部分,且不会使用客户端应用(Client-Side Apply)所依赖的注解。
使用方式:
kubectl apply --server-side -f ....
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。