开发者社区> 问答> 正文

如何在不在主机上发布端口的情况下访问在docker容器(由Rancher管理)中运行的MySQL?

k8s小能手 2019-02-22 16:09:44 1618

我正在使用Rancher来管理编排我的Docker容器的Kubernetes。

我们需要持久性的每个微服务(在容器中运行)都有一个相应的MySQL容器。例如,MyApp在名为MyApp的容器中运行,并持久存储到名为MySQL-MyApp的MySQL容器中。

我们有很多这样的。我们不想定义运行MySQL容器的节点,因此如果它与该主机上的任何其他端口冲突,则无法在主机上发布/公开该端口。

但是,如果我们的某个微服务的某些数据出现问题,我们需要能够使用MySQL Workbench访问相关容器中的MySQL实例,以便从我们物理网络上的外部机器查看/编辑数据库中的数据。

有什么想法我们会怎么做呢?我们能够以某种方式暂时公开/发布一个正在运行的MySQL容器的端口,以便我们可以通过MySQL Workbench连接到它,还是有其他方法可以完成这项工作?

存储 Kubernetes 关系型数据库 MySQL 数据库 Docker 微服务 容器
分享到
取消 提交回答
全部回答(1)
  • k8s小能手
    2019-07-17 23:29:13

    如果用户可以访问kubectl群集的命令行,则可以在本地开发计算机和包含MySQL容器的pod之间设置临时端口转发。

    例如,mypod-765d459796-258hzpod 在哪里,您想要连接到该pod的端口3306:

    kubectl port-forward mypod-765d459796-258hz 12345:3306

    然后你可以将MySQL Workbench连接到localhost:12345它,它将转发到Kubernetes中的MySQL容器。

    0 0
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题