背景:

sealos安装的Kubernetes集群,删除后增加节点失败。

Error: failed to add hosts: run command /var/lib/sealos/data/default/rootfs/opt/sealctl hosts add --ip 10.0.0.Master --domain sealos.hub on 10.0.0.Node:22, output: , error: Process exited with status 139 from signal SEGV,

环境:

应用 信息
os Ubuntu
sealos v4.2.2
Kubernetes v1.25.7

问题1:文件时md5校验失败

操作步骤:

sealos delete --nodes 10.0.0.X 
sealos add --nodes 10.0.0.X 

执行报错:

sha256 sum not match

Sealos 的 –debug 参数是一个全局参数,用于开启调试模式,以便在出现问题时能更详细地了解系统的运行情况。

sealos add --nodes 10.0.0.X  --debug

Sealos传输文件时比较md5查看是否报错,issues给了一个解决办法:可以关闭校验。

#  export SEALOS_SCP_CHECKSUM=false

修改完,出现了另外一个问题:

问题2:sealctl 增加host失败

Error: failed to add hosts: run command /var/lib/sealos/data/default/rootfs/opt/sealctl hosts add --ip 10.0.0.Master --domain sealos.hub on 10.0.0.Node:22, output: , error: Process exited with status 139 from signal SEGV,

 debug模式查看详细

2023-06-28T09:56:43 debug show registry info, IP: 10.0.0.X:22, Domain: sealos.hub, Data: /var/lib/registry2023-06-28T09:56:43 debug start to exec /var/lib/sealos/data/default/rootfs/opt/sealctl hosts add --ip 10.0.0.X --domain sealos.hub on 10.0.0.M:222023-06-28T09:56:44 error Applied to cluster error: failed to add hosts: run command /var/lib/sealos/data/default/rootfs/opt/sealctl hosts add --ip 10.0.0.X --domain sealos.hub on 10.0.0.M:22, output: , error: Process exited with status 139 from signal SEGV,2023-06-28T09:56:44 debug save objects into local: /root/.sealos/default/Clusterfile, objects: [apiVersion: apps.sealos.io/v1beta1kind: Cluster

可见,是seactl执行"sealctl hosts add –ip 10.0.0.X –domain sealos.hub" 失败。此文件是从master拷贝过来的:

/var/lib/containers/storage/overlay/5dd64dde7bc046cfd7554458e2950c41c0d86536e4e96532cfa2ee60685404d4/merged/opt to dst /var/lib/sealos/data/default/rootfs/opt2023-06-28T09:56:40 debug remote copy files src /var/lib/containers/storage/overlay/44ce75c1b3e483c61ecfbc07a72f87da8627ce40d9df9451f2d04dfad8dffc65/merged/opt to dst /var/lib/sealos/data/default/rootfs/opt2023-06-28T09:56:42 debug remote copy files src

我们试着手动拷贝过去,执行是正常的。初步判断是传输的文件出错 ,issure沟通,建议试着“scp进程可能有问题,比较md5查看是否有问题。export SEALOS_SCP_CHECKSUM = true”,还是出现 “sha256 sum not match”。无效。

解决

这个v4.2.2 的一个bug,希望下个版本能修复。最终一个临时处理办法:重置集群

# sealos reset 

我尝试重置集群,再加入node是可行的。

小结

本文主要记录排查、解决【sealos-v4.2.2删除节点后再增加节点失败】的过程,原因sealos的版本v4.2.2 问题,,其一,旧版本在拷贝seactl文件到node时会抛出失败:sha256比较文件时,经排查判断是传输过程文件出错了。其二,可以临时通过重置集群来恢复。 希望对你有所帮助。

参考