再次升级!阿里云Kubernetes日志解决方案
背景针对K8S日志采集存在的采集目标多、弹性伸缩难、运维成本大、侵入性高、采集性能低等问题,在18年2月份日志服务和容器服务团队一起发布了阿里云Kubernetes日志解决方案。1分钟内即可完成整个集群部署,实现该节点上宿主机日志、容器日志、容器stdout等所有数据源的一站式采集。并且后续集群动态伸缩无需对采集做任何二次部署。今天阿里云Kubernetes日志解决方案再次升级,为您带来以下改进:
·
背景
针对K8S日志采集存在的采集目标多、弹性伸缩难、运维成本大、侵入性高、采集性能低等问题,在18年2月份日志服务和容器服务团队一起发布了阿里云Kubernetes日志解决方案。1分钟内即可完成整个集群部署,实现该节点上宿主机日志、容器日志、容器stdout等所有数据源的一站式采集。并且后续集群动态伸缩无需对采集做任何二次部署。
今天阿里云Kubernetes日志解决方案再次升级,为您带来以下改进:
- 极致部署体验:只需一条命令一个参数即可完成整个K8S集群的日志解决方案部署。
- 支持更多配置方式:除原生控制台、SDK配置方式外,支持通过CRD方式进行配置(kubectl、控制台、K8S openapi)。
- K8S无缝集成:采集配置支持yaml方式部署,兼容K8S各种集成方式。
日志服务介绍
阿里云的日志服务(log service)是针对日志类数据的一站式服务,2013年研发,有5年多线上运行经验,经历双十一、新春红包等考验。日志采集Agent Logtail运行在100W+机器上,为万级别应用提供服务。主要特点如下:
日志服务主要包括 实时采集与消费、数据投递、查询与实时分析 等功能,接下来我们介绍下如何利用日志服务进行Kubernetes日志采集。
Kubernetes日志采集方案介绍
方案简介
阿里云Kubernetes日志采集方案如上图所示:
- K8S的每个worker 节点都会运行一个Logtail容器,该容器可采集宿主机以及该宿主机上其他容器的日志(包括标准输出和日志文件)。
- Logtail以daemon set模式运行,保证每个节点都有一个Logtail容器在运行
- 使用自定义标识机器组,支持集群动态缩/扩容
- 所有的采集配置支持通过docker lable以及环境变量过滤指定容器
- K8S内部会注册自定义资源(CRD,CustomResourceDefinition)AliyunLogConfig,并部署alibaba-log-controller
- 支持用户通过CRD方式或日志服务控制台对采集配置进行管理
运行流程
以CRD配置方式为例,内部工作流程如下:
- 用户使用
kubectl
或其他工具应用aliyunlogconfigs CRD配置。 - alibaba-log-controller监听到配置更新。
- alibaba-log-controller根据CRD内容以及服务端状态,自动向日志服务提交logstore创建、配置创建以及应用机器组的请求。
- 以DaemonSet模式运行的Logtail会定期请求配置服务器,获取新的或已更新的配置并进行热加载。
- Logtail根据配置信息采集各个容器(POD)上的标准输出或日志文件。
- 最终Logtail将处理、聚合好的数据发送到日志服务。
部署方法
阿里云Kubernetes用户只需一条命令即可完成日志采集部署,命令中只需输入一个参数。
- 将下述命令中的
${your_k8s_cluster_id}
替换为您的Kubernetes集群id,执行此命令。
更多推荐
已为社区贡献4条内容
所有评论(0)