由于各种原因和查询,许多devops使用通过ssh的mysql连接来访问生产数据库。
成功将mysql容器部署到数字海洋kubernetes集群后,我可以通过以下方式ssh进入pod:
kubectl --kubeconfig="kubeconfig.yaml" exec -it vega-mysql-5df9b745f9-c6859 -c vega-mysql -- /bin/bash我的问题是,如何远程连接应用程序: navicat - sequel pro或mysql workbench到这个pod?
发布于 2018-12-23 07:25:55
吹毛求疵:即使您可以使用它来启动交互式shell,kubectl exec也不同于SSH。因此,支持SSH隧道连接的常规MySQL客户端不(可能永远不会)支持通过kubectl exec隧道连接到MySQL服务器。
替代方案:使用kubectl port-forward将实例的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 发布于 2018-12-24 14:21:34
我通过将mysql暴露给具有随机端口的服务来实现这一点
kubectl --kubeconfig=vega-kubeconfig.yaml expose deployment mysqldeployment --type=NodePort --name=nginx --port=3306 --target-port=3306并通过我的客户端连接到它,而不使用ssh隧道。
但是@helmbert解决方案也不错
https://stackoverflow.com/questions/53898627
复制相似问题