Mysql 远程通过 ssh 连接到 kubernetes pod



许多DevOps出于各种原因和查询使用通过ssh的mysql connect来访问生产数据库

成功将 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 ?

毛求疵:尽管你可以用它来启动交互式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 

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

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

并通过我的客户端连接到它,而无需 ssh 隧道。

但@helmbert解决方案也很好

相关内容

  • 没有找到相关文章

最新更新