gpt4 book ai didi

kubernetes - 如何在 Kubernetes 上设置可从 NodeJs 访问的安全 cockroachdb

转载 作者:行者123 更新时间:2023-12-02 12:07:44 25 4
gpt4 key购买 nike

我是 Kubernetes 和 CockroachDB 的新手。我在 Kubernetes 集群上运行了一个安全的多节点节点数据库,并且能够将其暴露在外部并使用 cockroach UI 对其进行监控。

service list

现在我想使用 pg for Node 或 sequelize 从节点应用程序访问它。但是我得到连接超时。

我相信我必须创建一个客户端证书并使用它来建立连接,但我找不到关于如何执行此操作的 Kubernetes 特定文档。
如果有人成功了,你是如何创建证书的,你是如何在你的节点应用程序中使用它的?

最佳答案

我已经弄清楚了如何通过获取我为本地 sql 客户端生成的证书并在我的节点应用程序中重新使用它们来做到这一点 - 就像这样

const pool = new Pool({
host: 'xxxx',
max: 20,
idleTimeoutMillis: 30000,
connectionTimeoutMillis: 2000,
port:26257,
user:"root",
database:"xxxx",
ssl : {
rejectUnauthorized : false,
ca : fs.readFileSync("./ca/ca.crt").toString(),
key : fs.readFileSync("./ca/client.xxxx.key").toString(),
cert : fs.readFileSync("./ca/client.xxxx.crt").toString()
}

});

我像这样在 kubernetes 中将公共(public) pod 作为服务公开
kubectl expose service cockroachdb-public --port=26257 --target-port=26257 --name=cp --type=LoadBalancer

并获取最终分配给服务的外部 IP 地址。

实际上很简单,但是当你第一次接近它时会挠头。感谢那些花时间发表评论的人。

@samstride 刚刚注意到您的评论。使用 root 以外的用户可能会更好,但是您可以像这样获得这些证书(也可能是其他方式)。

ca(如果您仍在运行,请使用 cockroachdb-client-secure pod)
kubectl exec cockroachdb-client-secure -it -- cat /cockroach-certs/ca.crt  > ./ca.crt

key
kubectl get secret default.client.root -o jsonpath='{.data.key}' | base64 --decode > client.root.key 

证书
kubectl get secret default.client.root -o jsonpath='{.data.cert}' | base64 --decode > client.root.crt

关于kubernetes - 如何在 Kubernetes 上设置可从 NodeJs 访问的安全 cockroachdb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48682189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com