2016-05-31 31 views
8

Capisco che puoi creare un pod con Deployment/Job usando kubectl run. Ma è possibile crearne uno con un volume ad esso collegato? Ho provato a eseguire questo comando:Crea pod kubernetes con volume usando kubectl run

kubectl run -i --rm --tty ubuntu --overrides='{ "apiVersion":"batch/v1", "spec": {"containers": {"image": "ubuntu:14.04", "volumeMounts": {"mountPath": "/home/store", "name":"store"}}, "volumes":{"name":"store", "emptyDir":{}}}}' --image=ubuntu:14.04 --restart=Never -- bash 

Ma il volume non viene visualizzato nella bash interattiva.

C'è un modo migliore per creare un pod con volume a cui è possibile allegare?

+0

Ho anche provato a utilizzare kubectl create e quindi a eseguire un exec/attach ma non ha funzionato per me. Ma probabilmente è perché stavo imbattendo in questo bug: https://github.com/kubernetes/kubernetes/issues/16670 –

risposta

12

L'override JSON è specificato in modo errato. Sfortunatamente kubectl run ignora solo i campi che non capisce.

kubectl run -i --rm --tty ubuntu --overrides=' 
{ 
    "apiVersion": "batch/v1", 
    "spec": { 
    "template": { 
     "spec": { 
     "containers": [ 
      { 
      "name": "ubuntu", 
      "image": "ubuntu:14.04", 
      "args": [ 
       "bash" 
      ], 
      "stdin": true, 
      "stdinOnce": true, 
      "tty": true, 
      "volumeMounts": [{ 
       "mountPath": "/home/store", 
       "name": "store" 
      }] 
      } 
     ], 
     "volumes": [{ 
      "name":"store", 
      "emptyDir":{} 
     }] 
     } 
    } 
    } 
} 
' --image=ubuntu:14.04 --restart=Never -- bash 

Per eseguire il debug di questo problema ho eseguito il comando specificato, e poi in un altro Ran terminale:

kubectl get job ubuntu -o json 

Da lì si può vedere che la struttura di lavoro effettiva differisce dalla sostituzione JSON (eri manca il template/spec annidato, e volumi, volumeMounts e container devono essere array).

+0

Grazie, in particolare il suggerimento sul debug. Sembra che fare una creazione e quindi allegare potrebbe essere un modo migliore per andare ... se solo riesco a farlo funzionare. (Per qualche ragione, ho il tempo più difficile per far funzionare la fase di validazione skydns. La procedura attach/exec si blocca.) Avete qualche consiglio su come debuggare queste situazioni? –

Problemi correlati