《2021 阿里云可观测技术峰会演讲实录合辑(下)》——二、 基于eBPF的Kubernetes可观测实践【下】

简介: 《2021 阿里云可观测技术峰会演讲实录合辑(下)》——二、 基于eBPF的Kubernetes可观测实践【下】

接上篇:

https://developer.aliyun.com/article/1222967?spm=a2c6h.13148508.setting.17.4f394f0em1x0Jq

eBPF得到了很多大公司的支持,发展十分迅猛。过去一年,阿里云可观测团队基于eBPF技术构建了统一可观测平台。其架构如下图。

 image.png

最底层是数据采集层,主要采用Tracepoints、Kprobre、eBPF函数抓取相关系统调用,关联进程容器信息,形成原始事件,并通过eBPF和sysdig的结合支持多内核版本。同时为了解决事件爆炸的问题,引入了事件过滤和高性能事件传输机制。

 

往上是数据处理层。用户态获取到原始事件后,首先进行协议的解析,生成指标、链路、日志等数据,过程中也会对信息做收敛。然后填充元信息,比如K8s信息填充或自定义应用信息填充,最后监控数据会通过OpenTelemetry Collector输出。引入OpenTelemetry Collector主要为了支持多种数据类型以及多数据传输通道,支持将监控数据写入用户指定的存储。

 

再往上是数据存储层,默认情况下,指标会使用influxDB存储在Prometheus,链路和日志使用SLS存储在Trace。

 

最上是数据服务层,通过ARMS的前端以及Grafana最终呈现给用户多种多样的可观测服务。

 image.png

ARMS可观测团队关注eBPF在应用层的应用,通过监听网络内核调用,构建连接跟踪,将传输的网络包进行协议分析,得到应用层面的请求响应,最终得以无侵入式地支持多语言场景下请求数、响应时间、错误数、黄金指标的监控。

 

目前我们支持HTTP、Redis、DNS、Kafka、MySQL、gRPC、http2等协议,支持的协议列表也在不断扩充中。

 image.png

经过一年多的生产实践,遇到最多的问题主要有以下四个:

 

第一, 内核版本适配问题。eBPF在内核版本4.14以上才有较为成熟的支持。但是线上依然存在很多老的内核版本,这部分需要使用sysdig进行支持。高版本在core不成熟的情况下,使用动态下载内核图文件以及动态编译的方式进行支持

 

第二, 内核事件爆炸。传统的监听Tracepoints、Kprobre会产生巨大的事件,给探针的性能造成巨大压力。为了解决这个问题,我们引入了事件过滤机制,只处理网络调用事件,同时优化事件传输序列化,达到高性能事件传输的目的;

 

第三, 在事件的消费侧,协议解析效率低下。为此我们优化了高性能解析算法,比如可以减少分析的字节数,优化更多的匹配算法提升解析的效率。同时还使用了多线程内存复用等工程手段提升协议解析效率

 

第四, 指标时间线爆炸。所有事件最终都会聚合为指标、链路和日志,其中指标方面由于个别维度发散,会对存储的稳定性造成极大的影响。因此,我们支持在写指标的时候进行维度收敛,比如每个维度的基数不得超过100,超过后将收敛成星号,代表通用的收敛标记。此外,还在查询侧进行了优化,主要做了精度的降级。

image.png

eBPF技术的无侵入性以及多语言支持的特性使得开箱即用成为了可能。基于此,阿里云可观测团队开始构建统一可观测界面。

 

首先是统一告警。接入阿里云eBPF监控,我们设计了一套默认的告警模板,涵盖了应用层、K8s管控层、基础设施层和云服务层,提供了开箱即用的帮助用户发现问题的能力。

image.png

有了eBPF保存现场数据,加上告警系统告知存在问题,后续应如何统一进行关联分析,找到根因?

 

我们认为需要有一个界面来承载关联分析逻辑。它应当目标明确,比如要解决容量规划问题、成本消耗问题还是应用性能问题;它应当内容丰富,包含解决问题需要的所有内容,比如指标、链路、日志、事件、问题的影响面、关联关系等;它应当具备非常清晰的使用路径,能够回答当前是否有问题,未来是否有问题、问题的影响是什么、问题的根因是什么、用户能做什么等,以此一步步引导用户解决问题。

image.png

基于以上设想,我们推出了统一的Grafana大盘。它符合关联分析逻辑,无论是全局还是特定实体都有总览,能够发现问题细节,能够排查问题;它包含日志、事件、指标等多数据源,以告警异常阈值为驱动,整个大盘可以交互、点击跳转,可以定位根因,涵盖了K8s集群最核心的资源类型。

 image.png

