![](/img/trans.png)
[英]How do I connect to a remote mysql kubernetes pod using mysql client
[英]How do I connect to MySQL on Kubernetes with DBeaver directly instead of using kubectl port-forward?
在终端上运行以下命令后,当前使用 DBeaver 连接到 Kube.netes 上的 MySQL。
kubectx arn:aws:eks:XXX:cluster/XXX && kubens XXX && kubectl port-forward --address 0.0.0.0 XXX 13306:3306
我正在寻找一种直接在 DBeaver 上进行端口转发的方法,因为每次运行命令然后连接 DBeaver 是很乏味的。
有哪些可能的方法可以做到这一点?
一种选择是Kubernetes可以定义节点端口服务
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
type: NodePort
selector:
app.kubernetes.io/name: MyApp
ports:
- protocol: TCP
port: 80
targetPort: 9376
公开数据库并不安全,但如果您仍想访问,最好将 IP 列入白名单
使用 TCP 负载均衡器,您将获得将 IP 列入白名单的优势。 这是 AWS NLB 示例。
apiVersion: v1
kind: Service
metadata:
name: db-tcp-servie
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: "ip"
service.beta.kubernetes.io/aws-load-balancer-scheme: "internet-facing"
service.beta.kubernetes.io/aws-load-balancer-name: "db-nlb"
spec:
type: LoadBalancer
loadBalancerSourceRanges:
- "my-allowed-ip/32"
- "11.22.33.44/32"
selector:
app.kubernetes.io/name: db-pod-selector
app.kubernetes.io/instance: db-pod-selector
ports:
- protocol: TCP
port: 3306
targetPort: 3306
或者你可以考虑节点端口服务
NodePort 是集群中每个节点上的开放端口。 Kubernetes 透明地将 NodePort 上的传入流量路由到您的服务,即使您的应用程序在不同的节点上运行。
kubernetes-ingress-nodeport-load-balancers-and-ingress-controllers
好像暂时不能
但他们确实有一个新问题,谁对此持开放态度: https://github.com/dbeaver/dbeaver/issues/15242
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.