2017-01-25 2 views
0

J'essaie d'exécuter une base de données Postgresql en utilisant minikube avec une revendication de volume persistante. Ce sont les spécifications YAML:Comment résoudre les problèmes d'autorisation lors de l'exécution de Postgresql à partir de minikube?

minikube-persistant volume.yaml:

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

Postgresql persistante volume-claim.yaml:

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

Postgresql déploiement .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 

quand je commence à ce que je reçois le texte suivant dans les journaux du déploiement:

[...] 
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" 

Pourquoi puis-je obtenir cette erreur de permission refusée et que puis-je faire?

+0

Avez-vous essayez d'utiliser cheminServeur directement dans le déploiement au lieu d'utiliser un persistentVolumeClaim? Qu'est-ce qui se passe alors? – iamnat

+0

@iamnat J'ai essayé maintenant. Même erreur :( – jonalv

+0

@NorbertvanNobelen: ne fait aucune différence – jonalv

Répondre

2

Vous avez peut-être un problème d'autorisation d'écriture avec Virtualbox qui monte ces dossiers d'hôte. A la place, utilisez /data/postgres comme chemin et les choses vont fonctionner.

Minikube persiste automatiquement les répertoires suivants afin qu'ils seront conservés même si votre VM est redémarrée/recréés:

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

Lisez ces sections pour plus détails:

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

Hm, je l'avais essayé, mais avait fait une autre erreur aussi. Irritant ... :( – jonalv