2017-10-17 2 views

Antwort

1

Ihre Anwendung muss so entworfen werden, dass die Beendigung des Prozesses überlebt. Sei es anmutig oder nicht. In der Regel unterscheidet es sich nicht wirklich für die regelmäßige Anwendung, wo Sie wollen, dass es überleben (dh nicht korrupte Daten, nicht lose Zustand, wenn es Stateful ist), wenn der Server zum Beispiel unerwartet ausgeschaltet ist. Wenn Sie es auf einem Cluster ausführen, wissen Sie wahrscheinlich bereits, dass Bereitstellungen mehrere Instanzen einer App parallel ausführen sollen, also muss Ihre App dies auch überleben.

Nun, das heißt nicht, dass Sie es in einigen Fällen nicht besser machen können, wie zB. Fügen Sie eine Terminierungsbehandlung hinzu, wenn SIGKILL empfangen wird, aber das ist auch nicht genau kube-spezifisch.

+0

Was ist genau Satz von Signalen k8s sendet zu Pods Container, können Sie Link pls post? –

+0

https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods –

0

Ja, Ihre bestehenden PODs werden beendet und die neuen PODs mit neuem Image neu erstellt. Sie können maxUnavailable und maxSurge angeben, um den fortlaufenden Aktualisierungsprozess zu steuern. Stellen Sie außerdem sicher, dass in Ihrer Anwendung die Integritätsprüfungs-URL definiert ist.

+0

Meine Frage war mehr auf Anwendung Auswirkungen. Muss meine App so gebaut werden, dass sie mit der Beendigung und Fortsetzung eines Pods in einem anderen Pod fertig wird, oder kann k8s sie transparent verwalten? Können Sie auf relevante Themen in k8s-Dokumenten verweisen? –

+0

Kubernetes dauert 30 Sekunden, um den Pod zu beenden. Wenn Sie den Pod bereitstellen, konfigurieren Sie die LivenessProbe in Ihrer Yamell-Bereitstellungsdatei. Auf dieser Seite finden Sie auch ein Beispiel für LivenessProbe. https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/ – sfgroups

Verwandte Themen