开发者社区 > 云原生 > 容器服务 > 正文

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

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

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

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

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

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

展开
收起
k8s小能手 2019-02-22 16:09:44 4675 0
1 条回答
写回答
取消 提交回答
  • 整合最优质的专家资源和技术资料,问答解疑

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

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

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

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

    2019-07-17 23:29:13
    赞同 展开评论 打赏

国内唯一 Forrester 公共云容器平台领导者象限。

相关电子书

更多
阿里云文件存储 NAS 在容器场景的最佳实践 立即下载
何种数据存储才能助力容器计算 立即下载
《容器网络文件系统CNFS》 立即下载