您的位置:首页 > 数据库 > SQL

云原生 PostgreSQL 集群 - PGO:来自 Crunchy Data 的 Postgres Operator

2022-02-23 12:23 1296 查看

使用

PGO
Kubernetes
上运行
Cloud Native PostgreSQL
:来自
Crunchy Data
Postgres Operator

  • Crunchy Data
  • Postgres Operator

    PGO
    是由
    Crunchy Data
    开发并包含在
    Crunchy PostgreSQL for Kubernetes
    中的
    Postgres Operator
    ,可自动化并简化在
    Kubernetes
    上部署和管理开源
    PostgreSQL
    集群。

    无论您是需要启动并运行一个简单的

    Postgres
    集群,还是需要在生产中部署一个高可用性、容错群集群,或者是运行自己的
    数据库即服务(database-as-a-service)
    PostgreSQL Operator
    都提供了保持云原生
    Postgres
    集群健康所需的基本功能,包括:

    Postgres 集群供应

    轻松创建、扩展和删除 PostgreSQL 集群
    ,同时完全自定义您的
    Pod
    PostgreSQL
    配置!

  • 轻松创建、扩展和删除 PostgreSQL 集群

    高可用性

    由基于

    分布式共识的高可用性解决方案
    支持的安全、自动故障转移。使用
    Pod Anti-Affinity
    来帮助恢复;您可以配置它的
    aggressive
    ! 失败的初选会自动恢复,从而加快恢复时间。

  • Pod Anti-Affinity

    支持在

    多个 Kubernetes 集群
    中工作的
    备用 PostgreSQL 集群

    灾难恢复

    备份和恢复利用开源

    pgBackRest
    实用程序,
    包括对完整、增量和差异备份以及高效增量恢复的支持
    。 设置您希望备份保留多长时间。适用于非常大的数据库!

    TLS

    通过为 PostgreSQL 服务器启用 TLS 来保护应用程序和数据服务器之间的通信,包括强制所有连接使用

    TLS
    的能力。

    监控

    使用开源

    pgMonitor
    库跟踪
    PostgreSQL
    集群的运行状况。

  • pgMonitor

    PostgreSQL 用户管理

    使用强大的命令从您的

    PostgreSQL
    集群中快速添加和删除用户。 管理密码过期策略或使用您首选的
    PostgreSQL
    身份验证方案。

    升级管理

    以最小的可用性影响安全地应用

    PostgreSQL
    更新到您的
    PostgreSQL
    集群。

    高级复制支持

    对于对丢失事务敏感的工作负载,可以在

    异步复制
    同步复制
    之间进行选择。

  • 同步复制

    克隆

    使用

    pgo create cluster --restore-from
    从现有集群或备份创建新集群。

    连接池

    使用

    pgBouncer
    进行连接池。

    K8S 亲和力和容忍度

    使用 node affinity(节点亲和性)

    PostgreSQL
    集群部署到您偏好的
    Kubernetes
    节点
    ,或者指定
    Kubernetes
    可以将
    PostgreSQL
    实例调度到哪些节点并具有 tolerations(容忍度)

  • Kubernetes 节点
  • tolerations(容忍度)

    定期备份

    选择备份类型(完整、增量、差异)以及您希望它在每个

    PostgreSQL
    集群上发生的频率

    备份到 S3 或 GCS

    将您的备份存储在 Amazon S3、任何支持 S3 协议的对象存储系统或 GCS 中。

    PostgreSQL Operator
    可以从这些备份中备份、恢复和创建新集群。

  • GCS

    多命名空间支持

    您可以控制

    PGO(Postgres Operator)
    如何利用具有多种不同部署模型的 Kubernetes 命名空间

    • PGO
      和所有
      PostgreSQL
      集群部署到同一个命名空间
    • PGO
      部署到一个命名空间,并将所有
      PostgreSQL
      集群部署到不同的命名空间
    • PGO
      部署到一个命名空间,并跨多个命名空间管理
      PostgreSQL
      集群
    • 使用
      pgo
      客户端运行
      pgo create namespace
      pgo delete namespace
      动态添加和删除由
      PostgreSQL Operator
      管理的命名空间

    Kubernetes 命名空间

    完全可定制性

    Postgres Operator(PGO)
    使
    Postgres
    在支持
    Kubernetes
    的平台上启动和运行变得容易,但也可以进行进一步的自定义。因此,
    PGO
    允许您进一步自定义您的部署,包括:

  • 带上您自己的受信任证书颁发机构
    (CA)
    以与
    Operator API server
    一起使用
  • 覆盖每个集群的
    PostgreSQL
    配置
  • 工作原理

    Crunchy PostgreSQL Operator
    扩展了
    Kubernetes
    ,为快速创建和管理
    PostgreSQL
    集群提供更高级别的抽象。
    Crunchy PostgreSQL Operator
    利用称为
    “自定义资源(Custom Resources)”
    Kubernetes
    概念来创建多个
    自定义资源定义 (CRD)
    ,以允许管理
    PostgreSQL
    集群。

    包含的组件

    使用

    PostgreSQL Operator
    部署的 PostgreSQL 容器包括以下组件:

  • PL/Python + PL/Python 3
  • PL/Perl
  • pgAudit
  • pgAudit Analyze
  • pgnodemx
  • pg_cron
  • pg_partman
  • set_user
  • TimescaleDB (Apache 2 edition)
  • wal2json
  • pgBackRest
  • pgBouncer
  • pgAdmin 4
  • pgMonitor
  • Patroni
  • LLVM (for JIT compilation)

    除上述内容外,地理空间增强的

    PostgreSQL + PostGIS
    容器还添加了以下组件:

  • pgRouting
  • PL/R

    PostgreSQL Operator Monitoring 使用以下组件:

  • Prometheus
  • Grafana
  • Alertmanager

    未直接与 PostgreSQL Operator 集成但可以与其一起工作的其他容器包括:

  • pg_upgrade
  • pgBench

    有关

    PostgreSQL Operator
    的哪些版本包含哪些组件的更多信息,请访问文档的兼容性部分。

    支持的平台

    PGO
    Postgres Operator
    ,是
    Kubernetes-native
    的,并保持与
    Kubernetes 1.11
    的向后兼容性,并针对以下平台进行了测试:

    • Kubernetes 1.17+
    • Openshift 4.4+
    • OpenShift 3.11
    • Google Kubernetes Engine (GKE), including Anthos
    • Amazon EKS
    • Microsoft AKS
    • VMware Tanzu

    此列表仅包括

    Postgres Operator
    在发布过程中经过专门测试的平台:
    PGO
    也适用于其他 Kubernetes 发行版。

    存储

    PGO
    ,即
    Postgres Operator
    ,使用各种不同类型的
    Kubernetes
    存储和
    Storage Classes
    以及
    hostPath
    NFS
    进行了测试。

    有各种不同类型的

    Storage Class
    可供
    Kubernetes
    使用,
    PGO
    尽最大努力测试每一个,但由于这一领域的广度,
    PGO
    无法验证每一类中的
    Postgres Operator
    功能。尽管如此,
    PostgreSQL Operator
    被设计为与存储类无关,并已被证明可以与其他存储类一起工作。

    公众号:黑客下午茶
  • 内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: