在Kubernetes中,来自ConfigMap的环境变量不会更改PostgreSql荚中的max_connections属性。如何通过Kubernetes中的环境变量更改Postgres max_connections配置?
我尝试过以下参数来配置Postgres。
问题是,我可以使用DB,用户和密码参数和值都是按预期设置的。但我需要更改max_connections配置。我做了相关的研究,看来PGOPTIONS是发送配置更改的正确选择。即使我尝试了PGOPTIONS和其他变体,对max_connections值也没有影响。我正在连接postgresql并执行SHOW MAX_CONNECTIONS查询,即使我在环境配置值中指定了1000,它也显示了100。
我在数字海洋中使用Kubernetes 1.14。
ConfigMap
apiVersion: v1
kind: ConfigMap
metadata:
name: postgres-config-demo
labels:
app: postgres
data:
POSTGRES_DB: demopostgresdb
POSTGRES_USER: demopostgresadmin
POSTGRES_PASSWORD: demopostgrespwd
PGOPTIONS: "-c max_connections=1000 -c shared_buffers=1024MB"
POSTGRES_OPTIONS: "-c max_connections=1000 -c shared_buffers=1024MB"
PG_OPTIONS: "-c max_connections=1000 -c shared_buffers=1024MB"
MAX_CONNECTIONS: "1000"状态集
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: pgdemo
spec:
serviceName: "postgres"
replicas: 2
selector:
matchLabels:
app: postgres
template:
metadata:
labels:
app: postgres
spec:
containers:
- name: postgres
image: postgres:latest
envFrom:
- configMapRef:
name: postgres-config-demo
env:
- name: PGOPTIONS
value: "-c max_connections=1000 -c shared_buffers=1024MB"
- name: "MAX_CONNECTIONS"
value: "1000"
ports:
- containerPort: 5432
name: postgredb
volumeMounts:
- name: postgredb
mountPath: /var/lib/postgresql/data
subPath: postgres
volumeClaimTemplates:
- metadata:
name: postgredb
spec:
accessModes: ["ReadWriteOnce"]
storageClassName: do-block-storage
resources:
requests:
storage: 3Gi我期望得到max_connections值为1000。但它看起来是默认值,类似于100。
在任何日志中都没有错误。
发布于 2019-06-10 06:39:58
您需要扩展基本映像(postgres:最新)。用自定义更改覆盖默认配置,然后启动postgres。
发布于 2020-04-14 09:05:49
Postgresql映像只能支持多个env参数,POSTGRES_PASSWORD、POSTGRES_USER、POSTGRES_DB、POSTGRES_INITDB_ARGS、POSTGRES_INITDB_WALDIR、POSTGRES_HOST_AUTH_METHOD、PGDATA。
如果要修改某些数据库配置参数,可以在kubernetes中使用args。
部署yaml文件分数
containers:
- args:
- -c
- max_connections=1000
- -c
- shared_buffers=1024MB
envFrom:
- configMapRef:
name: postgres-config
image: postgres
imagePullPolicy: IfNotPresent
name: postgres发布于 2020-05-27 08:23:17
当max_connections由PGOPTIONS的环境变量指定时,会发生以下错误。因此,在args中指定它而不是PGOPTIONS的环境变量是正确的。
2020-05-27 06:51:55.327 UTC [62] FATAL: parameter "max_connections" cannot be changed without restarting the server
psql: FATAL: parameter "max_connections" cannot be changed without restarting the servercontainers:
- name: postgres
image: postgres:latest
args: ["-c", "max_connections=500"]https://stackoverflow.com/questions/56515367
复制相似问题