成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

快速上手Zalando Postgres Operator,你會了嗎?

云計算 云原生
只需應用 yaml 清單即可安裝 Postgres Operator。注意,我們提供的 /manifests 目錄僅作為示例;您應該考慮將清單調整為您的 K8s 環境(例如:命名空間)。

前提條件

由于 Postgres Operator 是為 Kubernetes (K8s) 框架設計的,因此首先設置它。對于本地測試,我們建議使用以下解決方案之一:

  • minikube, 在 VM 內創建單節點 K8s 集群(需要 KVM 或 VirtualBox)

https://github.com/kubernetes/minikube/releases

  • kind 和 k3d, 允許創建在 Docker 上運行的多節點 K8s 集群(需要 Docker)

https://kind.sigs.k8s.io/

https://k3d.io

要與 K8s 基礎設施交互,請安裝其 CLI 運行時 kubectl。

https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-binary-via-curl

本快速入門假設您已經啟動了 minikube 或創建了本地 kind 集群。請注意,您還可以使用 Docker Desktop for Mac 中內置的 K8s 支持來遵循本教程的步驟。您必須將 minikube start 和 minikube delete 替換為您的啟動操作,以獲得 Docker 內置的 K8s 支持。

配置選項

只能在部署新的 Postgres 集群之前配置 Postgres Operator。這可以通過兩種方式工作:通過 ConfigMap 或自定義 OperatorConfiguration 對象。有關配置的更多詳細信息,請參見此處。

  • https://postgres-operator.readthedocs.io/en/latest/reference/operator_parameters/

部署選項

Postgres Operator 可以通過以下方式部署:

  • Manual deployment
  • Kustomization
  • Helm chart

Kubernetes 上的手動部署設置

只需應用 yaml 清單即可安裝 Postgres Operator。注意,我們提供的 /manifests 目錄僅作為示例;您應該考慮將清單調整為您的 K8s 環境(例如:命名空間)。

# 首先,克隆存儲庫并切換到目錄
git clone https://github.com/zalando/postgres-operator.git
cd postgres-operator

# 按以下順序應用清單
kubectl create -f manifests/configmap.yaml # 配置
kubectl create -f manifests/operator-service-account-rbac.yaml # 身份和權限
kubectl create -f manifests/postgres-operator.yaml # 部署
kubectl create -f manifests/api-service.yaml # 通過 UI 使用 operator API

有一個 Kustomization manifest 結合了上述資源(CRD 除外)— 它可以與 kubectl 1.14 或更高版本一起使用,如下所示:

  • https://github.com/kubernetes-sigs/kustomize
  • https://github.com/zalando/postgres-operator/blob/master/manifests/kustomization.yaml
kubectl apply -k github.com/zalando/postgres-operator/manifests

為方便起見,我們使用 run_operator_locally 腳本通過 minikube 自動啟動 operator。它應用 acid-minimal-cluster。清單。

  • https://github.com/zalando/postgres-operator/blob/master/manifests/minimal-postgres-manifest.yaml
./run_operator_locally.sh

OpenShift 上的手動部署設置

要在 OpenShift 中安裝 Postgres Operator,您必須將配置參數 kubernetes_use_configmaps 更改為 "true"。否則,operator 和 Patroni 將在 OpenShift 不支持的 Endpoints 中存儲 leader 和配置 keys。對于 postgres-operator 和 postgres-pod 集群角色,這還需要一組稍微不同的規則。

oc create -f manifests/operator-service-account-rbac-openshift.yaml

Helm chart

或者,可以使用提供的 Helm chart 安裝 operator,從而為您節省手動步驟。克隆此 repo 并將目錄更改為 repo 根目錄。安裝 Helm v3 后,您應該能夠運行:

  • https://helm.sh/
helm install postgres-operator ./charts/postgres-operator

該 chart 適用于 Helm 2 和 Helm 3。使用 v3 時,將跳過 v2 中的 crd-install hook 并發出警告。使用 Helm 2 安裝應用程序的文檔可以在 v2 文檔中找到。

  • https://v2.helm.sh/docs/

該 chart 還托管在:

  • https://opensource.zalando.com/postgres-operator/charts/postgres-operator/

檢查 Postgres Operator 是否正在運行

啟動 operator 可能需要幾秒鐘。在應用 Postgres 集群清單之前檢查 operator pod 是否正在運行。

# 如果您使用 yaml 清單創建了 operator
kubectl get pod -l name=postgres-operator

# 如果您使用 helm chart 創建了 operator
kubectl get pod -l app.kubernetes.io/name=postgres-operator

如果 operator 沒有進入 Running 狀態,請使用 kubectl describe 檢查 deployment 或 pod 的最新 K8s 事件或檢查 operator 日志:

kubectl logs "$(kubectl get pod -l name=postgres-operator 
--output='name')"

部署 operator UI

在以下段落中,我們將描述如何使用 kubectl 從命令行訪問和管理 PostgreSQL 集群。但也可以通過基于瀏覽器的 Postgres Operator UI 來完成。在部署 UI 之前,請確保 operator 正在運行,并且可以通過 K8s service 訪問其 REST API。此 API 的 URL 必須在 UI 的部署清單中配置。

  • https://postgres-operator.readthedocs.io/en/latest/operator-ui/
  • https://github.com/zalando/postgres-operator/blob/master/manifests/api-service.yaml
  • https://github.com/zalando/postgres-operator/blob/master/ui/manifests/deployment.yaml#L43

要部署 UI,只需應用其所有清單文件或使用 UI helm chart:

# 手動部署
kubectl apply -f ui/manifests/

# 或 kustomization
kubectl apply -k github.com/zalando/postgres-operator/ui/manifests

# 或 helm chart
helm install postgres-operator-ui ./charts/postgres-operator-ui

