searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享

zalando-operator-pg数据库容器化部署方案

2024-06-28 10:02:55
11
0

官方:github.com/zalando/postgres-operator

一、概念

Postgres操作员 在 Kubernetes (K8s) 上管理 PostgreSQL 集群:

  1. 操作员监视 PostgreSQL 集群清单的添加、更新和删除,并相应地更改正在运行的集群。例如,当用户提交新的清单时,操作员会获取该清单并生成一个新的 Postgres 集群以及所有必要的实体,例如 K8s StatefulSets 和 Postgres 角色。有关 清单可能包含的设置,请参阅此 Postgres 集群清单
  2. 操作员还会监视自己配置的更新, 并在必要时更改正在运行的 Postgres 集群。例如,如果 Pod 中的 Docker 映像发生更改,则操作员会执行滚动更新,这意味着它会使用新的 Docker 映像一一重新生成每个托管 StatefulSet 的 Pod。
  3. 最后,操作员定期将每个 Postgres 集群的实际状态与集群清单中定义的所需状态同步。
  4. 操作员的目标是免提,因为配置只能通过清单进行。这使得无需直接访问 K8s 即可轻松集成到自动化部署管道中

二、范围

Postgres Operator 的作用是提供、修改配置和清理使用 Patroni 的 Postgres 集群,基本上是为了让在 K8s 上运行基于 Patroni 的集群变得简单方便。供应和修改一方面包括 K8s 资源,但也包括一旦集群启动并运行后的数据库和角色供应。我们尝试将尽可能多的工作留给 K8s 和适合它的 Patroni,尤其是集群引导程序和高可用性。然而,运营商参与了一些总体编排,例如滚动更新以改善用户体验。

在当前状态下,监视或调整 Postgres 不在操作员的范围内。然而,通过全局可配置的 sidecar,我们提供了足够的灵活性来补充其他工具,如ZMONPrometheus或更多 Postgres 特定选项。

# First, clone the repository and change to the directory
git clone github.com/zalando/postgres-operator.git
cd postgres-operator

# apply the manifests in the following order
kubectl create -f manifests/configmap.yaml  # configuration
kubectl create -f manifests/operator-service-account-rbac.yaml  # identity and permissions
kubectl create -f manifests/postgres-operator.yaml  # deployment
kubectl create -f manifests/api-service.yaml  # operator API to be used by UI
#如果你已经使用 yaml manifests 创建了操作符
kubectl get pod -l name=postgres-operator

#如果你已经使用 helm chart 创建了操作符
kubectl get pod -l app.kubernetes.io/name=postgres-operator
#手动部署
kubectl apply -f ui/manifests/

#或自定义
kubectl apply -k github.com/zalando/postgres-operator/ui/manifests

#或 helm chart 
helm install postgres-operator-ui ./charts/postgres-operator-ui
#如果你已经使用 yaml manifests 创建了操作符
kubectl get pod -l name=postgres-operator-ui

#如果你已经使用 helm chart 创建了操作符
kubectl get pod -l app.kubernetes.io/name=postgres-operator-ui
kubectl port-forward svc/postgres-operator-ui 8081:80
#创建一个 Postgres 集群
kubectl create -f manifests/minimal-postgres-manifest.yaml
镜像列表:

registry.opensource.zalan.do/acid/pgbouncer:master-19
registry.opensource.zalan.do/acid/spilo-14:2.1-p3
registry.opensource.zalan.do/acid/logical-backup:v1.7.1
registry.opensource.zalan.do/acid/postgres-operator:v1.7.1
registry.opensource.zalan.do/acid/postgres-operator-ui:v1.7.1
postgres:14

 

0条评论
作者已关闭评论
师****文
1文章数
0粉丝数
师****文
1 文章 | 0 粉丝
师****文
1文章数
0粉丝数
师****文
1 文章 | 0 粉丝

zalando-operator-pg数据库容器化部署方案

2024-06-28 10:02:55
11
0

官方:github.com/zalando/postgres-operator

一、概念

Postgres操作员 在 Kubernetes (K8s) 上管理 PostgreSQL 集群:

  1. 操作员监视 PostgreSQL 集群清单的添加、更新和删除,并相应地更改正在运行的集群。例如,当用户提交新的清单时,操作员会获取该清单并生成一个新的 Postgres 集群以及所有必要的实体,例如 K8s StatefulSets 和 Postgres 角色。有关 清单可能包含的设置,请参阅此 Postgres 集群清单
  2. 操作员还会监视自己配置的更新, 并在必要时更改正在运行的 Postgres 集群。例如,如果 Pod 中的 Docker 映像发生更改,则操作员会执行滚动更新,这意味着它会使用新的 Docker 映像一一重新生成每个托管 StatefulSet 的 Pod。
  3. 最后,操作员定期将每个 Postgres 集群的实际状态与集群清单中定义的所需状态同步。
  4. 操作员的目标是免提,因为配置只能通过清单进行。这使得无需直接访问 K8s 即可轻松集成到自动化部署管道中

二、范围

Postgres Operator 的作用是提供、修改配置和清理使用 Patroni 的 Postgres 集群,基本上是为了让在 K8s 上运行基于 Patroni 的集群变得简单方便。供应和修改一方面包括 K8s 资源,但也包括一旦集群启动并运行后的数据库和角色供应。我们尝试将尽可能多的工作留给 K8s 和适合它的 Patroni,尤其是集群引导程序和高可用性。然而,运营商参与了一些总体编排,例如滚动更新以改善用户体验。

在当前状态下,监视或调整 Postgres 不在操作员的范围内。然而,通过全局可配置的 sidecar,我们提供了足够的灵活性来补充其他工具,如ZMONPrometheus或更多 Postgres 特定选项。

# First, clone the repository and change to the directory
git clone github.com/zalando/postgres-operator.git
cd postgres-operator

# apply the manifests in the following order
kubectl create -f manifests/configmap.yaml  # configuration
kubectl create -f manifests/operator-service-account-rbac.yaml  # identity and permissions
kubectl create -f manifests/postgres-operator.yaml  # deployment
kubectl create -f manifests/api-service.yaml  # operator API to be used by UI
#如果你已经使用 yaml manifests 创建了操作符
kubectl get pod -l name=postgres-operator

#如果你已经使用 helm chart 创建了操作符
kubectl get pod -l app.kubernetes.io/name=postgres-operator
#手动部署
kubectl apply -f ui/manifests/

#或自定义
kubectl apply -k github.com/zalando/postgres-operator/ui/manifests

#或 helm chart 
helm install postgres-operator-ui ./charts/postgres-operator-ui
#如果你已经使用 yaml manifests 创建了操作符
kubectl get pod -l name=postgres-operator-ui

#如果你已经使用 helm chart 创建了操作符
kubectl get pod -l app.kubernetes.io/name=postgres-operator-ui
kubectl port-forward svc/postgres-operator-ui 8081:80
#创建一个 Postgres 集群
kubectl create -f manifests/minimal-postgres-manifest.yaml
镜像列表:

registry.opensource.zalan.do/acid/pgbouncer:master-19
registry.opensource.zalan.do/acid/spilo-14:2.1-p3
registry.opensource.zalan.do/acid/logical-backup:v1.7.1
registry.opensource.zalan.do/acid/postgres-operator:v1.7.1
registry.opensource.zalan.do/acid/postgres-operator-ui:v1.7.1
postgres:14

 

文章来自个人专栏
容器与k8s
1 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0