61 K8S 之日志系统部署
在生产环境中,我们应该把监控系统和日志系统部署在生产环境之外的自主环境或 Kubernetes 集群之上,或者直接使用第三方的完整解决方案。
具体部署方案中,日志收集代理需要以 DaemonSet 控制器应用的形式在集群各节点上运行一个副本,甚至包括各个主节点。而 Elasticsearch 集群与 Kibana 则应该分别根据各自业务的具体需求来确定计算资源和存储资源需求以及实例的数量。
在 Kubernetes 上部署 Fluentd 和 Kibana 易于实现,Fluentd 由 DaemonSet 控制器部署到集群中的各节点,而 Kibana 由 Deployment 控制器部署并确保其持续运行。但 Elasticsearch 是一个有状态应用,需要使用 StatefulSet 控制器创建并管理相关的 Pod 对象,且它们还分别需要专用的持久存储系统来存储日志数据。
除了 Kubernetes 项目在其 Addons 目录中提供了资源配置清单用于部署 EFK 之外,Helm Hub 也为 ELK 涉及的 3 种软件分别提供了相应的 Chart 定义,以帮助用户通过 Helm 轻松完成部署。
版本(12.6.0)的 bitnami/elasticsearch Chart 使用 StatefulSet 和 Deployment 控制器实现了一个可动态伸缩的集群,并将集群中的节点角色分离为协调节点、摄取节点、准主节点和数据节点 4 类实例,前两者由各自的 Deployment 控制器资源进行编排,而后两者则由各自的 StatefulSet 控制器资源管理。
各个节点的功能简单介绍如下。
协调节点:数据节点便可作为协调节点使用,但大型集群环境中适量的协调节点能帮助数据节点避免将资源消耗在路由功能之上,一般不推荐将准主节点用作协调节点。bitnami/elasticsearch 默认创建两个协调节点。
摄取节点:bitnami/elasticsearch 默认不会创建专用的摄取实例,若需要启用,用到两个以上摄取实例的场景也并不多见,因此其副本数通常为 2。
准主节点:健康的集群必须要有一个稳定的主节点,准主节点的数量取决于公式“(客户端副本数/2)+1”的计算结果,但一般至少应该为 3 个,或者有两个准主节点加上仅投票节点,以完成选举操作。bitnami/elasticsearch 默认创建 2 个准主节点。
数据节点:所需的节点数量取决存储与计算的实际需求,因此监视这些资源并在过载时添加更多数据实例非常重要。bitnami/elasticsearch 默认创建两个数据节点。Metrics 和 Curator 默认均处于禁用状态。
版权声明: 本文为 InfoQ 作者【穿过生命散发芬芳】的原创文章。
原文链接:【http://xie.infoq.cn/article/c1776b0b67fa6dc00aee8cc06】。文章转载请联系作者。
评论