0

我们正在使用 gcloud/docker/K8 将我们的 Web 应用程序迁移到分布式应用程序模型。我们有一个远程数据库服务器,它被配置为只接受来自另一个远程服务器的连接,即要访问这个数据库,您必须首先使用用户名和密码 ssh 到一个服务器,然后使用普通用户通过 MySQL 主机名连接到数据库和密码。一直在努力寻找谷歌,试图找出我们如何配置我们的 K8 pod 来建立这种连接,似乎有许多不同的方法可能工作,但还没有记录在案的“肯定火”的方式。我们的微服务是用 Lumen 编写的,并且能够成功连接到我们的开发数据库,​​它也是远程的,但不是 ssh。我们最好的方法可能是什么?尝试配置 Dockerfile 以使 pod ssh 出来?还是我们应该尝试将 K8 服务连接到数据库并让 pod 连接到该数据库?

4

1 回答 1

1

你有三个选择:

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