0

Bei der Ausführung eines kubectl rolling-update eines Replikationscontrollers in Kubernetes (Google Container Engine) wird der neu bereitgestellte Pod vom Google (Stackdriver) -Logging-Agenten nicht übernommen. Das Protokoll klemmt bei der letzten Nachricht, die vom alten Pod erzeugt wurde.Google (Stackdriver) Protokollierung schlägt nach Kubernetes rolling-update fehl

Folglich sind die Protokolle für den Replikationscontroller veraltet, bis wir einen manuellen Neustart (d. H. kubectl scale und kubectl delete) des Pods durchführen und die Protokolle erneut aktualisiert werden.

Kann jemand anderes dieses Verhalten bestätigen? Gibt es eine Problemumgehung?

Antwort

1

Ich kann versuchen, das Verhalten zu reproduzieren, aber zuerst können Sie versuchen, kubectl logs <pod-name> auf dem neu erstellten Pod nach dem Rolling-Update ausführen, um zu überprüfen, dass die neue Version Ihrer App Protokolle überhaupt produzierte?

Das klingt eher nach einem Anwendungsproblem als nach einem Infrastrukturproblem, aber wenn Sie bestätigen können, dass es sich um ein Infra-Problem handelt, würde ich gerne auf den Grund gehen.

+0

Ich musste nur einige Rolling-Updates durchführen und ich kann bestätigen, dass die Stackdriver-Logs nicht aktualisiert wurden. 'docker logs' auf dem neu erstellten Container bestätigten, dass Protokolle erzeugt werden (' kubectl logs' würde erfordern, dass ich einen SSH-Tunnel öffne). Ich würde sagen, das ist wie erwartet, da sie staatenlos und unabhängig sind. Ich vermute, dass der Fehler etwas mit dem Umbenennen während des Rolling-Updates zu tun hat. – codemoped

+0

Vielen Dank für die Antwort! Ich fange an, es zu erforschen. –

+0

In welcher Version befinden sich Ihre Knoten? 'gcloud container clusters list' sollte die Version Ihrer Knoten in der Spalte NODE_VERSION anzeigen. Mein erster Versuch, dies auf einem Cluster mit Knoten bei 1.2.0 zu wiederholen, ist fehlgeschlagen (was bedeutet, dass die Protokolle der neuen Pods funktionierten). –

Verwandte Themen