2017-02-06 5 views
0

montiert Ich habe eine "Deployment" in Kubernetes, die in GKE funktioniert, aber in MiniKube fehlschlägt. Ich habe einen Pod mit 2 Behältern: - (1) Nginx als Reverse-Proxy (liest Geheimnisse und configMap Volumina an/etc/tls &/etc/nginx respectively) (2) Ein JVM basierter Dienst auf localhostKubernetes Minikube Secrets erscheinen nicht in Pod

hören

Das Problem bei der Minikube-Bereitstellung besteht darin, dass der Nginx-Container die TLS-Zertifikate nicht lesen kann, die nicht dort zu sein scheinen - dh das Volume-Mount der Geheimnisse des Pods scheint fehlgeschlagen zu sein.

nginx: [emerg] BIO_new_file("/etc/tls/server.crt") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/tls/server.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file) 

Aber wenn ich es tue „minikube logs“ Ich werde eine große Menge von scheinbar „erfolgreich“ tls Volumen Halterungen ...

MountVolume.SetUp succeeded for volume "kubernetes.io/secret/61701667-eca7-11e6-ae16-080027187aca-scriptwriter-tls" (spec.Name: "scriptwriter-tls") 

Und das Geheimnis selbst ist in dem Cluster in Ordnung ...

So scheint es, dass so weit wie miniKube alles aus einer Sicht der Geheimnisse ist. Auf der anderen Seite kann der nginx-Container das nicht sehen.

Ich kann nicht an den Container entweder anmelden, da es weiterhin beendet.

Vollständigkeit Für die relevanten Abschnitte aus dem Deployment yaml ... Zum einen die nginx Config ...

- name: nginx 
    image: nginx:1.7.9 
    imagePullPolicy: Always 
    ports: 
    - containerPort: 443 
    lifecycle: 
     preStop: 
     exec: 
      command: ["/usr/sbin/nginx", "-s", "quit"] 
    volumeMounts: 
     - name: "nginx-scriptwriter-dev-proxf-conf" 
     mountPath: "/etc/nginx/conf.d" 
     - name: "scriptwriter-tls" 
     mountPath: "/etc/tls" 

Und zweitens sich auf Containerebene die Volumina ...

volumes: 
    - name: "scriptwriter-tls" 
     secret: 
     secretName: "scriptwriter-tls" 
    - name: "nginx-scriptwriter-dev-proxf-conf" 
     configMap: 
     name: "nginx-scriptwriter-dev-proxf-conf" 
     items: 
      - key: "nginx-scriptwriter.conf" 
      path: "nginx-scriptwriter.conf" 

Irgendwelche Hinweise auf Hilfe würden sehr geschätzt werden.

Antwort

0

Ich bin eine erstklassige Klasse! :-) Manchmal ist der Fehler nur der Fehler! Das Problem war also, dass die Secrets mit lokalen $ HOME/.ssh/* certs erstellt wurden ... und wenn du sie von verschiedenen Computern mit unterschiedlichen certs generierst, dann rate mal was ?! Also alles behoben :-)

Verwandte Themen