2016-03-30 7 views
1

Ich habe versucht, einen Replication-Controller über eine JSON-Datei zu erstellen, und ich habe restartPolicy wie "Nie" für pod restartPolicy erwähnt.Erstellen Kubernetes ReplicationController nicht aufgrund restartPolicy

aber ich erhalte eine Fehlermeldung, dass

Fehler: Der ReplicationController "ngnix-rc" ist ungültig. * spec.template.spec.restartPolicy: Nicht unterstützter Wert: "Nie": unterstützte Werte: Always

Gibt es eine Änderung in v1.2, dass es nur "immer" als Option für restartPolicy unterstützt ? Ich bin verwirrt.

Ich versuchte ein anderes Szenario, wo ich ein seltsames Verhalten konfrontiert. ich die Neustart-Richtlinie als „nie“ angegeben, und ich habe den Fehler,

Fehler: Der ReplicationController „ngnix-rc“ ist ungültig. * spec.template.spec.restartPolicy: Nicht unterstützter Wert: "nie": unterstützte Werte: Immer, OnFailure, Never * spec.template.spec.restartPolicy: Nicht unterstützter Wert: "nie": unterstützte Werte: Always

Wie gefunden, gibt es zwei Fehler in diesem Szenario. Ich weiß nicht, was das genaue Problem ist.

Die JSON-Datei, die i RC erstellen verwendet wird unter

{ 
    "kind":"ReplicationController", 
    "apiVersion":"v1", 
    "metadata":{ 
    "name":"ngnix-rc", 
    "labels":{ 
     "app":"webserver" 
    } 
    }, 
    "spec":{ 
    "replicas":1, 
    "selector":{ 
     "app":"webserver1" 
    }, 
    "template":{ 
     "metadata":{ 
     "name":"ngnix-pod", 
     "labels":{ 
      "app":"webserver1" 
     } 
     }, 
     "spec":{ 
     "containers":[ 
      { 
      "image":"ngnix", 
      "name":"nginx" 
      } 
     ], 
     "restartPolicy":"Never" 
     } 
    } 
    } 
} 
+1

fand ich, dass die ** ReplicationController ** nur ** restartPolicy erlaubt **, dass gleich zu ** „Always“ **. Ist das ein gültiger? Sonst muss ich Job für ** OnFailure ** oder ** Never ** -Option verwenden. Aber ich muss einen Webserver bereitstellen, den ich nicht als ** Job ** bereitstellen kann, und es sollte als ** RC ** bereitgestellt werden. In diesem Szenario wird der Container, wenn er als ** RC ** bereitgestellt wird, häufig neu gestartet, wodurch der Webserver nutzlos wird. Was ist die Lösung dafür? –

Antwort

4

auf zhb Antwort erweitern: Während verschiedene Neustart Politik Sinn für einzelne Schoten machen oder sogar für Run-to-Completion-Jobs, ein vollständiger Zweck des Replikations-Controllers besteht darin, N Instanzen eines Pods laufen zu lassen. Das heißt, dass die Pods nicht neu gestartet werden sollen, passt nicht gut zum Konzept.

Der Teil der Dokumentation, die erklärt, ist dies: http://kubernetes.io/docs/user-guide/pod-states/#restartpolicy

+1

Ich habe es. Das Problem hierbei ist jedoch, dass der Pod häufig neu gestartet wird. Ich habe das gleiche Container-Image zuvor mit v1.1 verwendet, ich hatte dieses Problem nicht. Jetzt benutze ich dasselbe Bild mit v1.2 und der Container wird häufig neu gestartet. Ich werde debuggen und versuchen, das Problem mit dem Webserver zu finden, wenn es irgendwelche gibt. –

+1

Wenn der Pod neu gestartet wird, muss ein Fehler vorliegen, der durch Deaktivieren der Neustarts nicht behoben werden konnte. Ich würde empfehlen, den Leitfaden zur Fehlerbehebung zu lesen: http: // kubernetes.io/docs/user-guide/debugging-pods-and-replication-controllers/ –

+1

Ich habe versucht, den Pod zu debuggen, und ich fand, dass der Docker-Dämon, der in einem Knoten ausgeführt wird, selbst neu startet, was zu einem Neustart der Container führt. –

Verwandte Themen