【 TiDB 使用环境】测试环境
【 TiDB 版本】
无
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】
【TiDB Operator 版本】:
1.4.6
【K8s 版本】:
【附件:截图/日志/监控】
将1.3.3版本operator升级到1.4.6配置报错,
配置如下:
升级命令:
/root/helm/linux-amd64/helm upgrade tidb-operator ./tidb-operator --namespace=tidb-admin
报错内容如下:
Error: UPGRADE FAILED: error validating “”: error validating data: ValidationError(Deployment.spec.template.spec.imagePullSecrets[0]): invalid type for io.k8s.api.core.v1.LocalObjectReference: got “string”, expected “map”
根据错误信息,可以看出在升级 TiDB Operator 时,出现了一个验证错误,其中 Deployment.spec.template.spec.imagePullSecrets[0]
的类型不正确,应该是一个 map
类型,但是实际上是一个 string
类型。
这个错误通常是由于 Helm Chart 中的某个配置项格式不正确导致的。为了解决这个问题,您可以尝试以下方法:
-
检查 Helm Chart 中的配置项,确保格式正确。可以参考 TiDB Operator 的官方文档 [1] 中的配置示例,检查您的配置是否符合要求。
-
如果您使用的是自定义的 Helm Chart,可以尝试使用官方提供的 Helm Chart 进行升级。官方提供的 Helm Chart 可以从 TiDB Operator 的 GitHub 仓库中获取 [2]。
-
如果以上方法都无法解决问题,可以尝试卸载旧版本的 TiDB Operator,然后重新安装新版本的 TiDB Operator。卸载 TiDB Operator 的命令如下:
helm uninstall tidb-operator --namespace=tidb-admin
然后,您可以按照 TiDB Operator 的官方文档 [1] 中的步骤,重新安装 TiDB Operator。
在 v1.3.3 也会报错,之前是怎么部署成功的
➜ ~ helm install tidb-operator pingcap/tidb-operator --namespace tidb-admin --version v1.3.3 -f values.yaml
Error: INSTALLATION FAILED: unable to build kubernetes objects from release manifest: error validating "": error validating data: ValidationError(Deployment.spec.template.spec.imagePullSecrets[0]): invalid type for io.k8s.api.core.v1.LocalObjectReference: got "string", expected "map"