怎樣在 Kubernetes 上執行 PostgreSQL

2019-04-22 10:56:00

建立統一管理的,具備靈活性的雲原生生產部署來部署一個個性化的資料庫即服務(DBaaS)。

通過在 Kubernetes 上執行 PostgreSQL 資料庫,你能建立統一管理的,具備靈活性的雲原生生產部署應用來部署一個個性化的資料庫即服務為你的特定需求進行量身客製化。

對於 Kubernetes,使用 Operator 允許你提供額外的上下文去管理有狀態應用。當使用像PostgreSQL 這樣開源的資料庫去執行包括設定、擴充套件、高可用和使用者管理時,Operator 也很有幫助。

讓我們來探索如何在 Kubernetes 上啟動並執行 PostgreSQL。

安裝 PostgreSQL Operator

將 PostgreSQL 和 Kubernetes 結合使用的第一步是安裝一個 Operator。在針對 Linux 系統的Crunchy 的快速啟動指令碼的幫助下,你可以在任意基於 Kubernetes 的環境下啟動和執行開源的Crunchy PostgreSQL Operator

快速啟動指令碼有一些必要前提:

  • Wget 工具已安裝。
  • kubectl 工具已安裝。
  • 在你的 Kubernetes 中已經定義了一個 StorageClass
  • 擁有叢集許可權的可存取 Kubernetes 的使用者賬號,以安裝 Operator 的 RBAC 規則。
  • 一個 PostgreSQL Operator 的 名稱空間

執行這個指令碼將提供給你一個預設的 PostgreSQL Operator 部署,其預設假設你採用 動態儲存和一個名為 standard 的 StorageClass。這個指令碼允許使用者採用自定義的值去覆蓋這些預設值。

通過下列命令,你能下載這個快速啟動指令碼並把它的許可權設定為可執行:

wget <https://raw.githubusercontent.com/CrunchyData/postgres-operator/master/examples/quickstart.sh>chmod +x ./quickstart.sh

然後你執行快速啟動指令碼:

./examples/quickstart.sh

在指令碼提示你相關的 Kubernetes 叢集基本資訊後,它將執行下列操作:

  • 下載 Operator 組態檔
  • $HOME/.pgouser 這個檔案設定為預設設定
  • 以 Kubernetes Deployment 部署 Operator
  • 設定你的 .bashrc 檔案包含 Operator 環境變數
  • 設定你的 $HOME/.bash_completion 檔案為 pgo bash_completion 檔案

在快速啟動指令碼的執行期間,你將會被提示在你的 Kubernetes 叢集設定 RBAC 規則。在另一個終端,執行快速啟動命令所提示你的命令。

一旦這個指令碼執行完成,你將會得到提示設定一個埠以轉發到 PostgreSQL Operator pod。在另一個終端,執行這個埠轉發操作;這將允許你開始對 PostgreSQL Operator 執行命令!嘗試輸入下列命令建立叢集:

pgo create cluster mynewcluster

你能輸入下列命令測試你的叢集執行狀況:

pgo test mynewcluster

現在,你能在 Kubernetes 環境下管理你的 PostgreSQL 資料庫了!你可以在官方文件找到非常全面的命令,包括擴容,高可用,備份等等。

這篇文章部分參考了該作者為 Crunchy 部落格而寫的在 Kubernetes 上開始執行 PostgreSQL