我正在使用 Rancher 来管理 Kubernetes,它会编排我的 Docker 容器。
我们每个需要持久化的微服务(在容器中运行)都有一个对应的 MySQL 容器。例如。 MyApp 在名为 MyApp 的容器中运行,并持续存在于名为 MySQL-MyApp 的 MySQL 容器中。
我们有很多这样的。我们不想定义 MySQL 容器在哪些节点上运行,因此不能发布/公开主机上的端口,以防它与该主机上的任何其他端口发生冲突。
但是,如果我们的一个微服务的某些数据出现问题,我们需要能够使用 MySQL Workbench 访问相关容器中的 MySQL 实例,以便从我们的外部机器上查看/编辑数据库中的数据物理网络。
我们将如何着手做这件事有什么想法吗?我们是否能够以某种方式临时公开/发布正在运行的 MySQL 容器的端口,以便我们可以通过 MySQL Workbench 连接到它,或者是否有其他方法可以完成此操作?
最佳答案
如果用户可以访问集群的 kubectl
命令行,他们可以设置一个临时的 port-forward在本地开发机器和包含您的 MySQL 容器的 pod 之间。
例如,mypod-765d459796-258hz
是一个 pod,您想要连接到该 pod 的端口 3306:
kubectl port-forward mypod-765d459796-258hz 12345:3306
然后您可以将 MySQL Workbench 连接到 localhost:12345
,它会转发到您在 Kubernetes 中的 MySQL 容器。
关于mysql - 如何在不在主机上发布端口的情况下访问在 docker 容器(由 Rancher 管理)中运行的 MySQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54763290/