在集群运行过程中,如果需要动态替换某个服务的二进制文件(即替换过程中保持集群可用),那么可以使用 tiup cluster patch 命令,它会完成以下几件事情:
tiup cluster patch
代表要操作的集群名 为用于替换的二进制包,其打包方式如下:
${component} (tidb, tikv, pd...) 以及其版本 ${version} (v4.0.0, v4.0.1 ...),以及其运行的平台 ${os} (linux) 和 ${arch} (amd64, arm64)wget https://tiup-mirrors.pingcap.com/${component}-${version}-${os}-${arch}.tar.gz -O /tmp/${component}-${version}-${os}-${arch}.tar.gzmkdir -p /tmp/package && cd /tmp/packagetar xf /tmp/${component}-${version}-${os}-${arch}.tar.gzfind .tar czf /tmp/${component}-hotfix-${os}-${arch}.tar.gz */tmp/${component}-hotfix-${os}-${arch}.tar.gz 就可以用于 patch 命令了--overwrite 选项。BOOLEANfalse。在命令中添加该选项,并传入 true 值或不传值,均可开启此功能。在重启 PD 或 TiKV 时,会先将被重启节点的 leader 迁移到其他节点,迁移过程会需要一定时间,可以通过设置 --transfer-timeout 设置最长等待时间(单位为秒),超时之后会跳过等待直接重启服务。
注意
若出现跳过等待直接重启的情况,服务性能可能会出现抖动。
指定要替换的节点,该选项的值为以逗号分割的节点 ID 列表,节点 ID 为集群状态表格的第一列。
注意
若同时指定了 -R, --role,那么将替换它们的交集中的服务。
指定要替换的角色,该选项的值为以逗号分割的节点角色列表,角色为集群状态表格的第二列。
注意
若同时指定了 -N, --node,那么将替换它们的交集中的服务。
BOOLEANfalse。在命令中添加该选项,并传入 true 值或不传值,均可开启此功能。BOOLEANfalse。在命令中添加该选项,并传入 true 值或不传值,均可开启此功能。tiup-cluster 的执行日志。