tiup 扩容2.1.4版本失败

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】
【概述】场景+问题概述
一个V2.1.4版本的tidb集群需要扩容,目前已经使用tiup管理,但是扩容时失败
Attention:
1. If the topology is not what you expected, check your yaml file.
2. Please confirm there is no port/directory conflicts in same host.
Do you want to continue? [y/N]: (default=N) y

  • [ Serial ] - SSHKeySet: privateKey=/home/tidb/.tiup/storage/cluster/clusters/mmu/ssh/id_rsa, publicKey=/home/tidb/.tiup/storage/cluster/clusters/mmu/ssh/id_rsa.pub

    • Download blackbox_exporter: (linux/amd64) … Done

Error: version v2.1.5 on linux/amd64 for component tikv not found: unknown version

Verbose debug logs has been written to /home/tidb/.tiup/logs/tiup-cluster-debug-2022-01-14-16-25-09.log.
Error: run /home/tidb/.tiup/components/cluster/v1.5.6/tiup-cluster (wd:/home/tidb/.tiup/data/SuTgcGV) failed: exit status 1
有什么办法扩容成功呢?
【背景】做过哪些操作
【现象】业务和数据库现象
【业务影响】
【TiDB 版本】
【附件】

  1. TiUP Cluster Display 信息

  2. TiUP Cluster Edit Config 信息

  3. TiDB- Overview 监控

  • 对应模块日志(包含问题前后1小时日志)

这个集群升级到3.0.18也失败,因为tikv的status端口好像没有


看你的报错信息,方便看看你扩容的配置吗?还有就是升级失败有报错信息吗?

升级没有成功就终止了,今天是扩容,扩容的报错就是这个信息

能看看你扩容写的配置文件吗?
再就是升级没成功,总会报错把,升级的报错是啥呢?

扩容文件:
tikv_servers:

  • host: 10.34.55.173
    port: 20171
    status_port: 20180
    deploy_dir: “/data/tidb/deploy/default/tikv-20171”
    data_dir: “/data/tidb/deploy/tikv-20171”
    log_dir: “/data/tidb/logs/tikv-20171”
    config:
    server.labels: { host: “public-db635.idcyz.hb1.kwaidc.com” }
  • host: 10.34.55.173
    port: 20172
    status_port: 20181
    deploy_dir: “/data/tidb/deploy/default/tikv-20172”
    data_dir: “/data/tidb/deploy/tikv-20172”
    log_dir: “/data/tidb/logs/tikv-20172”
    numa_node: “1”
    config:
    server.labels: { host: “public-db635.idcyz.hb1.kwaidc.com” }
  • host: 10.34.56.172
    port: 20171
    status_port: 20180
    deploy_dir: “/data/tidb/deploy/default/tikv-20171”
    data_dir: “/data/tidb/deploy/tikv-20171”
    log_dir: “/data/tidb/logs/tikv-20171”
    config:
    server.labels: { host: “public-db621.idcyz.hb1.kwaidc.com” }
  • host: 10.34.56.172
    port: 20172
    status_port: 20181
    deploy_dir: “/data/tidb/deploy/default/tikv-20172”
    data_dir: “/data/tidb/deploy/tikv-20172”
    log_dir: “/data/tidb/logs/tikv-20172”
    numa_node: “1”
    config:
    server.labels: { host: “public-db621.idcyz.hb1.kwaidc.com” }

升级失败的报错说tikv的metric端口访问不通,v2.1.5版本的tikv server我查看了监听的端口(status_port: 20180),确实只有一个端口,貌似就是没有专门的metric端口
image

文件应该没啥问题,因为这个我们的一个脚本根据模板生成的

  1. 上面扩容报错信息提示的是扩容时下载的是v2.1.5的组件,但是你们集群是v2.1.4的,我觉着用tiup扩容可能还是会存在问题;
  2. 扩容的配置文件,你们写的是 server.labels来区分混部的节点,但是呢,在2.1里面用的是 location_labels,配置不一样,所以建议在2.1的时候还是用ansible的方式来扩容;
  3. 关于升级的,我猜也是类似的情况,我建议2升级到3,还是用ansible升级,到3之后再用 tiup纳管

我已经import到tiup中了,ansible我没有维护过。
另外v2.1.4这个是笔误,就是v2.1.5。

怎么说呢,在3.0之后的版本,一台机器部署两个tikv节点,需要这两个tikv节点的端口不一致,但是在2.1里面没有这个要求,只需要指定服务端口就行,保证服务端口不一致,我觉着你可以试试把扩容配置文件里面的status_port给注释掉,在升级试试

扩容试试?
第二个问题:
停机升级应该可以升级成功吧

注释掉status_port 直接报解析yaml文件失败

tiup import之后,ansible里面的信息就被自动删除了,回不去了

import导入的时候meta.yaml中有import=true,这个我给去掉了,如果恢复是不是可以兼容,升级的时候绕过status_port的检测??

版本太老了,建议 asktug 上搜相关的 帖子