更改PostgreSQL选项¶
您可能需要对应用程序进行配置更改。PostgreSQL允许使用配置文件自定义数据库。你可以使用ConfigMap提供特定于以下配置文件的PostgreSQL配置选项:
- PostgreSQL主配置,postgresql.conf,
- 客户端认证配置,pg_hba.conf,
- 用户名配置,pg_ident.conf。
配置选项可以以两种方式应用:
- 全局地连接到集群中的所有数据库服务器分布式配置存储(DCS),
- 本地到集群内的每个数据库服务器(主服务器和副本服务器)。
请注意
PostgreSQL集群由Operator管理,一般使用场景下不需要设置自定义配置选项。另外,更改某些选项可能会导致PostgreSQL集群故障。不要自定义配置,除非你知道你在做什么!
使用kubectl命令从外部资源创建ConfigMap,更多信息请参见配置Pod使用ConfigMap。
你可以创建一个自定义配置的PostgreSQL集群,或者使用ConfigMap为已经存在的集群设置选项。
要创建具有自定义选项的集群,应首先将这些选项放在postgres-ha.yaml档案在特定的引导节,然后使用Kubectl创建configmap命令来创建一个ConfigMap,最后将ConfigMap的名称放到pgPrimary.customconfig输入部署/ cr.yaml配置文件。
在这两种情况下,postgres-ha.yaml中的选项不会完全覆盖PostgreSQL配置文件postgres-ha.yaml将被覆盖,而不存在的选项将保持不变。
使用自定义选项创建集群¶
例如,您可以自定义创建一个集群max_connections选项中的postgresql.conf使用下面的配置文件postgres-ha.yaml内容:
---引导:dcs:postgresql:参数:max_connections:30.
请注意
dsc.postgresql分段意味着该选项将全局应用于postgresql.conf在所有数据库服务器中。
您可以从这个文件创建一个ConfigMap。的语法Kubectl创建configmap命令是:
kubectl- n<名称>创建configmap< configmap-name >——从文件=postgres-ha.yaml
ConfigMap名称应该包括您的集群名称和一个破折号作为前缀(cluster1。默认情况下)。
下面的示例定义了cluster1-custom-config作为ConfigMap的名称:
美元kubectl创建- npgoconfigmapcluster1-custom-config——从文件=postgres-ha.yaml
查看已创建的ConfigMap,使用如下命令:
美元kubectl描述configmapscluster1-custom-config
别忘了把ConfigMap的名称放到部署/ cr.yaml配置文件:
规范:…pgPrimary:…customconfig:“cluster1-custom-config”
的方法创建集群常规安装说明。
修改现有集群的选项¶
如果您需要更新集群的配置设置,您应该在< clusterName > -pgha-configConfigMap。
请注意
这个ConfigMap包含< clusterName > -dcs-config全局应用于postgresql.conf所有数据库服务器,以及PostgreSQL集群数据库服务器的本地配置:< clusterName > -local-config对于目前的初选,< clusterName > -repl1-local-config对于第一个副本,以此类推。
例如,让我们改变max_connections全局应用程序中的选项postgresql.conf为集群命名的配置文件cluster1。编辑cluster1-pgha-configConfigMap:
美元kubectl编辑- npgoconfigmapcluster1-pgha-config
这将在您选择的本地文本编辑器中打开ConfigMap。确保修改如下:
…cluster1-dcs-config:|postgresql:参数:…max_connections: 50…
现在重新启动集群以确保更新生效。
方法查询集群的适当pod,可以检查是否应用了更改kubectl执行命令使用特定Pod名称。
首先用通用的方法找出您的pod的名称,使用库贝特尔去拿吊舱命令:
美元kubectl得到豆荚
预期的输出
NAME READY STATUS重启AGE backrest-backup-cluster1-j275w 0/1 Completed 0 10m cluster1-85486d645f-gpxzb 1/1 Running 0 10m cluster1-backrest-shared-repo-6495464548-c8wvl 1/1 Running 0 10m cluster1-pgbouncer-fc45869f7-s86rf 1/1 Running 0 10m pgo-deploy-rhv6k 0/1 Completed 0 5m postgres-operator-8646c68b57-z8m62 4/4 Running 1 5m
现在我们来检查一下cluster1 - 85486 - d645f gpxzb电流荚果max_connections值:
美元kubectl- npgo执行-cluster1 - 85486 - d645f gpxzb--psql- c“显示max_connections;”
预期的输出
Max_connections ----------------- 50(1行)