如何使用 DBeaver 连接到本地 kubernetes CockroachDB?
How do I connect to my local kubernetes CockroachDB with DBeaver?
我有一个 Minikube Kubernetes 集群 运行 一个 cockroachdb,它看起来像:
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 端口)。
然而,关于连接的证书方面,我一头雾水。如何 generate/gather 成功连接到集群所需的证书?如何使用 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
您可以使用 kubectl port-forward service/myname-cockroachdb 26257
,在 DBeaver 中只需使用 localhost:26257
作为连接字符串。
就像@FL3SH已经说过的。
您可以使用 kubectl port-forward <pod_name> <port>
这在 Cockroach 文档中有很好的解释 Step 4. Access the Admin UI,请以它为例并设置不同的端口。
关于证书:
As each pod is created, it issues a Certificate Signing Request, or CSR, to have the node's certificate signed by the Kubernetes CA. You must manually check and approve each node's certificates, at which point the CockroachDB node is started in the pod.
Get the name of the Pending CSR for the first pod:
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 窗格 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
请务必遵循 Orchestrate CockroachDB in a Single Kubernetes Cluster 指南。
如果您需要任何进一步的帮助,请告诉我。
我有一个 Minikube Kubernetes 集群 运行 一个 cockroachdb,它看起来像:
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 端口)。
然而,关于连接的证书方面,我一头雾水。如何 generate/gather 成功连接到集群所需的证书?如何使用 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
您可以使用 kubectl port-forward service/myname-cockroachdb 26257
,在 DBeaver 中只需使用 localhost:26257
作为连接字符串。
就像@FL3SH已经说过的。
您可以使用 kubectl port-forward <pod_name> <port>
这在 Cockroach 文档中有很好的解释 Step 4. Access the Admin UI,请以它为例并设置不同的端口。
关于证书:
As each pod is created, it issues a Certificate Signing Request, or CSR, to have the node's certificate signed by the Kubernetes CA. You must manually check and approve each node's certificates, at which point the CockroachDB node is started in the pod.
Get the name of the Pending CSR for the first pod:
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 窗格 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
请务必遵循 Orchestrate CockroachDB in a Single Kubernetes Cluster 指南。
如果您需要任何进一步的帮助,请告诉我。