與 operator 一樣,檢查 UI pod 是否進入 Running 狀態:

# 如果您使用 yaml 清單創建了 operator
kubectl get pod -l name=postgres-operator-ui

# 如果您使用 helm chart 創建了 operator
kubectl get pod -l app.kubernetes.io/name=postgres-operator-ui

您現在可以通過端口轉發 UI pod(注意 label selector)訪問 Web 界面,并在瀏覽器中輸入 localhost:8081:

kubectl port-forward svc/postgres-operator-ui 8081:80

UI 文檔中詳細解釋了可用選項。

https://postgres-operator.readthedocs.io/en/latest/operator-ui/

創建 Postgres cluster

如果 operator pod 正在運行,它會偵聽有關 postgresql 資源的新事件。現在,是時候提交您的第一個 Postgres 集群清單了。

# 創建一個 Postgres cluster
kubectl create -f manifests/minimal-postgres-manifest.yaml

在 cluster 清單提交并通過驗證后,operator 將創建 Service 和 Endpoint 資源以及一個 StatefulSet,它根據清單中指定的實例數量啟動新的 Pod。所有資源都像 cluster 一樣命名。數據庫 pod 可以通過它們的數字后綴來識別,從 -0 開始。他們運行 Zalando 的 Spilo 容器鏡像。至于 services 和 endpoints,將有一個用于 master pod,另一個用于所有副本(-repl 后綴)。檢查是否所有組件都出現了。使用標簽 application=spilo 過濾并列出標簽 spilo-role 以查看當前誰是 master。

# 檢查部署的 cluster
kubectl get postgresql

# 檢查創建的 database pod
kubectl get pods -l application=spilo -L spilo-role

# 檢查創建的 service 資源
kubectl get svc -l application=spilo -L spilo-role

通過 psql 連接到 Postgres cluster

您可以在 database pod 上創建端口轉發以連接到 Postgres。有關說明,請參閱用戶指南。使用 minikube 也很容易從指向 master pod 的 K8s service 中檢索連接字符串:

export HOST_PORT=$(minikube service acid-minimal-cluster --url | sed 's,.*/,,')
export PGHOST=$(echo $HOST_PORT | cut -d: -f 1)
export PGPORT=$(echo $HOST_PORT | cut -d: -f 2)

從 cluster 中創建的 K8s Secret 中檢索密碼。默認情況下拒絕非加密連接,因此將 SSL 模式設置為 require:

export PGPASSWORD=$(kubectl get secret postgres.acid-minimal-cluster.credentials -o 'jsonpath={.data.password}' | base64 -d)
export PGSSLMODE=require
psql -U postgres

刪除 Postgres cluster

要刪除 Postgres 集群,只需刪除 postgresql 自定義資源。

kubectl delete postgresql acid-minimal-cluster

這應該刪除關聯的 StatefulSet、database Pods、Services 和 Endpoints。PersistentVolume 被釋放,PodDisruptionBudget 被刪除。但是,Secrets 不會被刪除,并且備份將保留在原位。

在集群仍在啟動或在該階段卡住時刪除集群時,可能會刪除 postgresql 資源,留下孤立的組件。在創建新的 Postgres 集群時,這可能會導致麻煩。對于全新的設置,您可以刪除本地 minikube 或 kind 集群并重新開始。

https://github.com/zalando/postgres-operator/issues/551

責任編輯:武曉燕 來源: 黑客下午茶
相關推薦

2022-04-11 19:08:06

設施作用域pod

2023-07-30 22:29:51

BDDMockitoAssert測試

2022-04-12 19:38:44

PostgresOperator數據庫

2024-05-10 08:00:48

K8soperatorGitHub

2024-06-19 09:47:21

2023-08-01 12:51:18

WebGPT機器學習模型

2024-01-02 12:05:26

Java并發編程

2024-01-19 08:25:38

死鎖Java通信

2022-04-01 08:23:17

InputstreString字符串

2024-02-04 00:00:00

Effect數據組件

2023-07-26 13:11:21

ChatGPT平臺工具

2023-01-10 08:43:15

定義DDD架構

2024-03-06 08:28:16

設計模式Java

2022-06-16 07:50:35

數據結構鏈表

2022-12-06 07:53:33

MySQL索引B+樹

2023-01-31 08:02:18

2023-10-06 14:49:21

SentinelHystrixtimeout

2022-07-13 08:16:49

RocketMQRPC日志

2022-09-26 11:03:25

Java反射漏洞

2023-05-05 06:54:07

MySQL數據查詢
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品中文字幕 | 蜜臀网 | 欧美精品91| 天堂中文在线观看 | 一区在线播放 | 一级毛片免费完整视频 | 99精品欧美一区二区三区 | 在线免费国产 | 精品国产一区二区三区免费 | 国产精品欧美精品日韩精品 | 超碰97av | 色爱区综合 | 日韩免费在线观看视频 | 精品一二区 | 亚洲第一福利网 | 天天久久 | 欧美成人a∨高清免费观看 老司机午夜性大片 | 日韩欧美视频在线 | 色性av| 97日日碰人人模人人澡分享吧 | 成人欧美一区二区 | 色婷婷综合久久久中文字幕 | 国产做a爱片久久毛片 | 久久精品av麻豆的观看方式 | 日本在线看片 | 综合色播 | 欧美久久国产精品 | 一区二区三区四区免费视频 | 小早川怜子xxxxaⅴ在线 | 伊人狠狠| 亚洲精品一区二区在线 | 日日艹夜夜艹 | 男人天堂99 | 日本不卡一区二区三区 | 国产区在线观看 | 操操日| 久久久久久高潮国产精品视 | 一区二区在线不卡 | 成人精品一区 | 亚洲国产成人一区二区 | 亚洲久久一区 |