2015-10-19 2 views
2

EDITED: J'ai un cluster OpenShift avec un maître et deux nœuds. J'ai installé NFS sur le client maître et NFS sur les noeuds. J'ai suivi l'exemple wordpress avec NFS: https://github.com/openshift/origin/tree/master/examples/wordpressImpossible de monter les volumes pour le pod

je l'ai fait ce qui suit sur mon maître comme: login oc système -u: admin:

mkdir /home/data/pv0001 
mkdir /home/data/pv0002 

chown -R nfsnobody:nfsnobody /home/data 

chmod -R 777 /home/data/ 

# Add to /etc/exports 
/home/data/pv0001 *(rw,sync,no_root_squash) 
/home/data/pv0002 *(rw,sync,no_root_squash) 

# Enable the new exports without bouncing the NFS service 
exportfs -a 

exportfs Ainsi montre:

/home/data/pv0001 
     <world> 
/home/data/pv0002 
     <world> 

$ setsebool -P virt_use_nfs 1 


# Create the persistent volumes for NFS. 
# I did not change anything in the yaml-files 
$ oc create -f examples/wordpress/nfs/pv-1.yaml 
$ oc create -f examples/wordpress/nfs/pv-2.yaml 
$ oc get pv 

NAME  LABELS CAPACITY  ACCESSMODES STATUS  CLAIM  REASON 
pv0001 <none> 1073741824 RWO,RWX  Available    
pv0002 <none> 5368709120 RWO   Available  

C'est aussi ce que je reçois. Que je vais à mon noeud:

oc login 
test-admin 

Et je créer un projet wordpress:

oc new-project wordpress 

# Create claims for storage in my project (same namespace). 
# The claims in this example carefully match the volumes created above. 
$ oc create -f examples/wordpress/pvc-wp.yaml 
$ oc create -f examples/wordpress/pvc-mysql.yaml 
$ oc get pvc 

NAME   LABELS STATUS VOLUME 
claim-mysql map[]  Bound  pv0002 
claim-wp  map[]  Bound  pv0001 

Cela ressemble exactement la même chose pour moi.

Lancez le module MySQL.

oc create -f examples/wordpress/pod-mysql.yaml 
oc create -f examples/wordpress/service-mysql.yaml 
oc create -f examples/wordpress/pod-wordpress.yaml 
oc create -f examples/wordpress/service-wp.yaml 

oc get svc 
NAME   LABELS         SELECTOR   IP(S)   PORT(S) 
mysql   name=mysql        name=mysql  172.30.115.137 3306/TCP 
wpfrontend  name=wpfrontend       name=wordpress 172.30.170.55 5055/TCP 

Donc, tout semblait fonctionner! Mais quand je demande mon statut pod je reçois les suivantes:

[[email protected] pv0002]# oc get pod 
NAME  READY  STATUS                RESTARTS AGE 
mysql  0/1  Image: openshift/mysql-55-centos7 is ready, container is creating 0   6h 
wordpress 0/1  Image: wordpress is not ready on the node       0   6h 

Les gousses sont en état d'attente et dans la webconsole ils donnent l'erreur suivante:

12:12:51 PM  mysql Pod  failedMount  Unable to mount volumes for pod "mysql_wordpress": exit status 32 (607 times in the last hour, 41 minutes) 
12:12:51 PM  mysql Pod  failedSync Error syncing pod, skipping: exit status 32 (607 times in the last hour, 41 minutes) 
12:12:48 PM  wordpress Pod  failedMount  Unable to mount volumes for pod "wordpress_wordpress": exit status 32 (604 times in the last hour, 40 minutes) 
12:12:48 PM  wordpress Pod  failedSync Error syncing pod, skipping: exit status 32 (604 times in the last hour, 40 minutes) 

Impossible de monter + délai d'attente. Mais quand je vais à mon nœud et je fais ce qui suit (test est un répertoire créé sur mon noeud):

