我想从容器到主机节点进行syslog-
在节点-https://docs.fluentd.org/input/syslog上运行的定向流利(@ 127.0.0.1:5140)
例如从hello-server到节点(承载所有这些名称空间的节点)的syslog
我想将hello-server容器的syslog输出输出到在节点(@ 127.0.0.1:5140)上运行的fluentd。
kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
default hello-server-7d8589854c-r4xfr 1/1 Running 0 21h
kube-system event-exporter-v0.2.4-5f7d5d7dd4-lgzg5 2/2 Running 0 6d6h
kube-system fluentd-gcp-scaler-7b895cbc89-bnb4z 1/1 Running 0 6d6h
kube-system fluentd-gcp-v3.2.0-4qcbs 2/2 Running 0 6d6h
kube-system fluentd-gcp-v3.2.0-jxnbn 2/2 Running 0 6d6h
kube-system fluentd-gcp-v3.2.0-k58x6 2/2 Running 0 6d6h
kube-system heapster-v1.6.0-beta.1-7778b45899-t8rz9 3/3 Running 0 6d6h
kube-system kube-dns-autoscaler-76fcd5f658-7hkgn 1/1 Running 0 6d6h
kube-system kube-dns-b46cc9485-279ws 4/4 Running 0 6d6h
kube-system kube-dns-b46cc9485-fbrm2 4/4 Running 0 6d6h
kube-system kube-proxy-gke-test-default-pool-040c0485-7zzj 1/1 Running 0 6d6h
kube-system kube-proxy-gke-test-default-pool-040c0485-ln02 1/1 Running 0 6d6h
kube-system kube-proxy-gke-test-default-pool-040c0485-w6kq 1/1 Running 0 6d6h
kube-system l7-default-backend-6f8697844f-bxn4z 1/1 Running 0 6d6h
kube-system metrics-server-v0.3.1-5b4d6d8d98-k7tz9 2/2 Running 0 6d6h
kube-system prometheus-to-sd-2g7jc 1/1 Running 0 6d6h
kube-system prometheus-to-sd-dck2n 1/1 Running 0 6d6h
kube-system prometheus-to-sd-hsc69 1/1 Running 0 6d6h
由于某些原因,k8s不允许我们使用内置的syslog驱动程序docker run --log-driver syslog
。
此外,k8s不允许我使用--network =“ host”
与基础主机连接有人尝试过类似的方法吗?也许远程系统日志比尝试使用在每个节点上运行的基础系统日志要容易得多?
答案 0 :(得分:2)
您实际上正在查看的是Stackdriver Logging Agent。根据{{3}}上的文档:
如果您使用的是GKE,并且集群中启用了Stackdriver Logging,则无法更改其配置,因为它是由GKE管理和支持的。但是,您可以禁用默认集成并部署自己的集成。
然后,文档提供了使用自定义ConfigMap冲洗自己的流利的DaemonSet的示例。您需要运行自己的流利语言,以便可以根据https://kubernetes.io/docs/tasks/debug-application-cluster/logging-stackdriver/#prerequisites配置系统日志输入。
然后,由于fluentd以DaemonSet的身份运行,因此您将配置Service,以将其公开给其他Pod,然后允许其连接。如果您从https://docs.fluentd.org/input/syslog运行官方的上游DaemonSet,则服务可能类似于:
apiVersion: v1
kind: Service
namespace: kube-system
metadata:
name: fluentd
spec:
selector:
k8s-app: fluentd-logging
ports:
- protocol: UDP
port: 5140
targetPort: 5140
然后您的应用程序可以登录到fluentd.kube-system:5140
(请参阅在https://github.com/fluent/fluentd-kubernetes-daemonset上使用DNS)。