gpt4 book ai didi

postgresql - 将 postgres 参数传递到 Kubernetes 部署中

转载 作者:行者123 更新时间:2023-12-02 11:39:01 29 4
gpt4 key购买 nike

我正在尝试将 postgres 参数 (shared_buffers) 设置到我的 postgres 数据库 pod 中。我正在尝试设置一个 init 容器来设置 db 变量,但它不起作用,因为 init 容器以 root 用户身份运行。

在 pod 上编辑 db 变量的最佳方法是什么?我无法在图像内进行更改,因为不同实例的变量需要不同。如果有帮助,我需要运行的命令是“postgres -c”命令。

"root" execution of the PostgreSQL server is not permitted.
The server must be started under an unprivileged user ID to prevent
possible system security compromise. See the documentation for
more information on how to properly start the server.

最佳答案

您没有分享您的 Pod/部署定义,但我相信您想设置 shared_buffers从 Pod 定义中的实际容器(不是 init 容器)的命令行。如果您使用的是部署,则类似这样的事情:

apiVersion: v1
kind: Deployment
metadata:
name: postgres
spec:
replicas: 1
template:
metadata:
labels:
app: postgres
spec:
containers:
- name: postgres
image: postgres:12.2
imagePullPolicy: "IfNotPresent"
command: ["postgres"] # <-- add this
args: ["-D", "-c", "shared_buffers=128MB"] # <-- add this
ports:
- containerPort: 5432
securityContext:
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
volumeMounts:
- mountPath: /var/lib/postgresql/data
name: postgredb
- name: postgresql-config-volume # <-- use if you are using a ConfigMap (see below)
mountPath: /var/lib/postgres/data/postgresql.conf
volumes:
- name: postgredb
persistentVolumeClaim:
claimName: postgres-pv-claim # <-- note: you need to have this already predefined
- name: postgresql-config-volume # <-- use if you are using a ConfigMap (see below)
configMap:
name: postgresql-config
请注意,如果您使用的是 ConfigMap您也可以这样做(请注意,除了 shared_buffers 之外,您可能还想添加更多配置选项):
apiVersion: v1
kind: ConfigMap
metadata:
name: postgresql-config
data:
postgresql.conf: |
shared_buffers=256MB

关于postgresql - 将 postgres 参数传递到 Kubernetes 部署中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60783324/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com