![](/img/trans.png)
[英]How can I connect to CockroachDB from outside the Kubernetes cluster?
[英]How do I connect to my local kubernetes CockroachDB with DBeaver?
我有一个运行cockroachdb的Minikube Kubernetes集群,如下所示:
kubectl get pods
test-cockroachdb-0 1/1 Running 17 95m
test-cockroachdb-1 1/1 Running 190 2d
test-cockroachdb-2 1/1 Running 160 2d
test-cockroachdb-init-m8rzp 0/1 Completed 0 2d
cockroachdb-client-secure 1/1 Running 0 2d
我想获得一个可以在我的应用程序中使用的连接字符串。
为了验证我的连接字符串,我正在使用工具DBeaver。
我的数据库名称配置为群集中存在的“ defaultdb”,并且用户具有相关密码。 该端口也准确(默认的cockroachdb minikube端口)。
但是,关于连接的证书方面,我很茫然。 如何生成/收集成功连接到群集所需的证书? 如何使用DBeaver连接到集群?
编辑:
$ kubectl get all
NAME READY STATUS RESTARTS AGE
pod/myname-cockroachdb-0 1/1 Running 27 156m
pod/myname-cockroachdb-1 1/1 Running 197 2d1h
pod/myname-cockroachdb-2 1/1 Running 167 2d1h
pod/myname-cockroachdb-init-m8rzp 0/1 Completed 0 2d1h
pod/myname-client-secure 1/1 Running 0 2d1h
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/myname-cockroachdb ClusterIP None <none> 26257/TCP,8080/TCP 2d1h
service/myname-cockroachdb-public ClusterIP 10.xxx.xxx.xx <none> 26257/TCP,8080/TCP 2d1h
service/kubernetes ClusterIP 10.xx.0.1 <none> 443/TCP 2d1h
NAME READY AGE
statefulset.apps/myname-cockroachdb 3/3 2d1h
NAME COMPLETIONS DURATION AGE
job.batch/myname-cockroachdb-init 1/1 92s 2d1h
就像@ FL3SH已经说过了。
您可以使用kubectl port-forward <pod_name> <port>
Cockroach文档的第4步对此进行了很好的解释。 访问Admin UI ,请以它为例并设置不同的端口。
至于证书:
创建每个Pod时,它将发出证书签名请求或CSR,以使Kubernetes CA对节点的证书进行签名。 您必须手动检查并批准每个节点的证书,这时将在Pod中启动CockroachDB节点。
获取第一个Pod的待处理CSR的名称:
kubectl get csr
NAME AGE REQUESTOR CONDITION
default.node.cockroachdb-0 1m system:serviceaccount:default:default Pending
node-csr-0Xmb4UTVAWMEnUeGbW4KX1oL4XV_LADpkwjrPtQjlZ4 4m kubelet Approved,Issued
node-csr-NiN8oDsLhxn0uwLTWa0RWpMUgJYnwcFxB984mwjjYsY 4m kubelet Approved,Issued
node-csr-aU78SxyU69pDK57aj6txnevr7X-8M3XgX9mTK0Hso6o 5m kubelet Approved,Issued
如果没有看到待处理的CSR,请稍等片刻,然后重试。
您可以检查CSR pod kubectl describe csr default.node.cockroachdb-0
它可能看起来像这样:
Name: default.node.cockroachdb-0
Labels: <none>
Annotations: <none>
CreationTimestamp: Thu, 09 Nov 2017 13:39:37 -0500
Requesting User: system:serviceaccount:default:default
Status: Pending
Subject:
Common Name: node
Serial Number:
Organization: Cockroach
Subject Alternative Names:
DNS Names: localhost
cockroachdb-0.cockroachdb.default.svc.cluster.local
cockroachdb-public
IP Addresses: 127.0.0.1
10.48.1.6
Events: <none>
如果是,则可以使用以下方法批准证书:
kubectl certificate approve default.node.cockroachdb-0
请务必按照《 单个Kubernetes集群》指南中的Orchestrate CockroachDB进行操作 。
让我知道您是否需要其他帮助。
您可以使用kubectl port-forward service/myname-cockroachdb 26257
而在DBeaver中,只需使用localhost:26257
作为连接字符串即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.