kubernetes应用程序pod无法将pod emptydir卷装载共享到守护程序fluentd pod

kubernetes应用程序pod无法将pod emptydir卷装载共享到守护程序fluentd pod,kubernetes,fluentd,Kubernetes,Fluentd,我有一个应用程序吊舱,在那里我将日志记录到一个特定位置的文件中 我已经使用emptyDir volumeMount将此位置共享给其他pod 我在我的ELF stack-dashboard中得到了标准的stdout和stderr。如何捕获自定义日志 apiVersion: extensions/v1beta1 kind: DaemonSet metadata: name: elk namespace: default labels: k8s-app: elk-logging

我有一个应用程序吊舱,在那里我将日志记录到一个特定位置的文件中

我已经使用emptyDir volumeMount将此位置共享给其他pod

我在我的ELF stack-dashboard中得到了标准的stdout和stderr。如何捕获自定义日志

apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
  name: elk
  namespace: default
  labels:
    k8s-app: elk-logging
    version: v1
    kubernetes.io/cluster-service: "true"
spec:
  template:
    metadata:
      labels:
        k8s-app: elk-logging
        version: v1
        kubernetes.io/cluster-service: "true"
    spec:
      tolerations:
      - key: node-role.kubernetes.io/master
        effect: NoSchedule
      containers:
      - name: elk
        image: fluent/fluentd-kubernetes-daemonset:elasticsearch
        env:
          - name:  FLUENT_ELASTICSEARCH_HOST
            value: "cp-os-logging-dashboard"
          - name:  FLUENT_ELASTICSEARCH_PORT
            value: "9200"
          - name: FLUENT_ELASTICSEARCH_SCHEME
            value: "http"
        resources:
          limits:
            memory: 200Mi
          requests:
            cpu: 100m
            memory: 200Mi
        volumeMounts:
        - name: logs
          mountPath: /home/services/*/logs/
        - name: varlog
          mountPath: /var/log
        - name: varlibdockercontainers
          mountPath: /var/lib/docker/containers
          readOnly: true
      terminationGracePeriodSeconds: 30
      volumes:
      - name: logs
        hostPath:
          path: /home/services/*/logs/
      - name: varlog
        hostPath:
          path: /var/log
      - name: varlibdockercontainers
        hostPath:
          path: /var/lib/docker/containers

在这里提问之前,我已经尝试过卷主机路径、emptyDir和其他类型。我只想从守护程序访问我的应用程序日志。我可以在没有守护程序的情况下完成这项工作。

Kubernetes将把所有日志发送到节点/var/log等。fluentd daemoset需要hostPath卷来获取日志并发送到日志记录器,顾名思义,当pod被调度到一个节点时,将为空

...
...
volumes:
- name: varlog
  hostPath:
    path: /var/log
- name: varlibdockercontainers
  hostPath:
    path: /var/lib/docker/containers

查看和了解更多信息。

谢谢。我已经准备好了,现在就开始尝试。仍然不工作。您可以共享您的守护程序yaml吗?