解锁分布式云多集群统一监控的云上最佳实践
作者:在峰
引言
在当今数字化转型加速的时代,随着混合云、多云多集群环境等技术被众多企业广泛应用,分布式云架构已成为众多企业和组织推动业务创新、实现弹性扩展的首选,分布式云容器平台 ACK One(Distributed Cloud Container Platform for Kubernetes)是阿里云面向混合云、多集群、分布式计算等场景推出的企业级云原生平台,助力用户对任何地域、任何集群进行统一运维管控。
那么在日益复杂、环境异构的基础设施中,如何有效的统一监控横跨云上云下、数量较多的 Kubernetes 集群,成为了运维团队面临的一大挑战。传统监控方案往往难以应对这种动态变化、高度分布式的环境,阿里云可观测监控 Prometheus 版使用全局聚合实例,构建一套灵活、统一的可视化监控视图,并集成到分布式云容器平台 ACK One 集群中,为用户提供开箱即用的多集群统一监控能力。 本文主要介绍在该场景下如何实现分布式云多集群的统一监控方案。
分布式云多集群业务场景
分布式云多集群因其灵活、可扩展性和地理分布等优势,被众多企业作为弹性需求、成本控制等方面的解决方案。其业务场景主要集中在如下几个方面:
弹性需求、资源成本
当企业的业务量呈现波动性,并且波动在不可预测的时候,比如电商网站在节假日或促销期间流量激增,一般在有本地 IDC 的情况下,同时利用公有云资源进行快速的弹性扩展,以满足峰值需求,而在业务低谷期收缩资源,从而节约成本。
业务跨国、多地分布
跨国公司可能需要在全球范围内快速部署应用和服务,同时遵守不同地区的数据主权法规。会结合本地私有云和全球分布的公有云资源快速扩展部署业务,满足业务连续性和合规要求。
数据保护、安全合规
企业可以将关键数据和系统在私有云和公有云之间做备份,利用公有云的地理冗余特性实现灾难恢复策略,增强业务连续性。同时在金融、医疗等行业,数据的存储位置和处理可能受到严格监管。需要在特定地理位置部署服务,确保数据合规性。
容灾备份、高可用性
在不同区域或环境中的多个集群中部署服务副本,一旦某个区域集群出现故障,流量可以迅速转移到其他正常运行的区域集群,确保服务连续性。
分布式云多集群监控的痛点
监控数据碎片化
由于集群分布在不同的地域和环境中,传统的监控方式往往需要为每个集群单独安装数据采集,导致监控数据分散在多个平台上,难以形成全局视图,增加了统一数据分析和故障排查的难度。
运维效率低下
运维人员需要频繁切换监控界面,分别查看每个集群的状态 ,其中因为环境不一、区域不一也会增加查询成本,而无法直观地从整体上把握系统的健康状况。这种割裂的监控方式大大降低了运维效率,增加了误判和遗漏风险。
告警策略不统一
每个独立集群可能设置不同的告警阈值和通知策略,这不仅增加了管理复杂度,还可能导致告警风暴或重要事件被忽视,影响故障响应速度和质量。
升级和维护成本高
每个集群的监控系统独立升级和维护,不仅操作重复,而且新功能或补丁的部署难以做到统一和增加了技术债务。同时云上云下集群采集组件管控、升级方式不统一,会额外增加维护成本。
构建统一的监控方案
阿里云可观测监控 Prometheus 版通过提供聚合实例,为构建跨越分布式云集群的统一监控需求提供了解决方案。概括来说主要分两个部分:
其一,鉴于分布式云多集群往往具备多集群、多地域乃至多云等特点,呈现出较高的异构性和复杂性,使用分布式云容器平台 ACK One 纳管不同环境集群,构建统一的云上运维管控能力,屏蔽不同环境下集群管控差异;
其二,在 ACK One 集群中使用统一的管控能力安装 Prometheus 采集组件并上报数据到云上,并通过 Prometheus 聚合实例提供统一监控视图。这样,在阿里云上为用户提供集群统一的监控、运维体验,解决了企业客户在使用分布式云多集群面临的监控痛点。该方案按照如下两个场景介绍:
场景一: 将云下(或三方云) K8s 集群监控迁到云上
当您的 K8s 集群在线下本地数据中心或者其他第三方公共云时,可以使用阿里云可观测监控 Prometheus 版,将容器监控迁到云上,获得云上云下统一的运维管理体验。
方案流程
1)集群纳管: 使用 ACK One 注册集群对本地数据中心、三方公共云集群进行云上纳管 [ 1] ,使得该场景各环境 K8s 集群在云上运维管理层面得到一致的使用体验。
2)开启监控: 在纳管完成后,类似其他 ACK 集群类型,可以在注册集群中安装阿里云 Prometheus 组件 [ 2] ,开启容器监控。

