MySQL远程通过SSH连接到kubernetes Pod

时间:2018-12-22 19:16:41

标签: docker kubernetes digital-ocean navicat sequelpro

许多开发人员出于各种原因和查询而使用ssh上的mysql connect来访问生产数据库

在将mysql容器成功部署到数字海洋kubernetes集群后 我能够通过:s进入ssh

kubectl --kubeconfig="kubeconfig.yaml" exec -it vega-mysql-5df9b745f9-c6859 -c vega-mysql -- /bin/bash

我的问题是我该如何将诸如navicat-sequel pro或mysql workbench之类的应用程序远程连接到此Pod?

2 个答案:

答案 0 :(得分:3)

Nitpick:即使您可以使用它来启动交互式Shell,kubectl exec也不同于SSH。因此,支持SSH隧道连接的常规MySQL客户端不(可能永远不会)支持连接到通过kubectl exec隧道传输的MySQL服务器。

替代解决方案:使用kubectl port-forward将Pod的MySQL服务器端口3306转发到您的本地计算机:

kubectl port-forward vega-mysql-5df9b745f9-c6859 3306:3306

这将指示kubectl充当从计算机上的本地端口到Pod的TCP代理。然后,使用您选择的任何MySQL客户端连接到127.0.0.1:3306

mysql -u youruser -p -h 127.0.0.1 

答案 1 :(得分:0)

我通过将mysql暴露给具有随机端口的服务来实现这一点

kubectl --kubeconfig=vega-kubeconfig.yaml expose deployment mysqldeployment --type=NodePort --name=nginx --port=3306 --target-port=3306

并通过没有ssh隧道的客户端连接到它。

但是@helmbert解决方案也很好