The CustomResourceDefinition "applications.apps.abc.com" is invalid: metadata.annotations: Too long: must have at most 262144 bytes
参考文章:
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 ....
知识是我们已知的
也是我们未知的
基于已有的知识之上
我们去发现未知的
由此,知识得到扩充
我们获得的知识越多
未知的知识就会更多
因而,知识扩充永无止境

浙公网安备 33010602011771号