前提条件
请确保您的主机上安装了以下实用程序:
kubectlgit安装第 1 步:下载示例
首先,转到 GitHub 并 fork Postgres Operator 示例存储库:
一旦你分叉了这个 repo,你可以使用类似下面的命令将它下载到你的工作环境中:
第 2 步:安装 PGO,即 Postgres Operator
您可以使用以下命令安装 PGO,即来自 Crunchy Data 的 Postgres Operator:
kubectl apply —k kustomize/install
这将创建一个名为 postgres—operator 的命名空间,并创建部署 PGO 所需的所有对象。
要检查安装状态,可以运行以下命令:
如果 PGO Pod 运行良好,您应该会看到类似于以下内容的输出:
NAME READY STATUS RESTARTS AGEpostgres—operator—9dd545d64—t4h8d 1/1 Running 0 3s创建 Postgres 集群
让我们创建一个简单的 Postgres 集群。绿芯官方表示,这款固态硬盘适用于自动化生产线,数据中心,视频监控,网络,交通,航空航天等领域的应用。产品寿命很长,可以支持5年内每天两次全写。您可以通过执行以下命令来执行此操作:
kubectl apply —k kustomize/postgres
注意:
注意,你的集群已经有一个默认的 Storage Class
这将在 postgres—operator 命名空间中创建一个名为 hippo 的 Postgres 集群。您可以使用以下命令跟踪集群的进度:
作为创建 Postgres 集群的一部分,Postgres Operator 创建一个 PostgreSQL 用户帐户此帐户的凭据存储在名为 —pguser— 的 Secret 中
此 Secret 中的属性提供了让您登录 PostgreSQL 集群的信息。这些包括:
user: 用户帐户的名称password: 用户帐户的密码dbname: 默认情况下用户有权访问的数据库的名称host: 数据库主机的名称这引用了主 Postgres 实例的 Serviceport: 数据库正在侦听的端口uri: 一个 PostgreSQL 连接 URI,它提供了登录 Postgres 数据库的所有信息jdbc—uri: 一个 PostgreSQL JDBC 连接 URI,它提供了通过 JDBC driver 登录到 Postgres 数据库的所有信息
如果您使用 PgBouncer 连接池部署 Postgres 集群,则用户 Secret 中会填充其他值,包括:
pgbouncer—host: PgBouncer 连接池的主机名这引用了 PgBouncer 连接池的 Servicepgbouncer—port: PgBouncer 连接池正在侦听的端口pgbouncer—uri: 一个 PostgreSQL 连接 URI,它提供了通过 PgBouncer 连接池登录到 Postgres 数据库的所有信息pgbouncer—jdbc—uri: 一个 PostgreSQL JDBC 连接 URI,它提供了使用 JDBC driver 通过 PgBouncer 连接池登录到 Postgres 数据库的所有信息
请注意,所有连接都使用 TLSPGO 为您的 Postgres 集群设置 PKI您也可以选择自带 PKI / certificate authority,这将在文档后面介绍
PgBouncer
通过终端中的 psql 连接
直接连接
如果您与 PostgreSQL 集群位于同一网络上,则可以使用以下命令直接连接到它:
psql $
使用端口转发连接
在新终端中,创建一个端口转发:
PG_CLUSTER_PRIMARY_POD=$kubectl —n postgres—operator port—forward "$PG_CLUSTER_PRIMARY_POD" 5432:5432
建立与 PostgreSQL 集群的连接。
base64decode') PGDATABASE=$(kubectl get secrets —n postgres—operator "$PG_CLUSTER_USER_SECRET_NAME" —o go—template='.data.dbname
用户 Secret 中提供的信息将允许您将应用程序直接连接到您的 PostgreSQL 数据库。
例如,让我们连接 KeycloakKeycloak 是一种流行的开源身份管理工具,由 PostgreSQL 数据库支持
Keycloak
在 kustomize/keycloak 文件夹中有一个关于如何使用 Postgres Operator 部署 Keycloak 的完整示例。。
注意:
quay.io/keycloak/keycloak:latest,科学拉取镜像对 keycloak.yaml 进行了上述修改
恭喜,您的 Postgres 集群已启动并运行,还连接了一个应用程序!
。