2016-04-11 8 views
0

私は単純なkubernetesポッドを作成しようとしていますが、kubernetesの秘密を使っていますが、残念ながらkubectl create -f podを実行した後に次のエラーが発生しました。 YML」:ここでは秘密のkubernetesポッドを作成しようとしたときに無効な値

The Pod "hello-pod" is invalid. spec.containers[0].env[0].valueFrom: Invalid value: "": may not have more than one field specified at a time

は私secret.ymlです:

apiVersion: v1 
kind: Secret 
metadata: 
    name: mysecret 
type: Opaque 
data: 
    testenv: cWprb3IK 

そして、私のpod.yml:

apiVersion: v1 
kind: Pod 
metadata: 
    name: hello-pod 
    labels: 
    name: hello 
spec: 
    containers: 
    - name: hello-world 
    image: myregistry.int/hello-world 
    ports: 
    - containerPort: 8095 
     hostPort: 8095 
    command: [ "/bin/sh", "-c", "env" ] 
    env: 
     - name: testenv 
     valueFrom: 
      secretKeyRef: 
      name: mysecret 
      key: testenv 

は、まず、私は秘密を作成し、私が入力したときに「秘密のmysecret -o YAMLを得るkubecetl」の結果は次のとおりです。

apiVersion: v1 
data: 
    testenv: cWprb3IK 
kind: Secret 
metadata: 
    creationTimestamp: 2016-04-08T12:29:19Z 
    name: mysecret 
    namespace: default 
    resourceVersion: "196098" 
    selfLink: /api/v1/namespaces/default/secrets/mysecret 
    uid: 846648e7-fd85-11e5-a81b-4439c4383162 
type: Opaque 
+1

これは私のために動作します。実行しているバージョンは何ですか? 'kubectl version'からこれを知ることができます。 – janetkuo

+0

はい、それは、私はクライアントバージョン1.1.8を使用していました。すべて最新の1.2.2バージョンをダウンロードした後に正常に動作します。ありがとう:) –

答えて

0

私はkubernetesためsinglePod.yamlファイル内の引数を定義しようとしました。

apiVersion:v1の 種類:ポッド メタデータ: 名:春ブート・ウェブデモ ラベル: 目的:証明スプリング・ブート・ウェブ スペック: コンテナ: - 名前:春ブート-web イメージ:docker.io/joethecoder2/spring-boot-web env:["name": "-Dcassandra_ip"、 "value": "127.0.0.1"] コマンド:["java"、 " - jar "、" spring-boot-web-0.0.1-SNAPSHOT.jar "、" -D "、" cassandra_ip = 127.0.0.1 "、" -D "、" cassandra_port = 9042 "] args:[" -Dcassandra_ip = 127.0.0.1 "、" -Dcassandra_port = 9042 "] restartPolicy:OnFailure

しかし、エラー:エラー: "./singlePod.yaml"の検証エラー:データの検証エラー:フィールドspec.containers [0] .env [1] .name for v1.EnvVarは必須です。これらのエラーを無視する場合は、--validate = falseを指定して検証をオフにします。

Dockerのようなコマンドライン引数を渡すために、どうやってPOD.yamlファイルに引数を渡すのですか? "%docker run -it -p 8080:8080 joethecoder2/spring-boot-web -Dcassandra_ip = 127.0.0.1 -Dcassandra_port = 9042"

関連する問題