簡體   English   中英

將蟑螂數據庫從本地計算機遷移到GCP Kubernetes Engine

[英]Migrating Cockroach DB from local machine to GCP Kubernetes Engine

  • 按照此處的說明創建本地3節點安全集群
  • 使用下面的數據庫連接字符串運行了go示例應用 ,以連接到安全集群

    sql.Open("postgres", "postgresql://root@localhost:26257/dbname?sslmode=verify-full&sslrootcert=<location of ca.crt>&sslcert=<location of client.root.crt>&sslkey=<location of client.root.key>")

Cockroach數據庫在本地運行良好,因此我決定按照此處的說明將數據庫(與數據庫解決方案中一樣,而不是實際數據)移至GCP Kubernetes Engine

一切正常-創建了pod並可以使用雲控制台中的內置SQL客戶端。

現在,我想使用前面的示例應用程序現在連接到這個新的雲數據庫。 我使用kubectl expose命令創建了一個負載均衡器,並在代碼中使用了一個公共IP。

如何獲取新的ca.crt, client.root.crt, client.root.key文件在我的連接字符串中用於在GCP上運行的數據庫?

我們有5個以上的開發人員,其想法是讓他們在本地計算機上編寫代碼,並使用連接字符串和證書連接到雲數據庫。

還是有更好的方法讓5個以上的開發人員使用在GCP上運行的單個DEV DB集群?

建議對Kubernetes CockroachDB集群運行的方法是讓您的應用程序在同一集群中運行。 這使得證書生成相當簡單。 請參閱內置的SQL客戶端示例及其配置文件

上面的配置使用一個初始化容器來發送客戶端證書的CSR,並使它們可用於該容器(在這種情況下,僅是蟑螂sql客戶端,但是其他任何東西)。

如果您希望在kubernetes集群之外運行客戶端,最簡單的方法是直接從客戶端pod復制生成的證書。 建議使用非root用戶:

  • 通過SQL命令創建用戶
  • 修改新用戶的client-secure.yaml配置並啟動新的客戶端窗格
  • 批准客戶證書的CSR
  • 等待Pod完成初始化
  • 將pod中的ca.crtclient.<username>.crtclient.<username>.key復制到本地計算機上

注意 :您的kubernetes集群的公共DNS或IP地址很可能包含在節點證書中。 在啟動節點之前,您需要修改主機名/地址列表 ,或者將連接URL更改為sslmode=verify-ca (有關詳細信息,請參見客戶端連接參數 )。

或者,您可以使用密碼身份驗證,在這種情況下,您僅需要CA證書。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM