2017-11-05 1 views
1

Nicht sicher, wie man es nennt, aber mit einer Rails-App und sidekiq; Ich möchte in der Lage sein, sowohl Sidekiq und Rails Logs zu sehen, wenn kubectl logs {podname}kubernetes Protokollierung/mehrere Quellen erhalten Schreiben Sie an den Haupt-Log-Eingangspunkt

Ist das überhaupt möglich? Gibt es eine andere Möglichkeit (wie zusätzliche Befehle, um bestimmte Quellen zu loggen)? Ich frage mich, wo ich anfangen soll zu untersuchen

+1

Mögliche Duplikate von [Wie bekomme ich Protokolle von allen Pods eines Kubernetes-Replikations-Controllers?] (Https://stackoverflow.com/questions/33069736/how-do-i-get-logs-from-all-pods -of-a-kubernetes-replication-controller) – gmiretti

+0

Nicht wirklich, ich frage, was intern in einem Controller getan werden kann, um Protokolle zu concat (denken Vorarbeiter, ohne Vorarbeiter) – Ben

Antwort

1

Sie sollten Ihre Rails App in einem Container und sidekiq in einem anderen Container ausführen. Beide können im selben Pod laufen. Unter der Annahme, sie sind in der Tat in der gleichen pod aber verschiedene Behälter dann können Sie jedes ihrer Protokolle mit der entsprechenden erhalten:

kubectl logs my-pod -c my-container 

Wenn sonst Sie sie jeweils in ihrer eigenen Schoten laufen, bekommen jedes ihrer Protokolle sollten das Standard-Setup von nur kubectl logs my-pod für jeden von ihnen aufrufen.

Wenn Sie Protokolle aus mehreren Quellen aggregieren möchten, sollten Sie etwas wie kubetail verwenden.

+0

Ok macht Sinn. Trotzdem bestätigen Sie, dass es keine Möglichkeit gibt, Container-Logs zu "concaten"? – Ben

+1

@Ben Ich wusste nicht, dass du danach suchst. Ich habe meine Antwort bearbeitet und einen Verweis auf Kubetail hinzugefügt, der das tut, was Sie erwähnt haben. – vascop

+1

Er hat das schon versucht – Ben

Verwandte Themen