TiDB Operator 1.1.10不兼容改动会影响TiDB的老集群吗?

由于 #3638 的改动,TiDB Operator chart 中创建的 ClusterRoleBinding、ClusterRole、RoleBinding、Role 的 apiVersionrbac.authorization.k8s.io/v1beta1 更改为 rbac.authorization.k8s.io/v1 ,此时通过 helm upgrade 升级 TiDB Operator 可能会报下面错误:

Error: UPGRADE FAILED: rendered manifests contain a new resource that already exists. Unable to continue with update: existing resource conflict: namespace: , name: tidb-operator:tidb-controller-manager, existing_kind: rbac.authorization.k8s.io/v1, Kind=ClusterRole, new_kind: rbac.authorization.k8s.io/v1, Kind=ClusterRole

详情可以参考 helm/helm#7697,此时需要通过 helm uninstall 删除 TiDB Operator 然后重新安装(删除 TiDB Operator 不会影响现有集群)。

operator的升级在1.1.10有一个不兼容性的问题,如果直接删除了老的operator(1.1.6),重新创建新的operator(1.1.13),对tidb老实例有什么影响吗

来自 @yufan022 的回复:
我们之前有做过其他项目的controller,删operator不会影响资源,只要不要删除crd就好。可以在测试环境测一下。

1 个赞

operator老版本是1.1.6,打算升级到新版本1.1.13

operator老版本是1.1.6,打算升级到新版本1.1.13
老的tidb实例,在新的operator下还能工作的很好吗?会有什么影响吗?

删除operator,不要删除CRD,此时影响是tidb集群不会再受operator治理。
部分调度功能会受影响,但是基本运行是ok的,短时间安装上新operator即可。

同时需要注意的是:

  1. 当前tidb版本是否在新版本operator的兼容支持中
  2. 新老版本operator如果有资源api版本使用不同可能会有部分资源受影响
  3. 具体要查看每个版本operator更新日志,如果资源发生修改,运行新版本operator时可能有一些资源会被修改重建

如果新版本operator有资源、逻辑和老版本有变动,可能在安装新版本后tidb集群状态会被更新,具体影响范围还是经过测试和演练来评估。

1 个赞

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。