--- apiVersion: fluentd.fluent.io/v1alpha1 kind: ClusterOutput metadata: name: freeleaps-logging-system-loki labels: fluentd-default-output: "true" spec: outputs: - loki: url: http://loki-gateway.freeleaps-logging-system lineFormat: json insecure: true extractKubernetesLabels: true --- apiVersion: fluentd.fluent.io/v1alpha1 kind: Fluentd metadata: name: fluentd namespace: freeleaps-logging-system spec: globalInputs: - forward: bind: "0.0.0.0" port: 24224 fluentdCfgSelector: matchLabels: fluentd-default-config: "true" replicas: 2 workers: 1 image: kubesphere/fluentd:v1.17 resources: requests: cpu: 500m memory: 1Gi limits: cpu: 1 memory: 2Gi affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: app.kubernetes.io/name operator: In values: - fluentd topologyKey: "kubernetes.io/hostname" envVars: # Node information - name: K8S_NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName - name: K8S_NODE_IP valueFrom: fieldRef: fieldPath: status.hostIP # Pod information - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: POD_IP valueFrom: fieldRef: fieldPath: status.podIP buffer: disableBufferVolume: true --- apiVersion: fluentd.fluent.io/v1alpha1 kind: ClusterFilter metadata: name: fluentd-metadata-appender labels: fluentd-default-filter: "true" spec: filters: - recordTransformer: enableRuby: true records: - key: fluentd_pod_name value: ${ENV["POD_NAME"] || "unknown"} - key: fluentd_pod_ip value: ${ENV["POD_IP"] || "unknown"} - key: fluentd_pod_namespace value: ${ENV["POD_NAMESPACE"] || "unknown"} - key: fluentd_node_name value: ${ENV["K8S_NODE_NAME"] || "unknown"} - key: fluentd_node_ip value: ${ENV["K8S_NODE_IP"] || "unknown"} --- apiVersion: fluentd.fluent.io/v1alpha1 kind: FluentdConfig metadata: name: freeleaps-logging-fluentd-pipeline namespace: freeleaps-logging-system labels: fluentd-default-config: "true" spec: clusterFilterSelector: matchLabels: fluentd-default-filter: "true" clusterOutputSelector: matchLabels: fluentd-default-output: "true" ---