2017-01-25 25 views
0

我正在嘗試運行一個Postgresql數據庫使用minikube與持續音量聲明。這些都是YAML規格:如何解決從minikube運行Postgresql時遇到的權限問題?

minikube持久-volume.yaml:

kind: PersistentVolume 
apiVersion: v1 
metadata: 
    name: pv0001 
    labels: 
    type: hostpath 
spec: 
    capacity: 
    storage: 5Gi 
    accessModes: 
    - ReadWriteMany 
    hostPath: 
    path: "/Users/jonathan/data" 

Postgres的持久性,體積claim.yaml:

apiVersion: v1 
kind: PersistentVolumeClaim 
metadata: 
    name: pv-postgres 
spec: 
    accessModes: [ "ReadWriteMany" ] 
    resources: 
    requests: 
     storage: 2Gi 

Postgres的部署.yaml

apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: 
    name: postgres 
spec: 
    replicas: 1 
    template: 
    metadata: 
     labels: 
     app: postgres 
    spec: 
     containers: 
     - image: postgres:9.5 
     name: postgres 
     ports: 
     - containerPort: 5432 
      name: postgres 
     volumeMounts: 
     - mountPath: /var/lib/postgresql/data 
      name: postgres-disk 
     env: 
     - name: PGDATA 
      value: /var/lib/postgresql/data/pgdata 
     - name: POSTGRES_USER 
      value: keycloak 
     - name: POSTGRES_DATABASE 
      value: keycloak 
     - name: POSTGRES_PASSWORD 
      value: key 
     - name: POSTGRES_ROOT_PASSWORD 
      value: masterkey 
     volumes: 
     - name: postgres-disk 
     persistentVolumeClaim: 
      claimName: pv-postgres 

當我開始這個我從部署在日誌中以下內容:

[...] 
fixing permissions on existing directory 
/var/lib/postgresql/data/pgdata ... ok 
initdb: could not create directory "/var/lib/postgresql/data/pgdata/pg_xlog": Permission denied 
initdb: removing contents of data directory "/var/lib/postgresql/data/pgdata" 

爲什麼我得到這個權限被拒絕的錯誤,我能做些什麼呢?

+0

你嘗試直接在部署中使用hostPath而不是使用persistentVolumeClaim?然後會發生什麼? – iamnat

+0

@iamnat我現在試過了。同樣的錯誤。 :( – jonalv

+0

@NorbertvanNobelen:沒有什麼區別 – jonalv

回答

2

也許你對Virtualbox裝入這些主機文件夾有寫權限問題。 相反,使用/data/postgres作爲路徑,事情將起作用。

Minikube自動仍然存在下列目錄,所以即使你的虛擬機重新啓動後,他們將被保留/重建:

  • /data
  • /var/lib/localkube
  • /var/lib/docker

閱讀這些章節瞭解更多詳情:

  1. https://github.com/kubernetes/minikube#persistent-volumes
  2. https://github.com/kubernetes/minikube#mounted-host-folders
+0

嗯,我已經試過了,但是又犯了一個錯誤太刺激了...... :(? – jonalv