简体   繁体   English

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

[英]Postgres on K8s: mkdir: cannot create directory ‘/bitnami/postgresql/data’: Permission denied while Initializing PostgreSQL database

I am using zammad helm to launch zammad on my Kube.netes cluster (bare metal).我正在使用 zammad helm 在我的 Kube.netes 集群(裸机)上启动 zammad。 It uses bitnami postgreSql chart to provision Postgres database.它使用 bitnami postgreSql 图表来配置 Postgres 数据库。

the problem is that whenever i install helm with --set volumePermissions.enabled=true:问题是每当我使用--set volumePermissions.enabled=true:

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

PostgreSql still gives error: 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

This is my storage-class:这是我的存储类:

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
                     

This is my PV:这是我的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

This is my PVC:这是我的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

Can you tell what am i missing here for permission.你能告诉我我在这里缺少什么以获得许可吗?

The same install command for helm worked alright on a microK8s kube.netes with NO permission issue. helm 的相同安装命令在 microK8s kube.netes 上工作正常,没有权限问题。 Why is the error coming on bare metal kube.netes为什么错误出现在裸机 kube.netes 上

The bitnami postgresql helm chart requires volume mount path to be /bitnami/postgresql by default, changing PV volume path from /var/postgre2 to /bitnami/postgresql solved issue. bitnami postgresql helm chart 要求卷安装路径默认为/bitnami/postgresql ,将 PV 卷路径从/var/postgre2/bitnami/postgresql解决了这个问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM