2017-02-12 8 views
3

Ich erstelle einen Replikationscontroller mit einem Init-Container. aber die init Container zu starten und der Status der Schote versagt ist:kubernetes init container CrashLoopBackOff

NAME      READY  STATUS    RESTARTS AGE 
testcontainer 0/1  CrashLoopBackOff 12   37m 

Ich bin nicht sicher, welcher Teil genau ausfällt, und die Protokolle nicht helfen. Meine kubectl Server-Version ist 1.4 (abweichend von Client-Version), damit ich bin mit:

annotations: 
     pod.beta.kubernetes.io/init-containers: 

Hier ist die Replikation Controller yaml Datei ich verwende. ich die „Hallo Welt“ Bild bin mit (anstelle des nginx es schneller zu machen)

apiVersion: v1 
kind: ReplicationController 
metadata: 
    name: testcontainer 
spec: 
    replicas: 1 
    selector: 
    app: nginx 
    template: 
    metadata: 
     labels: 
     app: nginx 
     annotations: 
     pod.beta.kubernetes.io/init-containers: '[ 
      { 
       "name": "install", 
       "image": "hello-world" 
      } 
     ]' 
    spec: 
     containers: 
     - name: nginx 
     image: hello-world 
     dnsPolicy: Default 
     nodeName: x.x.x.x 

Protokolle von kubectl pod beschreiben:

Warning FailedSync  Error syncing pod, skipping: failed to "StartContainer" for "nginx" with CrashLoopBackOff: "Back-off 5m0s restarting failed container=nginx pod=testcontainer()" 

    32m 16s  145  {kubelet x.x.x.x} spec.containers{nginx} Warning BackOff Back-off restarting failed docker container 

, wenn ich die Protokolle der beiden Behälter überprüfen (nginx und testcontainer) es zeigt die Ausgabe von Hallo-Welt-Bild, so denke ich, das Bild wird heruntergeladen und erfolgreich gestartet. Ich bin nicht sicher, was danach scheitert (ich habe sogar versucht, einen einzelnen Pod zu erstellen, mit dem Beispiel auf https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-initialization/#creating-a-pod-that-has-an-init-container zur Verfügung gestellt, aber immer noch scheitert)

Vielen Dank!

Antwort

1

Ich denke, das Problem hier ist nicht der Init-Container. Das hello-world Bild druckt einen Text und wird sofort beendet. Da .spec.restartPolicy des Pod standardmäßig Always ist, wird der Pod einfach jedes Mal neu gestartet.

Die Fehlermeldung ist möglicherweise etwas verwirrend, aber da der Pod für immer ausgeführt werden soll, ist es durchaus sinnvoll, einen Fehler anzuzeigen, selbst wenn der Beendigungscode 0 lautet. Wenn Sie einen Pod nur einmal ausführen möchten, sollten Sie job API verwenden.


Da Sie in einem Beispiel für den init-Container interessiert sind, ich Ihr Beispiel festgelegt:

apiVersion: v1 
kind: ReplicationController 
metadata: 
    name: testcontainer 
spec: 
    replicas: 1 
    selector: 
    app: nginx 
    template: 
    metadata: 
     labels: 
     app: nginx 
     annotations: 
     pod.beta.kubernetes.io/init-containers: '[ 
      { 
       "name": "install", 
       "image": "hello-world" 
      } 
     ]' 
    spec: 
     containers: 
     - name: nginx 
     image: nginx # <--- this image shouldn't be a single shot application 
     dnsPolicy: Default 
     nodeName: x.x.x.x 
+0

Hallo svenwltr ich die init cotainer dachte (Installation) laufen würde, und wenn sie erfolgreich die Anwendungscontainer (nginx) würde starten. Wenn der Init-Container erfolgreich ist, warum wird er neu gestartet? (Sollte die "immer" Neustart-Richtlinie nur dann gelten, wenn sie fehlschlägt?) Ich habe dieses Beispiel auch versucht, und der Init-Container schlägt immer noch fehl: https://kubernetes.io/docs/tasks/configure-pod-container/configure -pod-initialization/# creating-a-pod-das-hat-einen-init-container Ich sehe "PodInitializig", aber es wird nie abgeschlossen. – greg

+0

Mit anderen Worten: Wie kann ich einen Init-Container für einen Replikations-Controller (keine Jobs) haben, der mit dem Hello-World-Image ausgeführt wird? – greg

+0

Ihr init-Container läuft gut, aber nach Ihrem init-Container wird der Container mit dem Namen 'nginx' gestartet. Dieser Container verwendet auch das Hello-World-Image. Sie ersetzen dieses Bild. – svenwltr

Verwandte Themen