2016-04-11 28 views
0

Basit bir kubernetes pod oluşturmaya çalışıyorum ve bir kubernetes sırrını kullanıyorum ama maalesef "kubectl create -f pod." yml": İşteİçinde gizli bir kubernetes pod oluşturmaya çalışırken geçersiz değer

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

benim secret.yml geçerli:

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

Ve 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 

Öncelikle gizli yarattı ve ben yazarken "YAML -o gizli MySecret'ı almak kubecetl" sonucudur:

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

Bu benim için çalışır. Çalıştığın sürüm nedir? Bunu kubectl versiyonundan öğrenebilirsiniz. – janetkuo

+0

Evet, öyleydi, 1.1.8 istemci sürümü kullanıyordum. Her şey yeni 1.2.2 sürümünü indirdikten sonra iyi çalışıyor. Teşekkür ederim :) –

cevap

0

Ben Kubernetes için singlePod.yaml dosya içinde argümanları tanımlamaya çalıştık.

apiVersion: v1 tür: Pod meta: adı: yay önyükleme web demo etiketler: amacı: göstermek-yay-çizme-web Spec: konteynerler: - isim: ilkbahar-önyükleme -web image: docker.io/joethecoder2/spring-boot-web env: ["name": "-Dcassandra_ip", "value": "127.0.0.1"] komutu: ["java", "- kavanoz "," bahar-önyükleme-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

Ancak, bir hata var: "./singlePod.yaml" doğrulanırken hata oluştu: veri doğrulanırken hata oluştu: field spec.containers [0] .env [1] .v1.EnvVar için ad gereklidir; Bu hataları yok saymayı seçerseniz, validasyonu --validate = false ile kapatın.

Soru, Docker gibi komut satırı argümanlarını iletmek amacıyla argümanları bir POD.yaml dosyasına nasıl iletebiliriz? "% docker run -it -p 8080: 8080 joethecoder2/yaylı önyükleme-web -Dcassandra_ip = 127.0.0.1 -Dcassandra_port = 9042"

İlgili konular