接入方式
步骤一:准备环境。 在阿里云容器服务控制台创建注册集群 [ 3] ,本文使用如下两个已创建集群,其中“注册集群测试 01”可以类比您本地数据中心或三方云 K8s 集群,“注册集群测试 02”是阿里云注册集群。以此模拟将目标集群“注册集群测试 01”纳管到“注册集群测试 02”中的流程。

步骤二:将目标集群纳管到注册集群。
- 获取注册集群“注册集群测试 02”的连接信息,并在目标集群“注册集群测试 01”中保存如 agent.yaml,并执行。


- 目标集群“注册集群测试 01”中可以查看下代理的运行状态。

- 注册成功后,您可以在容器服务管理控制台的 Kubernetes 集群列表页面,看到该集群的状态为运行中。

步骤三:在注册集群中开启 Prometheus 监控。

接入效果
按照上述方式接入后,便完成了将容器监控迁到阿里云上,可以使用云上可观测监控 Prometheus 版提供开箱即用的监控能力。统一您所有 K8s 集群的监控使用体验。

场景二 : 云上云下分布式多集群统一监控
阿里云 ACK One 集成了可观测监控 Prometheus 版,支持用户一键开启全局统一监控。当您同时运行着来自不同供应商、不同地域的多个 K8s 集群时,您可以通过多集群舰队 ACK One Fleet 关联多个集群,达成统一监控的效果。
方案流程
1)将监控统一迁到云上: 当您在云下或三方公共云上有 K8s 集群时,如场景一中描述的方案,先将监控能力统一搬迁到云上。至此,不同供应商、不同地域的各个 K8s 集群均可以使用阿里云可观测监控 Prometheus 版统一运维监控体验。
2)在云上统一监控视图: 借助 ACK One 注册集群的能力,您能够将容器监控统一搬到云上,获得了统一的监控体验。此时,各个集群的监控数据仍然是分散的,为了获得统一的聚合监控视图。我们可以进一步借助 ACK One Fleet 将多集群关联起来,同时开启被集成的可观测监控 Prometheus 版全局聚合监控 [ 4] 。

接入方式
步骤一:创建舰队,并关联集群。


步骤二:开启舰队全局监控。

接入效果
按照上述方式接入后,您可以在云上构建 K8s 多集群的统一监控视图,将各个集群分散的监控数据统一聚合查询,同时基于该聚合数据源配置告警,实现对所有 K8s 集群的统一监控管理。

总结
在分布式云多集群业务场景中,随着集群规模增长、架构复杂化等,带来的运维难度和成本也日益增加。
为应对分布式云多集群监控的挑战,阿里云可观测监控 Prometheus 版结合 ACK One,凭借高效纳管与全局监控方案有效破解了用户在该场景的监控运维痛点,为日益增长的业务需求提供了一站式、高效、统一的监控解决方案,实现成本与运维效率的双重优化。助力企业的数字化转型与业务快速增长,在复杂多变的云原生时代中航行,提供了一个强有力的罗盘与风帆。
方案的优势主要包括以下方面:
- 统一云上云下监控使用体验: 可以轻松将线下或第三方云的 K8s 集群监控数据迁移至阿里云,实现资源状态与监控信息的云端集中化管理,促进集群资源的透明度和可控性。
- 全局统一监控视图: 结合 ACK One Fleet,将多个分散的集群监控数据聚合在一个视图下,实现全局监控状态的可视化,帮助运维人员快速概览整体健康状况,及时发现并解决问题,增强业务稳定性。
- 简化监控部署与配置: 在纳管后的集群中直接安装阿里云 Prometheus 组件,便捷开启容器监控,减少手动部署和配置监控系统的负担,加速监控体系的建设和完善。
- 高性能与可靠性: 依托阿里云强大的基础设施和服务保障,提供的可观测监控 Prometheus 版能有效应对大规模监控数据处理需求,确保监控的稳定性和准确性,为企业核心业务提供坚实保障。
- 一站式服务与生态集成: 集成阿里云丰富的云产品和服务生态,便于与其他云服务如日志服务、告警服务等无缝对接,实现从监控、报警到故障排查的一站式解决方案,加速问题定位和解决速度。
目前,可观测监控 Prometheus 提供每月 50GB 免费额度,全面降低用户可观测成本。点击此处,立即开通!