我们也推出了统一的拓扑大图,它具备拓扑感知、依赖分析、流量监控、上下文关联等特性,可以按维度筛选节点和边,构建业务语义化的视图。

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
7月前
|
存储 Kubernetes 网络安全
关于阿里云 Kubernetes 容器服务(ACK)添加镜像仓库的快速说明
本文介绍了在中国大陆地区因网络限制无法正常拉取 Docker 镜像的解决方案。作者所在的阿里云 Kubernetes 集群使用的是较旧版本的 containerd(1.2x),且无法直接通过 SSH 修改节点配置,因此采用了一种无需更改 Kubernetes 配置文件的方法。通过为 `docker.io` 添加 containerd 的镜像源,并使用脚本自动修改 containerd 配置文件中的路径错误(将错误的 `cert.d` 改为 `certs.d`),最终实现了通过多个镜像站点拉取镜像。作者还提供了一个可重复运行的脚本,用于动态配置镜像源。虽然该方案能缓解镜像拉取问题,
803 2
|
存储 负载均衡 测试技术
ACK Gateway with Inference Extension:优化多机分布式大模型推理服务实践
本文介绍了如何利用阿里云容器服务ACK推出的ACK Gateway with Inference Extension组件,在Kubernetes环境中为多机分布式部署的LLM推理服务提供智能路由和负载均衡能力。文章以部署和优化QwQ-32B模型为例,详细展示了从环境准备到性能测试的完整实践过程。
|
存储 人工智能 Kubernetes
ACK Gateway with AI Extension:面向Kubernetes大模型推理的智能路由实践
本文介绍了如何利用阿里云容器服务ACK推出的ACK Gateway with AI Extension组件,在Kubernetes环境中为大语言模型(LLM)推理服务提供智能路由和负载均衡能力。文章以部署和优化QwQ-32B模型为例,详细展示了从环境准备到性能测试的完整实践过程。
|
存储 人工智能 物联网
ACK Gateway with AI Extension:大模型推理的模型灰度实践
本文介绍了如何使用 ACK Gateway with AI Extension 组件在云原生环境中实现大语言模型(LLM)推理服务的灰度发布和流量分发。该组件专为 LLM 推理场景设计,支持四层/七层流量路由,并提供基于模型服务器负载感知的智能负载均衡能力。通过自定义资源(CRD),如 InferencePool 和 InferenceModel,可以灵活配置推理服务的流量策略,包括模型灰度发布和流量镜像。
|
安全 持续交付 云计算
课时5:阿里云容器服务:最原生的集成Docker和云服务
阿里云容器服务以服务化形式构建容器基础设施,大幅提升开发效率,简化应用部署流程。通过Docker容器和DevOps工具(如Jenkins),实现自动化部署与迭代,优化企业内部复杂部署问题。该服务支持GPU调度、混合云架构无缝迁移,并与阿里云产品体系无缝集成,提供安全防护、网络负载均衡等多重功能支持。凭借微服务架构,帮助企业突破业务瓶颈,提高资源利用率,轻松应对海量流量。
455 0
课时5:阿里云容器服务:最原生的集成Docker和云服务
|
弹性计算 监控 持续交付
面对热点事件,阿里云如何通过云上弹性与容器服务帮助客户应对流量洪峰
面对热点事件,阿里云如何通过云上弹性与容器服务帮助客户应对流量洪峰
380 0
|
6月前
|
人工智能 算法 调度
阿里云ACK托管集群Pro版共享GPU调度操作指南
本文介绍在阿里云ACK托管集群Pro版中,如何通过共享GPU调度实现显存与算力的精细化分配,涵盖前提条件、使用限制、节点池配置及任务部署全流程,提升GPU资源利用率,适用于AI训练与推理场景。
584 1
|
6月前
|
弹性计算 监控 调度
ACK One 注册集群云端节点池升级:IDC 集群一键接入云端 GPU 算力,接入效率提升 80%
ACK One注册集群节点池实现“一键接入”,免去手动编写脚本与GPU驱动安装,支持自动扩缩容与多场景调度,大幅提升K8s集群管理效率。
394 89
|
11月前
|
资源调度 Kubernetes 调度
从单集群到多集群的快速无损转型:ACK One 多集群应用分发
本文介绍如何利用阿里云的分布式云容器平台ACK One的多集群应用分发功能,结合云效CD能力,快速将单集群CD系统升级为多集群CD系统。通过增加分发策略(PropagationPolicy)和差异化策略(OverridePolicy),并修改单集群kubeconfig为舰队kubeconfig,可实现无损改造。该方案具备多地域多集群智能资源调度、重调度及故障迁移等能力,帮助用户提升业务效率与可靠性。
|
11月前
|
资源调度 Kubernetes 调度
从单集群到多集群的快速无损转型:ACK One 多集群应用分发
ACK One 的多集群应用分发,可以最小成本地结合您已有的单集群 CD 系统,无需对原先应用资源 YAML 进行修改,即可快速构建成多集群的 CD 系统,并同时获得强大的多集群资源调度和分发的能力。
778 9

相关产品

  • 容器服务Kubernetes版
  • 推荐镜像

    更多