2017-07-05 1 views
0

Ich führe einen Pod aus, der eine einfache Nachricht an den 'terminationMessagePath' schreibt, dann wird der Pod mit 'CrashLoopBackOff' beendet. Ich möchte über Kibana debuggen können, anstatt mich bei jedem Kubernetes-Knoten anmelden zu müssen. Ich habe Kibana angefragt, um den Container-Statuswert "CrashLoopBackOff" aus dem Grund & der Nachricht zu erhalten und konnte keinen Eintrag finden.Fluentd Capture, wenn ein Kubernetes Pod mit dem 'CrashLoopBackOff' beendet wird?

Ich kann die Felder für den Pod in Kibana sehen, aber das Feld, das ich suche (in fettem YAML-Format unten) ist leer.

Welche Konfiguration wird benötigt, um das Protokoll von Kubernetes pod zu erhalten? oder Konfiguration müssen von Kubernetes

$ kubectl get pod_name_1 -o = yaml

terminationMessagePath: /var/log/containers/dt.log 
volumeMounts: 
- mountPath: /var/log/containers 
    name: data 
- mountPath: /var/run/secrets/kubernetes.io/serviceaccount 
    name: default-token-s0w2n 
    readOnly: true 
dnsPolicy: ClusterFirst 
nodeName: dev-master-01 
restartPolicy: Always 
securityContext: {} 
serviceAccount: default 
serviceAccountName: default 
terminationGracePeriodSeconds: 30 
volumes: 
- hostPath: 
    path: /var/log/containers 
    name: data 
- name: default-token-s0w2n 
secret: 
    defaultMode: 420 
    secretName: default-token-s0w2n 
status: 
conditions: 
- lastProbeTime: null 
    lastTransitionTime: 2017-07-05T14:45:11Z 
    status: "True" 
    type: Initialized 
- lastProbeTime: null 
    lastTransitionTime: 2017-07-05T17:00:22Z 
    message: 'containers with unready status: [dt-termination-demo]' 
    reason: ContainersNotReady 
    status: "False" 
    type: Ready 
- lastProbeTime: null 
    lastTransitionTime: 2017-07-05T14:45:11Z 
    status: "True" 
    type: PodScheduled 
    containerStatuses: 
- containerID: 
    docker://9649c26527cf0e1cd3bd67ba9c606c0b78e6b4f08bacf96175627ddc7d250772 
    image: debian 
    imageID: docker pullable://docker.io/[email protected]: 
      7d067f77d2ae5a23fe6920f8fbc2936c4b0d417e9d01b26372561860750815f0 
    lastState: 
    terminated: 
    containerID: docker:// 
    9649c26527cf0e1cd3bd67ba9c606c0b78e6b4f08bacf96175627ddc7d250772    
    exitCode: 0 
    finishedAt: 2017-07-05T17:00:22Z 
    **message: | 
    Sleep expired** 
    reason: Completed 
    startedAt: 2017-07-05T17:00:12Z 
    name: dt-termination-demo 
    ready: false 
    restartCount: 30 
    state: 
    waiting: 
    message: Back-off 5m0s restarting failed container=dt-termination-demo 
       pod=dt-termination-demo-2814930607-8kshj_ 
       default(8c247b15-6190-11e7-acb7-00505691210d) 
    **reason: CrashLoopBackOff** 
    hostIP: 192.21.19.128 
    phase: Running 
    podIP: 10.0.0.8 
    startTime: 2017-07-05T14:45:11Z 

Antwort

0

gesetzt werden, wenn Fluentd als DaemonSet eingesetzt wird, soll es alle Protokolle aus dem Knoten und Pods sammeln. Als Anhaltspunkt zu erreichen, dies im Zusammenhang bitte die folgenden YAML-Datei und weitere Repository prüfen:

Wenn Sie weitere Unterstützung benötigen, können Sie auch unseren Slack Kanal anschließen:

+0

edsiper, danke für die Antwort. Fluentd sammelt Protokoll von Knoten und Pod, aber es sammelt nicht, wenn der Pod beendet oder mit dem "CrashLoopBackOff" Fehler abstürzt. In Kibana kann ich die Informationen über den Pod mit "CrashLoopBackOff" sehen, aber ich kann den tatsächlichen "CrashLoopBackOff" -Wert im Log oder in der Nachricht nicht sehen. Das Protokoll enthält normalerweise den letzten Status und den aktuellen Status des Containerstatus. Der Befehl mit den Informationen zum Containerstatus (kubectl get pod pod_name -o = yaml) –

Verwandte Themen