使用 openshift 上公开的路由连接到 MySQL 数据库

Connect to MySQL database by using route exposed on openshift

我刚刚在 openshift 上公开了我的数据库,它给了我一个 'https://....' url 有谁知道如何通过使用 openshift 给我的 url 使用 DBeaver 进行连接。 dbeaver 对我说的错误如下 数据库 URL 格式错误,无法解析主要 URL 部分。

简答:你不能用Route
Route 只能暴露 http/https 流量
如果您想公开 tcp 流量(例如数据库),请不要创建 Route 并将您的Service类型更改为“NodePort”`
检查我之前对此类问题的回答(在这种情况下公开 MQ):

NodePorts 上的 OpenShift 文档:https://docs.openshift.com/container-platform/4.7/networking/configuring_ingress_cluster_traffic/configuring-ingress-cluster-traffic-nodeport.html

还有另一种方法可以做到这一点。

如果您的 Route 设置为“passthrough”,它只会查看 SNI headers 以确定将流量路由到哪里,但不会解包(并期望内部有 http),这会让它通过其他流量通过 pod。

我使用这个机制 运行 SNI 后面的 ZNC bouncer(irc 流量)。

缺点是您需要在 pod 中提供自己的 TLS 证书,而不是利用 *.apps.(cluster).com 可用的通用证书

至于具体的错误,“Malformed database URL”,我没有使用过这个软件,但是通过快速网络搜索,你似乎想要重写 https://(appname)。( clustername).com 到 jdbc:.../hostname... 字符串中,然后在设置中启用 TLS。

我找到了这个关于如何设置它的页面,所以如果您还没有找到它可能会对您有所帮助 -- https://github.com/dbeaver/dbeaver/issues/9573