当tiup mirror show的时候,显示是6.1.2,tiup 版本是6.1.2自带的版本1.11.0,然后去启动v5和v4集群的prometheus组件的时候,就会启动失败,但是当tiup mirror set v5.3.3后,去启动v5和v4集群的prometheus组件的时候就可以成功
因为之前认为 tiup 去启停组件的时候,应该和mirror set 或者是说和集群版本是没有耦合的关系?但是到了6.1后,这个逻辑是变了,不知道这样设计的目的是什么
会不会是版本兼容性问题?
具体失败报错信息贴一下
tiup merge 下源试试
merge的话肯定可以的,但就是好奇为啥不merge不行
可能到了6.1,有了版本兼容验证
我觉得很合理
报错就是
version 4.0.13 on linux/amd64 for component  drainer not found: unknown version: check config failed
tiup 在reload时会默认 check config,check config 因为一些历史原因会去 mirror 中 check 版本号等相关信息,在 mirror 找不到对应版本时会报错。
大佬,这个能详细说下嘛,
但是仅仅去重启1个节点而已,为什么要有版本兼容验证呢?按照实际使用情况来看,以前没有这样的验证?6.1 增加这样的验证又是为什么呢?
我觉得这是现象,用5.3.3的mirror 去重启tidb 4.0.x集群的prometheus组件就不会报错,但是
6.1.2的mirror 去重启tidb 4.0.x集群的prometheus组件就会报错,说明到了6.1后,这个机制发生了改变
tiup 版本不一样吧,这玩意看 tiup 这个工具的逻辑的。
tiup reload 的逻辑,应该是会 check 版本和配置。这个很合理。
举个🌰:
我对一个 tidb server 节点打个补丁。如果 reload 的时候发现这个版本和我的管理版本不一样,就会直接覆盖掉。除非你打补丁的时候接了 --overwrite  。
。
还有就是你手动修改一个节点 toml 文件,那么 reload 的时候也会讲这个节点的配置修改回来。
所以 reload 的时候校验版本和配置 很河里。
tiup reload 的逻辑,应该是会 check 版本和配置。这个很合理。
如果是安装 部署 升级 打补丁,我觉得这个很合理,但是如果是仅仅是去重启1个节点也做配置的话,是不是没有必要呢
 ,所以你用的 restart 还是 reload?
,所以你用的 restart 还是 reload?
reload 的原理和restart 差不多吧,除了下发1份配置文件以外
reload 的逻辑复杂多了。


