加入收藏 | 设为首页 | 会员中心 | 我要投稿 济源站长网 (https://www.0391zz.cn/)- 数据工具、数据仓库、行业智能、CDN、运营!
当前位置: 首页 > 服务器 > 安全 > 正文

Kubernetes容器集群中的日志系统集成实践

发布时间:2021-01-09 22:11:09 所属栏目:安全 来源:网络整理
导读:《Kubernetes容器集群中的日志系统集成实践》要点: 本文介绍了Kubernetes容器集群中的日志系统集成实践,希望对您有用。如果有疑问,可以联系我们。 Kubernetes是原生的容器编排管理系统,对于负载均衡、服务发现、高可用、滚动升级、自动伸缩等容器云平台的

A:对于打到日志文件中的日志,原则上建议日志目录是主机绑定上的或是共享目录.日志的自动发现和收集需要通过fluentd的插件,将指定的目录的文件过滤出来,例如标准输出日志肯定在主机的/var/lib/docker/containers/container-id/下.我们集成的Fluentd镜像,已经打包配置好了相应的的插件https://github.com/fabric8io/fluent-plugin-kubernetes_metadata_filter,可以参考.

Q:我们目前也使用了Fluentd收集容器日志,收集容器写到log文件中的日志比收集从标准输出的日志要慢,请问你们有什么调优的方法吗?

A:文件日志比标准输出慢是正常的,调优Fluentd的性能可能要根据Fluentd的说明逐渐积累经验先定位哪里慢,再试验加快方法,跟各种系统的性能调优是同样的思路.下面这个链接有些调优建议.http://docs.fluentd.org/articles/performance-tuning

Q:请问如何处理集群自我恢复机制,比如elasticsearch-master、elasticsearch-client 挂了?

A:我们在Kubernetes集群中,elasticsearch-master和elasticsearch-client都是以Relication Controller或Replication Set方式启动的,系统会自动保证服务的高可用.其他集群也是类似的机制,和一般Web应用的高可用是一样,要有机制保证重启服务,要有机制做服务发现和负载均衡,在K8s集群是靠Relication Controller和Kube-proxy.

Q:请问,在Kubernetes集群中的每个节点上运行一个Fluentd的容器,这个节点是容器还是部署Docker的节点?

A:这个是主机节点(可能是物理机或虚拟机),就是Kubernetes的Node,部署Docker的节点.推荐的官方方法,是通过Kubernetes的DaemonSet做部署.当然也可以自己在每个节点上维持自动的启动脚本,运行一些每个节点都要启动的Pod服务.

Q:请问,Kubernetes的master是单点的,你们是否有优化过,现在1.3了,你们平台升级是否是热部署?

A:我们是用podmaster做至少3节点master高可用部署,api-server是多活的,controllermanager 和schedule是1活2备.平台升级现在是手动的,不会影响运行中的服务.但是现在平台升级需要工程师小心翼翼的手动操作,还不是自动化的.

Q:请问Fluentd和Flume除了开发语言不一样,有什么本质上的区别?以及ES日索引的分片数量建议是?

A:Fluentd和Flume的设计理念是类似的,一个用CRuby,一个用JRuby,与Fluentd和Logstash的情况类似,Fluentd的镜像会小一些,运行时内存消耗会小一些,而Flume的镜像因为要打包JDK差不多要几百兆.在围绕容器的Linux环境中,Java的跨平台性本身带来不了特别大优势,反而Fluentd镜像小的优势更加明显.另外一个对我们的系统实践意义比较大,就是fluentd跟Kubernetes集群的方案做的简单明了.ES默认的shards数是5,一般的集群情况要根据使用情况测一下,对于不同的index,这个shards数可以是不一样的.Shards的个数尽量不设1吧,设1的话,将来想要增加分片时,移动的数据量太大了.在没有很充分的生产测试经验之前,设置2到5比较好.

文/王昕

文章出处:Docker

(编辑:济源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读