K8s 上的 Postgres:mkdir:无法创建目录“/bitnami/postgresql/data”:初始化 PostgreSQL 数据库时权限被拒绝

问题描述 投票:0回答:2

我正在使用 zammad helm 在我的 Kubernetes 集群(裸机)上启动 zammad。它使用 bitnami postgreSql 图表来配置 Postgres 数据库。

问题是每当我用

--set volumePermissions.enabled=true:

安装 helm 时
helm upgrade --install zammad zammad/zammad --namespace zammad --set persistence.storageClass="manual" --set volumePermissions.enabled=true

PostgreSql 仍然给出错误:

sana@SANA3:~/sampleApp$ kubectl logs pod/zammad-postgresql-0
postgresql 11:12:15.65
postgresql 11:12:15.66 Welcome to the Bitnami postgresql container
postgresql 11:12:15.66 Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-postgresql
postgresql 11:12:15.66 Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-postgresql/issues
postgresql 11:12:15.66
postgresql 11:12:15.69 INFO  ==> ** Starting PostgreSQL setup **
postgresql 11:12:15.72 INFO  ==> Validating settings in POSTGRESQL_* env vars..
postgresql 11:12:15.73 INFO  ==> Loading custom pre-init scripts...
postgresql 11:12:15.74 INFO  ==> Initializing PostgreSQL database...
mkdir: cannot create directory ‘/bitnami/postgresql/data’: Permission denied

这是我的存储级别:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"storage.k8s.io/v1","kind":"StorageClass","metadata":{"annotations":{},"name":"manual-postgre"},"provisioner":"kubernetes.io/no-provisioner","volumeBindingMode":"Immediate"}
  creationTimestamp: "2023-01-25T07:05:38Z"
  name: manual-postgre
  resourceVersion: "10359744"
  uid: ad6bb681-18eb-4f80-9995-2d00273e9b08
provisioner: kubernetes.io/no-provisioner
reclaimPolicy: Delete
volumeBindingMode: Immediate
                     

这是我的PV:

apiVersion: v1
kind: PersistentVolume
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"v1","kind":"PersistentVolume","metadata":{"annotations":{},"labels":{"type":"local"},"name":"hostpath-postgre2"},"spec":{"accessModes":["ReadWriteOnce"],"capacity":{"storage":"8Gi"},"claimRef":{"apiVersion":"v1","kind":"PersistentVolumeClaim","name":"data-zammad-postgresql-0","namespace":"zammad"},"hostPath":{"path":"/var/postgre2","type":"DirectoryOrCreate"},"persistentVolumeReclaimPolicy":"Retain","storageClassName":"manual-postgre"}}
    pv.kubernetes.io/bound-by-controller: "yes"
  labels:
    type: local
  name: hostpath-postgre2
spec:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 8Gi
  claimRef:
    apiVersion: v1
    kind: PersistentVolumeClaim
    name: data-zammad-postgresql-0
    namespace: zammad
  hostPath:
    path: /var/postgre2
    type: DirectoryOrCreate
  persistentVolumeReclaimPolicy: Retain
  storageClassName: manual-postgre
  volumeMode: Filesystem

这是我的PVC:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"v1","kind":"PersistentVolumeClaim","metadata":{"annotations":{},"labels":{"app.kubernetes.io/instance":"zammad","app.kubernetes.io/name":"postgresql"},"name":"data-zammad-postgresql-0","namespace":"zammad"},"spec":{"accessModes":["ReadWriteOnce"],"resources":{"requests":{"storage":"8Gi"}},"storageClassName":"manual-postgre","volumeMode":"Filesystem","volumeName":"hostpath-postgre2"}}
    pv.kubernetes.io/bind-completed: "yes"
  labels:
    app.kubernetes.io/instance: zammad
    app.kubernetes.io/name: postgresql
  name: data-zammad-postgresql-0
  namespace: zammad
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 8Gi
  storageClassName: manual-postgre
  volumeMode: Filesystem
  volumeName: hostpath-postgre2

你能告诉我我在这里缺少什么以获得许可吗?

相同的 helm 安装命令在 microK8s kubernetes 上运行良好,没有权限问题。为什么裸机 kubernetes 会出现错误

postgresql kubernetes kubernetes-helm bitnami zammad
2个回答
0
投票

bitnami postgresql helm 图表要求卷安装路径默认为

/bitnami/postgresql
,将 PV 卷路径从
/var/postgre2
更改为
/bitnami/postgresql
解决了问题。


0
投票
chmod +777 /var/postgre2 

将解决问题

© www.soinside.com 2019 - 2024. All rights reserved.