阿里云k8s+log-pilot日志收集

背景说明

项目基本完成容器化与vpc迁移,完成架构改造的第一步。之后计划将服务逐步迁移到k8s上管理,依赖docker+k8s这样的PAAS平台,做到“更轻量的运维,人人都是devops”。

首先项目运行在阿里云的vpc内,需要使用阿里云的k8s容器服务,需要做所有系统的二次迁移。那么在迁移之前,需要了解使用k8s的架构需要有哪些一些基础设施。

k8s作为优秀的PAAS平台,已经帮我们解决资源调度、服务编排、服务发现等工作,从实际场景出发,我们迁移时需要确认以下几点:

  • 容器的日志如何收集
  • 业务监控(这里系统监控与进程监控可以依靠阿里云的基础设施来完成)
  • 服务流量调度(SLB如何接入,即ingress/egress的配置)
  • 发布系统
  • CMDB接入资源伸缩

这次先记录阿里云k8s集群接入日志服务的方式。

日志系统架构

传统的ELK架构

日志系统的解决方案最常见的就是ELK,elasticsearch + logstash + kibana的组合,同时日志采集可以使用filebeat。架构如下:

ELK-官网图片.png
ELK架构.png

  • filebeat采集指定文件的日志信息
  • logstash做日志收集,日志格式化,日志内容过滤等工作
  • elasticsearch完成日志索引入库
  • kibana提供可视化的日志查询页面
docker + log-pilot + 阿里SLS

上一篇文章中,我是使用了docker-compose在一台VM上跑多个容器(当时k8s的体系知识还不够完备),基于log-pilot:0.1版本采集容器的stdout的输出。实际上log-pilot的机制与filebeat一样,默认采集了/var/lib/docker/containers目录下的容器日志信息,再根据log-pilot里的配置上报给SLS对应的project和log-store入库。传送门

k8s + log-pilot + 阿里云SLS

在k8s里部署log-pilot有几个优点,通过DaemonSet这个控制器的特性,可以将底层资源的扩缩容操作透明化,不用在跑什么部署脚本安装log-pilot了,另外log-pilot接入SLS解决ELK传统架构里维护es集群的痛苦。

什么是DaemonSet?
A DaemonSet ensures that all (or some) Nodes run a copy of a Pod. As nodes are added to the cluster, Pods are added to them. As nodes are removed from the cluster, those Pods are garbage collected. Deleting a DaemonSet will clean up the Pods it created.

官网上的说明是能够在所有的Node上执行定义好的一个pod,在整个底层的k8s集群里增加与删除node,都会对应的增加与删除控制器定位DaemonSet的Pod。

相关配置

log-pilot.yml

apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
  na
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值