skoala-init 的 x-kubernets-validations 报错问题¶
将 skoala-init 从 v0.11.0 升级到 v0.12.0 时报错导致无法升级:
排查过程¶
-
Q: 操作步骤是否正确?
A: 先 kubectl apply CRD(s),再 helm upgrade,所以此操作步骤无误,排除操作问题.
-
Q: 版本是 QA 测试通过版本,且内部测试时升级功能正常?
A: 确认无误。
-
Q: 确认使用版本与测试时使用的 k8s 集群版本?
A: v1.21 (使用版本) ,v1.26 (测试版本)。
-
Q: 至此及根据相应的错误截图,初步推断是客户 k8s 集群版本与相应 CRD 不匹配, 同时 skoala-init 为微服务相关的所有的服务提供初始条件配置,即其包含有多个 CRD, 而根据 skoala-init v0.12.0 的 ChangeLog 可知,在此版本中 Gateway-API 的 CRD 有过升级,所以得出:
A: 由 Gateway-API 相关升级引发。
参考文档¶
解决方案¶
根据实际情况,选择适合的解决方案。
- 方案一:升级使用的 k8s 集群版本为至少 v1.25
- 方案二:按 CRD validation error for x-kubernetes-preserve-unknown-fields: true #88252 中所示,添加: