在之前写过关于SecretPad All In One的部署文章,使用的是VMware + CentOS7
关于在Linux上部署 SecretFlow --- P2P部署模式
在安装至最后时,遇到了报错 [ERROR] Probe secretpad in container 'root-kuscia-autonomy-secretpad-sf-alice' failed.
但是web页面访问一切正常,部署的两个节点通讯显示正常,但创建合作项目总是收不到彼此的合作邀请,因此求助了项目的开发者
详细过程可见 github 的 issues 记录 安装过程最后报错[ERROR] Probe secretpad in container 'root-kuscia-autonomy-secretpad-sf-alice' failed. · Issue #1923 · secretflow/secretflow
这里将介绍一下过程中定位以及解决问题所使用的相关命令
一、SecretPad 日志抓取
在部署的部分介绍过,重复部署节点只需要重复运行 install.sh,每运行一次,会产生两个容器
root-kuscia-autonomy-secretpad 和 root-kuscia-autonomy
这里可以使用命令查看 具体的容器名称和ID
docker ps
这里我部署了两次,因此有四个容器,红框部分为对应的容器名称
使用如下命令拉去对应的Secretpad容器日志
docker logs your_secretpad_container_name # 需将your_secretpad_container_name替换为实际Secretpad的容器名称
二、问题成因
[ERROR] Probe secretpad in container 'root-kuscia-autonomy-secretpad-sf-alice' failed.
经过开发人员分析,allinone部署包会自动执行一个 create_secretpad_svc.sh 文件,由于在虚拟机中部署,卡顿的原因导致未再60秒内正常启动,部署脚本检测pad服务没有正确启动导致缺失了创建svc这一步
使用物理机应该不会出现该问题,或修改检查时间,将60s的时间扩大并重新部署,也可以避免该问题
因此,我们需要再去手动执行该脚本,完善svc配置
三、SVC配置
在我部署的过程中,有四个容器,分别未
kuscia-alice secretpad-alice
kuscia-bob secretpad-bob
我们需要进入两个kuscia的容器内进行配置
使用命令进入kuscia容器 container_id 可以使用 docker ps进行查看
docker exec -it container_id bash
进入容器后,执行create_secretpad_svc.sh
bash /home/kuscia/scripts/deploy/create_secretpad_svc.sh {pad-ip} 节点ID
其中pad-ip 为 secretpad容器的ip,我们在调取日志时可以看到,如下所示
节点ID 为 部署节点时 -n 后所使用的参数,根据实际情况修改
pad-ip 也可以直接使用容器名称替代,例如
查看 svc 配置
kubectl get svc -A
四、检查配置是否成功
进入容器
运行命令,替换容器名称,容器端口默认9001,可以在svc配置中查看
curl root-kuscia-autonomy-secretpad:9001
curl -kvvv http://pad-ip:8080
执行后返回页面对应的html即为配置成功
根据上一篇文章中创建项目的方法,看看双方是否可以看到项目邀请
其他命令
1. 删除svc 配置
namespace 使用kubectl get svc -A 进行查看
kubectl delete svc secretpad -n namespace
2. 编辑容器映射端口
操作方式和vim一致
编辑端口9001 修改为实际映射的端口。 比如 sf-alice-secretpad 端口映射是 8888->9001 并且ip是通过ifconfig eth0获取那么的alice svc应该修改为8888。如果ip是docker 内部IP 则不做改动
kubectl edit svc secretpad -n {sf-alice/sf-bob} -oyaml
如上就是关于报错以及修改配置的全过程,issues由我提出,在此总结,具体请访问github查看