2016-05-31 11 views
8

kubectlを使用してDeployment/Jobでポッドを作成できることを理解します。しかし、ボリュームをつけて作成することは可能ですか?私はこのコマンドを実行しようとしました:kubectlを使用してkubernetesポッドを作成する

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 

しかし、ボリュームは対話型のbashには表示されません。

添付できるボリュームのポッドを作成するより良い方法はありますか?

+0

私もkubectl createを使ってみましたが、exec/attachをやってみましたが、うまくいきませんでした。しかし、おそらく私はこのバグに遭遇していたからでしょう: https://github.com/kubernetes/kubernetes/issues/16670 –

答えて

12

JSONの上書きが正しく指定されていません。残念ながら、kubectlは理解できないフィールドを無視して実行します。

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 

私はあなたが指定したコマンドを実行し、その後、別の端末のRANでこの問題をデバッグするには、次の

kubectl get job ubuntu -o json 

そこからあなたは、実際の仕事の構造は、あなたのJSONオーバーライドと異なっていることがわかります(あなたがいましたネストされたテンプレート/ specが見つからず、ボリューム、volumeMounts、およびコンテナは配列でなければなりません)。

+0

ありがとう、特にそれをデバッグするヒント。作成をしてから添付した方がよい方法かもしれません...もし私がそれを働かせることができれば。 (何らかの理由で、私はskydnsの検証ステップを動作させるのに最も時間がかかります。attach/execのステップはちょうどハングします。)これらの状況をデバッグするためのヒントはありますか? –

関連する問題