【发布时间】:2020-02-23 23:52:17
【问题描述】:
我正在为 Postgres9.6 连接设置 SSL。我无法在具有适当权限的 Kubernetes 密钥中挂载 SSH 私钥和证书。我相信如果没有在 Kubernetes 容器上设置任何明确的用户 ID,挂载的秘密应该由 root 拥有。我已经为八进制0640 设置了十进制416。如果文件由 root 拥有,这是 Postgres 的建议。
感谢任何帮助。
错误:
FATAL: could not load private key file "/var/lib/postgresql/certs/server.key": Permission denied
Helm statefulset 配置:
volumes:
- name: {{ .Values.certs_secret.volume_name }}
secret:
secretName: {{ .Values.certs_secret.secret_name }}
items:
- key: server.key
path: server.key
mode: 416
- key: server.crt
path: server.crt
mode: 511
containers:
- name: {{ .Chart.Name }}
args:
- -c
- ssl=on
- -c
- ssl_cert_file={{ .Values.certs_secret.cert_path }}
- -c
- ssl_key_file={{ .Values.certs_secret.private_key_path }}
volumeMounts:
- name: {{ .Values.certs_secret.volume_name }}
mountPath: {{ .Values.certs_secret.mount_path }}
更新
我在没有打开 SSL 的情况下执行了,发现秘密文件被挂载为符号链接。这会是个问题吗?群集位于 AKS 中。
root@postgres-timescale-db-0:/var/lib/postgresql/certs# find . -ls
2 0 drwxrwxrwt 3 root root 120 Oct 29 16:40 .
8 0 lrwxrwxrwx 1 root root 31 Oct 29 16:40 ./..data -> ..2019_10_29_16_40_00.233198123
7 0 lrwxrwxrwx 1 root root 17 Oct 29 16:40 ./server.crt -> ..data/server.crt
6 0 lrwxrwxrwx 1 root root 17 Oct 29 16:40 ./server.key -> ..data/server.key
3 0 drwxr-xr-x 2 root root 80 Oct 29 16:40 ./..2019_10_29_16_40_00.233198123
5 8 -rwxrwxrwx 1 root root 4450 Oct 29 16:40 ./..2019_10_29_16_40_00.233198123/server.crt
4 4 -rw-r----- 1 root root 1679 Oct 29 16:40 ./..2019_10_29_16_40_00.233198123/server.key
【问题讨论】:
-
使用的图片是postgres:9.6
标签: postgresql kubernetes kubernetes-helm