在Docker环境中管理mysql用户

时间:2015-06-17 23:38:13

标签: mysql linux docker containers

我的目标是创建以下内容:

  • 一个nginx容器作为单个入口点,它将在N个节点容器(API)之间进行负载平衡。
  • 一个MySQL容器(最终我也会运行副本,不确定这是否与问题有关)。
  • 将连接到mysql容器的许多API容器

基于我的理解:通常应该存在一个用户具有特定访问权限的用户,每个服务器都有一个特定主机连接到mysql实例。

问题:

如何在允许n个节点容器动态进入/保持负载平衡的同时保持相同的安全级别。

我试图解决这个问题:

  • 强制所有节点容器在特定的ip范围内生成,并创建一个api用户,该用户接受来自该ip范围的连接。我不确定我是否可以强制docker在特定的ip范围内创建容器。此外,此解决方案仍然会降低安全性,因为现在有一个范围可用而不是1-1。

  • 如果我能找到一种在容器之间创建私有连接的方法(我知道--link会这样做,但它不会在重新启动时动态更新),那么我根本不需要公开公开数据库。在这种情况下,拥有一个拥有主机%的API用户是可以接受的,因为我确信没有人可以连接到除我自己的容器之外的那个容器吗?

1 个答案:

答案 0 :(得分:0)

如果在一个节点内运行所有容器,则可以在localhost接口上公开所有API和数据库容器。这样,他们就无法在节点外访问并且彼此可见。如果您想在基于Kubernetes的某种云中部署它,您必须确保您的网络符合以下所述的最低要求:https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/networking.md这意味着所有节点都可以自由地相互通信。但即使这样,您也可以使用防火墙规则或仅为内部通信提供专用网络来保护您的部署。当你有安全网络时,你不应该害怕外国联系。