Kubernetes-通过SSH连接到远程数据库服务器

时间:2018-10-26 02:53:13

标签: docker ssh kubernetes lumen devops-services

我们正在使用gcloud / docker / K8将Web应用迁移到分布式应用模型。我们有一个远程数据库服务器,该服务器配置为仅接受来自另一台远程服务器的连接,即,要进入该数据库,您必须首先使用用户名和密码SSH到一台服务器,然后以通常的用户通过MySQL主机名连接到数据库和密码。 一直在努力地寻找谷歌,以试图找出我们如何配置我们的K8吊舱以建立这种连接,并且似乎有许多可能有效的方法,但是还没有记录在案的“确保点火”的方法。我们的微服务是用Lumen编写的,并且能够成功连接到我们的dev db,后者也是远程但不是ssh。 最好的方法是什么?尝试配置Dockerfile以使Pod ssh退出吗?还是我们应该尝试将K8服务连接到数据库并使Pod连接到数据库?

1 个答案:

答案 0 :(得分:1)

您有三个选择:

  1. 重新配置网络层,以允许从您的Kubernetes节点“出口地址”进行远程访问。也称为“在防火墙上打洞”-可能不是一种选择,但如果可以的话,这是最简单的解决方案。
  2. 使用ssh隧道在节点和数据库服务器之间建立“隧道式”连接-可靠性不高,容易受到网络连接和可恢复性问题的影响。
  3. 在数据库服务器(或同一子网内的节点)上部署openvpn,并在节点POD子网内运行vpn客户端(也可以使用openvpn完成)-可实现,安全,工作量少,但可行且可持续。有关文档的完整的端到端示例,请参见https://github.com/mateothegreat/k8-byexamples-openvpn