2016-04-11 3 views
0

Ich versuche, einen einfachen kubernetes-Pod zu erstellen und benutze ein kubernetes-Geheimnis, aber leider habe ich nach der Ausführung von "kubectl create -f pod. yml“:Ungültiger Wert bei dem Versuch, einen kubernetes-Pod mit einem geheimen Code zu erstellen

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

ist hier mein secret.yml:

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

Und mein 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 

Zuerst habe ich das Geheimnis, und wenn ich „kubecetl bekommen geheime mysecret -o yaml“ das Ergebnis Typ:

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

Das funktioniert für mich. Welche Version hast du? Sie können dies von 'kubectl version' erfahren. – janetkuo

+0

Ja, das war es, ich benutzte Client-Version 1.1.8. Alles funktioniert gut nach dem Herunterladen der neuesten Version 1.2.2. Danke :) –

Antwort

0

Ich habe versucht, für Kubernetes Argumente innerhalb einer singlePod.yaml Datei zu definieren.

APIVERSION: v1 Art: Pod Metadaten: Name: spring-boot-Web-Demo Labels: Zweck: demonstrieren Feder-boot-web spec: Behälter: - Name: spring-boot -web image: docker.io/joethecoder2/spring-boot-web env: ["Name": "-Dcassandra_ip", "Wert": "127.0.0.1"] Befehl: ["java", "- jar "," feder-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

Es gibt jedoch einen Fehler, Fehler: Fehler beim Validieren von "./singlePod.yaml": Fehler beim Validieren von Daten: field spec.containers [0] .env [1] .name für v1.EnvVar ist erforderlich; Wenn Sie diese Fehler ignorieren, deaktivieren Sie die Validierung mit --validate = false.

Die Frage ist, wie übergeben wir Argumente an eine POD.YAML-Datei, um Befehlszeilenargumente wie Docker übergeben? "% docker laufen -it -p 8080: 8080 joethecoder2/spring-boot-web -Dcassandra_ip = 127.0.0.1 -Dcassandra_port = 9042"

Verwandte Themen