升级 tidb-operator 出现问题,报rbac.authorization.k8s.io/v1beta1不存在是为啥

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】

升级参考文档
https://docs.pingcap.com/zh/tidb-in-kubernetes/v1.5/upgrade-tidb-operator

tidb-operator从1.1.7 到1.5.4 升级, 报如下错误
k8s的版本是1.28

在执行最后一步升级的时候 报这个错误

helm upgrade tidb-operator pingcap/tidb-operator --version=v1.5.4 -f ${HOME}/tidb-operator/v1.5.4/values-tidb-operator.yaml -n tidb-admin
Error: UPGRADE FAILED: current release manifest contains removed kubernetes api(s) for this kubernetes version and it is therefore unable to build the kubernetes objects for performing the diff. error from kubernetes: [unable to recognize “”: no matches for kind “ClusterRole” in version “rbac.authorization.k8s.io/v1beta1”, unable to recognize “”: no matches for kind “ClusterRoleBinding” in version “rbac.authorization.k8s.io/v1beta1”]

问了一下ai,他说 Kubernetes 1.28 中 rbac.authorization.k8s.io/v1beta1 已经被移除,所以你需要将 ClusterRoleClusterRoleBinding 的 API 版本更新为 rbac.authorization.k8s.io/v1。可以试试

直接卸了用 v1 重装

意思是重装集群吗。还是卸载opeator 重装

重装 operator 用 v1 CRD,这是管理组件不影响 tidb 集群

operator 卸载了 原来的集群 不知道是不是操作搞错了,卸载的重装的时候 报了很多的crd 都存在,全部都删掉了。装好后 相关的tidb集群pod就都不在了 相关pod也没了。。
我找运维同学 重装了tidb集群

感觉没删干净

  1. 检查 values.yaml 文件: 确保您的 values.yaml 文件中使用的是正确的 Kubernetes API 版本。您可能需要手动编辑该文件,将所有 rbac.authorization.k8s.io/v1beta1 的引用更改为 rbac.authorization.k8s.io/v1
  2. 更新 Helm Chart: 如果您的 Helm Chart 版本较旧,可能需要更新到与 Kubernetes 1.28 兼容的版本。您可以检查 PingCAP Helm Chart Repository 以获取最新的兼容版本。
  3. 手动更新 CRDs: 如果 Helm 升级失败,您可以尝试手动更新 CRDs。使用以下命令下载并应用与您的 tidb-operator 版本兼容的 CRDs:

shell

kubectl replace -f https://raw.githubusercontent.com/pingcap/tidb-operator/{your_operator_version}/manifests/crd.yaml

请将 {your_operator_version} 替换为您要升级到的版本号。
4. 升级 Helm: 确保您的 Helm 客户端是最新版本,因为旧版本的 Helm 可能不支持 Kubernetes 1.28 的某些特性。

1 个赞