错误:PostgreSQL Kubernetes数据目录“ / var / lib / postgresql / data”具有错误的所有权窗口

时间:2020-04-12 03:08:23

标签: postgresql kubernetes

我是新来的kubernetes和东西。我正在阅读教程,在使用pstgres数据库和持久卷声明时遇到错误。我很确定所有权限都已授予用户,但错误仍然表明该文件夹拥有错误的所有权。

这是我的配置文件

这是永久性批量声明文件

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: database-persistent-volume-claim
spec:
  accessModes: 
    - ReadWriteOnce
  resources:
    requests:
      storage: 2Gi

这是我的postgres部署文件

apiVersion: apps/v1
kind: Deployment
metadata: 
  name: postgres-deployment
spec:
  replicas: 1
  selector:
    matchLabels: 
      component: postgres
  template: 
     metadata:
       labels:
         component: postgres
     spec:
       volumes:
        - name: postgres-storage
          persistentVolumeClaim:
            claimName: database-persistent-volume-claim
       containers:
         - name: postgres
           image: postgres
           ports:
             - containerPort: 5432
           volumeMounts:
             - name: postgres-storage
               mountPath: /var/lib/postgresql/data
               subPath: postgres
           env:
             - name: POSTGRES_HOST_AUTH_METHOD
               value: "trust"
             - name: PGPASSWORD
               valueFrom:
                 secretKeyRef:
                   name: pgpassword
                   key: PGPASSWORD

Here is the error message 
2020-04-12 01:57:11.986 UTC [82] FATAL:  data directory "/var/lib/postgresql/data" has wrong ownership
2020-04-12 01:57:11.986 UTC [82] HINT:  The server must be started by the user that owns the data directory.
child process exited with exit code 1
initdb: removing contents of data directory "/var/lib/postgresql/data"

有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

这对我来说很有用,请检查卷安装中的子路径

apiVersion: apps/v1
    kind: StatefulSet
    metadata:
    spec:
      podManagementPolicy: OrderedReady
      replicas: 1
      revisionHistoryLimit: 10
      selector:
        matchLabels:
          app: postgres
      serviceName: postgres
      template:
        metadata:
          creationTimestamp: null
          labels:
            app: postgres
        spec:
          containers:
          - env:
            - name: POSTGRES_USER
              value: root
            - name: POSTGRES_PASSWORD
              value: <Password>
            - name: POSTGRES_DB
              value: <DB name>
            - name: PGDATA
              value: /var/lib/postgresql/data/pgdata
            image: postgres:9.5
            imagePullPolicy: IfNotPresent
            name: postgres
            ports:
            - containerPort: 5432
              protocol: TCP
            resources: {}
            terminationMessagePath: /dev/termination-log
            terminationMessagePolicy: File
            volumeMounts:
            - mountPath: /var/lib/postgresql/data
              name: postgres-data
              subPath: pgdata
          dnsPolicy: ClusterFirst
          restartPolicy: Always
          schedulerName: default-scheduler
          securityContext: {}
          terminationGracePeriodSeconds: 60
      updateStrategy:
        rollingUpdate:
          partition: 0
        type: RollingUpdate
      volumeClaimTemplates:
      - metadata:
          creationTimestamp: null
          name: postgres-data
        spec:
          accessModes:
          - ReadWriteOnce
          resources:
            requests:
              storage: 3Gi
          volumeMode: Filesystem
        status:
          phase: Pending