怎樣在 Kubernetes 上執行 PostgreSQL
建立統一管理的,具備靈活性的雲原生生產部署來部署一個個性化的資料庫即服務(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。
via: https://opensource.com/article/19/3/how-run-postgresql-kubernetes
作者:Jonathan S. Katz 選題:lujun9972 譯者:arrowfeng 校對:wxy
本文由 LCTT 原創編譯,Linux中國 榮譽推出
相關文章
- 在kubernetes上執行WASM負載ASM負載
- 怎樣在sqlite3上執行SQL語句SQLite
- 怎樣在windows上定時執行python指令碼WindowsPython指令碼
- 在Kubernetes上執行SAP UI5應用(上)UI
- 怎樣在Python中執行cmdPython
- Docker 教程:在 Mac M2 上執行 PostgreSQLDockerMacSQL
- 「在 Kubernetes 上執行 Pgpool-Il」實現 PostgreSQL 查詢(讀)負載均衡和連線池SQL負載
- postgresql怎麼執行sqlSQL
- 6個在本地機器上執行 Kubernetes 的工具
- 怎樣在JavaScript中建立一個worker執行緒?JavaScript執行緒
- 在生產中執行kubernetes上的Istio
- 在NuoDB上執行AsteriskAST
- JS是怎樣執行的JS
- Webpack 是怎樣執行的?Web
- 在本地執行Kubernetes的3種主流方式
- 怎樣停止一個正在執行的執行緒執行緒
- 《MySQL是怎樣執行的:從根兒上理解 MySQL》PDFMySql
- 怎樣在QueryBuilder中使用PostgreSQL中的?操作符UISQL
- Webpack 是怎樣執行的?(一)Web
- python怎樣執行js語句PythonJS
- python中怎樣執行指令碼Python指令碼
- 轉:在Linux上執行WinFormLinuxORM
- wine-在mac上執行exe執行檔案Mac
- 怎樣在 Ubuntu 上禁用 IPv6 ?Ubuntu
- 怎樣在 Ubuntu Linux 上安裝 MySQLUbuntuLinuxMySql
- 執行緒池是怎樣工作的?執行緒
- 讀《mysql是怎樣執行的》有感MySql
- Hazelcast JET在Spring Boot上執行ASTSpring Boot
- 在VSCode上執行Python程式(Mac)VSCodePythonMac
- 代理IP怎樣保障Python穩定執行?Python
- 在 Kubernetes 中執行 Locust 與 Selenium:安裝 Chrome 和 ChromeDriverChrome
- 在 Kubernetes 中執行 Oracle 資料庫的新方法Oracle資料庫
- Hummingbird: 在Web上執行Flutter應用WebFlutter
- Jepsen發現PostgreSQL重大Bug:在單個PostgreSQL例項上以可序列化隔離執行的事務實際上是不可序列的SQL
- ThreadPoolExecutor執行緒池任務執行失敗的時候會怎樣thread執行緒
- 紋理是怎樣顯示在模型上的模型
- 怎樣在 Mac 上使用 App Store 更新軟體MacAPP
- PostgreSQL執行計劃變化SQL