【问题标题】:How do I connect to my local kubernetes CockroachDB with DBeaver?如何使用 DBeaver 连接到本地 kubernetes CockroachDB?
【发布时间】:2019-12-17 01:29:33
【问题描述】:

我有一个运行 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

【问题讨论】:

  • 请添加来自kubectl get all的输出
  • 我添加了 kubectl get all 的输出
  • 你能用证书添加错误吗?

标签: kubernetes minikube dbeaver cockroachdb


【解决方案1】:

就像@FL3SH 已经说过的一样。

你可以使用kubectl port-forward &lt;pod_name&gt; &lt;port&gt;

这在 Cockroach 文档Step 4. Access the Admin UI 中有很好的解释,请以它为例并设置不同的端口。

关于证书:

在创建每个 pod 时,它会发出一个证书签名请求或 CSR,以让 Kubernetes CA 对节点的证书进行签名。您必须手动检查和批准每个节点的证书,此时 CockroachDB 节点会在 pod 中启动。

获取第一个 pod 的 Pending 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

请务必遵循Orchestrate CockroachDB in a Single Kubernetes Cluster 指南。

如果您需要任何进一步的帮助,请告诉我。

【讨论】:

  • 好的,我想我必须有证书!这适用于服务的端口转发。仍在学习所有这些东西是如何工作的。我很高兴但很好奇......我什么时候想在 DBeaver 的 SSL 部分包含证书(根证书、SSL 证书、SSL 证书密钥)以及如何获取它们?
  • 何时由您决定,使用证书更安全,建议用于 prod 环境。至于如何获取它们,您需要自己发布它们。你可以找到很多关于如何做到这一点的答案。
【解决方案2】:

您可以使用kubectl port-forward service/myname-cockroachdb 26257,在DBeaver 中只需使用localhost:26257 作为连接字符串。

【讨论】:

    猜你喜欢
    • 2021-12-13
    • 2017-11-08
    • 1970-01-01
    • 2020-05-30
    • 2022-07-03
    • 2018-06-15
    • 2022-01-11
    • 2021-10-31
    • 1970-01-01
    相关资源
    最近更新 更多