Archery
Archery copied to clipboard
关于在桥接模式中SSH隧道无法链接的问题
目前遇到的问题/使用障碍
使用版本是1.8.1。
因为archery部署在云下,生产服务器在云上不直接开放数据库端口,需要通过前置机连接,发现一直报connection refused,goinception中有日志,archery中没有日志,经查询 #951 ,发现需要修改docker网络模式,后经过排查代码发现,/sql/utils/ssh_tunnel.py 中存在如下代码
尝试将127.0.0.1修改为archery,连接成功
希望如何解决/实现它
希望可以修改为,例如动态配置的方式,在项目部署前期就可以识别到,其次可以添加的项目文档中,作为docker部署目录下要注意的一点,减少使用者构建成本。
其他信息
如果有其他类似的产品功能或者图片信息,可在此提交
谢谢,果然解决了。 使用docker部署,SSH隧道连接,在SQL上线的时候就会出线这个问题。 我是把那个ssh_tunnel.py 文件映射出来修改,因为是在docker,启动之后就会还原回去。
解决+1,感谢大佬
已添加 FAQ 说明: https://github.com/hhyo/Archery/wiki/FAQ
helm部署到k8s的话需要改:
- 在env中添加,获取POD的IP添加到环境变量中
- name: ARCHERY_POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
- 在/opt/archery/sql/utils/ssh_tunnel.py(需要挂载出来)修改
- 开头添加:
import os
- 语句
return "127.0.0.1", self.server.local_bind_port
更改为:
return os.getenv('ARCHERY_POD_IP'), self.server.local_bind_port