我有一个Kubernetes集群,其上有50多个pod,我想从所有这些pod中获取日志,然后将日志存储在ElasticSearch中并使用Kibana将其可视化,但ElasticSearch和Kibana应该在Kubernetes之外,同一网络中的另一台虚拟机。
如何配置Fluentd抓取日志并将其发送到非Kubernetes ElasticSearch?
答案 0 :(得分:0)
完全有可能。在kubernetes集群中,您需要在可从群集外部的虚拟机访问的外部IP上公开Fluentd服务,并在此虚拟机上运行ElasticSearch和Kibana。
ElasticSearch(在kubernetes集群之外)将使用k8s中的Fluentd服务访问Fluentd(在kubernetes集群内)并提取日志。
有四种方法可以在k8s中公开Fluentd服务以供ElasticSearch进行外部访问:
LoadBalancer
自动设置ExternalIP的服务类型。当存在外部非k8s,云提供商的负载均衡器(如CGE,AWS或Azure)时,将使用此方法,此外部负载均衡器将为nginx入口服务提供ExternalIP。ExternalIPs
每https://kubernetes.io/docs/concepts/services-networking/service/#external-ips。NodePort
:在这种方法中,可以使用NodeIP从集群外部访问服务:NodePort / url / of / the / service。Ingress
:https://kubernetes.io/docs/concepts/services-networking/ingress/