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?
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
Vielen Dank für die Antwort! Ich fange an, es zu erforschen. –
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). –