mount -t nfs -v masterhostname:/home/data/pv0002 /test 

Et je place un certain fichier dans mon/test sur mon noeud qu'il apparaît dans mon/home/data/pv0002 sur mon maître pour que cela semble fonctionner. Quelle est la raison pour laquelle il est impossible de monter dans OpenShift? J'ai été bloqué dessus pendant un moment.

JOURNAUX:

Oct 21 10:44:52 ip-10-0-0-129 docker: time="2015-10-21T10:44:52.795267904Z" level=info msg="GET /containers/json" 
Oct 21 10:44:52 ip-10-0-0-129 origin-node: E1021 10:44:52.832179 1148 mount_linux.go:103] Mount failed: exit status 32 
Oct 21 10:44:52 ip-10-0-0-129 origin-node: Mounting arguments: localhost:/home/data/pv0002 /var/lib/origin/openshift.local.volumes/pods/2bf19fe9-77ce-11e5-9122-02463424c049/volumes/kubernetes.io~nfs/pv0002 nfs [] 
Oct 21 10:44:52 ip-10-0-0-129 origin-node: Output: mount.nfs: access denied by server while mounting localhost:/home/data/pv0002 
Oct 21 10:44:52 ip-10-0-0-129 origin-node: E1021 10:44:52.832279 1148 kubelet.go:1206] Unable to mount volumes for pod "mysql_wordpress": exit status 32; skipping pod 
Oct 21 10:44:52 ip-10-0-0-129 docker: time="2015-10-21T10:44:52.832794476Z" level=info msg="GET /containers/json?all=1" 
Oct 21 10:44:52 ip-10-0-0-129 docker: time="2015-10-21T10:44:52.835916304Z" level=info msg="GET /images/openshift/mysql-55-centos7/json" 
Oct 21 10:44:52 ip-10-0-0-129 origin-node: E1021 10:44:52.837085 1148 pod_workers.go:111] Error syncing pod 2bf19fe9-77ce-11e5-9122-02463424c049, skipping: exit status 32 
+0

Vérifiez les journaux de nœud sur le nœud qui héberge votre pod -.. il est possible le volume mou nter a frappé une erreur et est revenu tôt. – Clayton

+0

Recherchez également un événement sur le pod via l'octet de description pod/nom - un événement peut avoir été déclenché. – Clayton

+0

L'oc desribe pod/name donnait la même sortie. Aussi le Impossible de monter ..status 32. Un montage manuel est possible. Quels journaux? le/var/log/messages? – lvthillo

Répondre

3

journaux ont montré Oct 21 10:44:52 ip-10-0-0-129 origin-node: Output: mount.nfs: access denied by server while mounting localhost:/home/data/pv0002

Il a échoué le montage sur localhost. pour créer mon volume persistant que j'ai exécuté ce YAML.

{ 
    "apiVersion": "v1", 
    "kind": "PersistentVolume", 
    "metadata": { 
    "name": "registry-volume" 
    }, 
    "spec": { 
    "capacity": { 
     "storage": "20Gi" 
     }, 
    "accessModes": [ "ReadWriteMany" ], 
    "nfs": { 
     "path": "/home/data/pv0002", 
     "server": "localhost" 
    } 
    } 
} 

Je montais à /home/data/pv0002 mais ce chemin n'a pas été sur le localhost mais sur mon serveur maître (qui est ose3-master.example.com Je créé mon PV . une mauvaise façon

{ 
    "apiVersion": "v1", 
    "kind": "PersistentVolume", 
    "metadata": { 
    "name": "registry-volume" 
    }, 
    "spec": { 
    "capacity": { 
     "storage": "20Gi" 
     }, 
    "accessModes": [ "ReadWriteMany" ], 
    "nfs": { 
     "path": "/home/data/pv0002", 
     "server": "ose3-master.example.com" 
    } 
    } 
} 

Ce fut aussi dans un environnement de formation, il est recommandé d'avoir un serveur NFS en dehors de votre cluster pour monter à