相关链接:
[1] 使用 ACK One 注册集群对本地数据中心、三方公共云集群进行云上纳管
https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/use-cases/use-registered-clusters-to-centrally-manage-external-kubernetes-clusters?spm=a2c4g.11186623.0.0.5dcd4c6aFhbWjp
[2] 注册集群中安装阿里云 Prometheus 组件
https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/enable-prometheus-service-for-a-registered-cluster?spm=a2c4g.11186623.0.0.5ddb27f6J7UaTX
[3] 创建注册集群
https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/create-a-cluster-registration-proxy-and-register-a-kubernetes-cluster-deployed-in-a-data-center?spm=a2c4g.11186623.0.0.47535801wV2s5Z
[4] 开启被集成的可观测监控 Prometheus 版全局聚合监控
https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/global-monitoring?spm=a2c4g.11186623.0.0.1f885219vYytYR
相关文章:
解锁分布式云多集群统一监控的云上最佳实践
作者:在峰 引言 在当今数字化转型加速的时代,随着混合云、多云多集群环境等技术被众多企业广泛应用,分布式云架构已成为众多企业和组织推动业务创新、实现弹性扩展的首选,分布式云容器平台 ACK One(Distributed Clou…...
学会拥抱Python六剑客,提高编程效率
在Python语言中,有六个强大的工具,它们被称为"Python六剑客"。而Python六剑客指的是Python中常用的六种功能强大且灵活的工具,它们分别是“切片(Slicing),推导列表(List Comprehensio…...
mysql 根据当前时间筛选某个时间范围内的数据
1.根据天数筛选 SELECT * FROM coupons WHERE NOW() BETWEEN start_time AND end_time; 在这个查询中,NOW()函数返回当前的日期和时间。BETWEEN操作符用于检查NOW()返回的当前时间是否在start_time和end_time之间(包括这两个时间)。 注意&a…...
Linux 常用指令详解
Linux 是一个强大而灵活的操作系统,掌握常用的 Linux 指令是使用和管理 Linux 系统的基础。本文将介绍一些常用的 Linux 指令,并附上 Vim 和 g 的常用指令说明,帮助你更好地进行开发和操作。 1. 基本文件操作指令 1.1 显示目录内容 ls常用…...
【简单讲解下npm常用命令】
🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…...
Header Location重定向机制解析与应用
Header Location重定向机制解析与应用 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨HTTP中的Header Location重定向机制,以及在…...
硅纪元AI应用推荐 | 国产创作引擎即梦AI助力创作者探索创作新境界
“硅纪元AI应用推荐”栏目,为您精选最新、最实用的人工智能应用,无论您是AI发烧友还是新手,都能在这里找到提升生活和工作的利器。与我们一起探索AI的无限可能,开启智慧新时代! 在人工智能快速发展的今天,各…...
使用TableGeneration生成已标注的表格数据用于表格识别
利用 TableGeneration 生成多样化表格数据 TableGeneration 简介环境准备chrome浏览器(Linux下推荐)火狐浏览器(Mac下推荐) 生成表格生成表格 参数说明结论 在数据生成和处理领域,表格数据的生成是一个常见需求,尤其是在机器学习和数据分析领域。今天&am…...
赛目科技三度递表:净利率及资产回报率不断下滑,经营成本越来越高
《港湾商业观察》施子夫 5月29日,北京赛目科技股份有限公司(以下简称,赛目科技)第三次递表港交所,公司拟主板上市,独家保荐机构为光银国际。 公开信息显示,赛目科技此前曾于2022年12月&#x…...
【QT】概述|对象树模型|两种控件模式|信号和槽|lambda
目录 什么是QT 特点 QT程序 main函数 QT按钮 纯代码模式 图形化模式 对象树模型 信号和槽 连接与断开 自动连接 断开连接 信号的发射 lambda表达式 基本语法 捕获列表 Lambda表达式用于信号与槽的连接 例如 什么是QT Qt是一个跨平台的C图形用户界面应用…...
Java中的安全编码实践与防御技巧
Java中的安全编码实践与防御技巧 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨Java中的安全编码实践与防御技巧,这对于开发人员来说…...
linux 常用的命令、文件路径、其他工具或软件包
命令 sudo apt dist-upgrade 解决显示 暂不升级、未被升级dd if/dev/zero of./rootfs.img bs1G count6 制作一个 6G 的空白镜像。bs 是块字节数,count 是 bs 的个数。dd if./rootfs.img of/dev/sdc2 bs512 烧录 rootfs.img 镜像到 /dev/sdc2。bs 是 512 个字节&…...
00 如何根据规律在变化中求发展?
你好,我是周大壮。目前,我已在搜索推荐等算法技术领域从事研发近 10 年,做过诸多流量分发领域的算法技术工作。 如今任 58 同城的算法架构师、技术委员会人工智能分会委员、58 本地服务事业群算法策略部负责人,我主要负责 58 集团…...
UUID和自增ID做主键到底哪个好?
UUID(通用唯一识别码) 优点: 全局唯一性:由不同算法生成,确保全球范围内的唯一性,避免主键冲突。不可预测性:随机生成,难以被猜测,适合保密性应用。分布式应用࿱…...
FW SystemUI Keyguard解析(二)
文章目录 CTS之Keyguard Menu事件处理 CTS之Keyguard Menu事件处理 事件触发点: NotificationShadeWindowViewController.dispatchKeyEvent 设置setInteractionEventHandler回调之后通过NotificationShadeWindowView 触发 调用到return mService.onMenuPressed(); public cla…...
MySQL之备份与恢复(二)
备份与恢复 定义恢复需求 如果一切正常,那么永远也不需要考虑恢复。但是,一旦需要恢复,只有世界上最好的备份系统是没用的,还需要一个强大的恢复系统。 不幸的是,让备份系统平滑工作比构造良好的恢复过程和工具更容易…...
MySQL:保护数据库
保护数据库 1. 用户1.1 创建用户1.2 查看用户1.3 删除用户1.4 修改密码 2. 权限2.1 授予权限2.2 查看权限2.3 撤销权限 之前都是介绍本地数据库而你自己就是数据库的唯一用户,所以不必考虑安全问题。但实际业务中数据库大多放在服务器里,你必须妥善处理好…...
不是大厂云用不起,而是五洛云更有性价比
明月代维的一个客户的大厂云境外云服务器再有几天就到期了,续费提醒那是提前一周准时到来,但是看到客户发来的续费价格截图,我是真的没忍住。这不就是在杀熟吗?就这配置续费竟然如此昂贵?说实话这个客户的服务器代维是…...
C++初学者指南-3.自定义类型(第一部分)-异常
C初学者指南-3.自定义类型(第一部分)-异常 文章目录 C初学者指南-3.自定义类型(第一部分)-异常简介什么是异常?第一个示例用途:报告违反规则的行为异常的替代方案标准库异常处理 问题和保证资源泄露使用 RAII 避免内存泄漏!析构函数:不要让异…...
学会python——用python编写一个电子时钟(python实例十七)
目录 1.认识Python 2.环境与工具 2.1 python环境 2.2 Visual Studio Code编译 3.电子时钟程序 3.1 代码构思 3.2代码实例 3.3运行结果 4.总结 1.认识Python Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具有很强的可读性…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...
uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
R 语言科研绘图第 55 期 --- 网络图-聚类
在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...
基于PHP的连锁酒店管理系统
有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...
Sklearn 机器学习 缺失值处理 获取填充失值的统计值
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...
从零开始了解数据采集(二十八)——制造业数字孪生
近年来,我国的工业领域正经历一场前所未有的数字化变革,从“双碳目标”到工业互联网平台的推广,国家政策和市场需求共同推动了制造业的升级。在这场变革中,数字孪生技术成为备受关注的关键工具,它不仅让企业“看见”设…...
AD学习(3)
1 PCB封装元素组成及简单的PCB封装创建 封装的组成部分: (1)PCB焊盘:表层的铜 ,top层的铜 (2)管脚序号:用来关联原理图中的管脚的序号,原理图的序号需要和PCB封装一一…...
