将蟑螂数据库从本地机器迁移到GCP Kubernetes引擎 按照说明创建本地3节点安全群集

将蟑螂数据库从本地机器迁移到GCP Kubernetes引擎 按照说明创建本地3节点安全群集,kubernetes,cockroachdb,Kubernetes,Cockroachdb,使用以下DB连接字符串运行go示例,以连接到安全群集 sql.Open(“postgres”,“postgresql://root@localhost:26257/dbname?sslmode=verify full&sslrootcert=&sslcert=&sslkey=“) Cockroach DB在本地工作得很好,所以我决定使用这些指令将DB(与DB解决方案中的一样,而不是实际数据)移动到GCP Kubernetes引擎 一切都很好——创建了POD,可以从云控制台使用内置SQL客户端

使用以下DB连接字符串运行go示例,以连接到安全群集

sql.Open(“postgres”,“postgresql://root@localhost:26257/dbname?sslmode=verify full&sslrootcert=&sslcert=&sslkey=“)

Cockroach DB在本地工作得很好,所以我决定使用这些指令将DB(与DB解决方案中的一样,而不是实际数据)移动到GCP Kubernetes引擎

一切都很好——创建了POD,可以从云控制台使用内置SQL客户端

现在我想使用前面的示例应用程序连接到这个新的云数据库。我使用
kubectl expose
命令创建了一个负载平衡器,并在代码中使用了一个公共ip

如何获取新的
ca.crt、client.root.crt、client.root.key
文件,以便在GCP上运行的数据库的连接字符串中使用

我们有5个以上的开发人员,他们的想法是让他们在本地机器上编写代码,并使用连接字符串和证书连接到云数据库


或者有没有更好的方法让5+开发人员使用在GCP上运行的单个DEV DB群集?

针对Kubernetes CockroachDB群集运行的推荐方法是让您的应用程序在同一群集上运行。这使得证书生成相当简单。请参见示例及其示例

上面的配置使用init容器发送客户机证书的CSR,并使其可供容器使用(在本例中,只有cockroach sql客户机,但它可能是其他任何东西)

如果您希望在kubernetes集群之外运行客户机,最简单的方法是直接从客户机pod复制生成的证书。建议使用非
root
用户:

  • 通过SQL命令
  • 修改新用户的配置并启动新客户端
  • 批准客户证书的CSR
  • 等待pod完成初始化
  • ca.crt
    client..crt
    client..key
    从pod复制到本地计算机上
注意:kubernetes群集的公共DNS或IP地址很可能未包含在节点证书中。您需要在启动节点之前修改,或者将连接URL更改为
sslmode=verify ca
(有关详细信息,请参阅)


或者,您可以使用密码身份验证,在这种情况下,您只需要CA证书。

对不起,我是GCP和Kubernetes的新手。如何执行此操作:
将ca.crt、client..crt和client..key从pod复制到本地计算机上
您可以使用
kubectl cp/:/cockroach certs certs
,其中pod是使用所需的客户端证书和密钥初始化的pod(并且还具有ca证书)。我要再次强调的是,最好在kubernetes集群内运行客户机。谢谢,kubetcl拷贝工作正常(但是ca.crt有符号链接,所以必须从不同的文件夹中获取)。我还必须将ssl模式更改为
验证ca
。好的,我将把问题标记为已回答。关于这项建议,没有更多的东西了。我们有一个连接到蟑螂数据库的golang web应用程序。我们还有5个以上的开发人员,我们希望在本地机器上共享数据库,但不共享代码。最好的方法是什么?另外,如果web应用程序在同一集群中运行,我猜我不需要负载平衡器,我只需要使用客户端pod?这是正确的吗?嘿,有没有一个教程可以将go应用程序迁移到GCP,这样它就可以连接到GCP上的Kubernetes蟑螂数据库集群?基本上,我们也希望将go应用程序移动到GCP,这是基于在同一集群中运行应用程序的建议?您可以修改上面链接的
客户端安全
配置来运行docker映像,而不是cockroachdb sql shell。