解锁分布式云多集群统一监控的云上最佳实践
作者:在峰
引言
在当今数字化转型加速的时代,随着混合云、多云多集群环境等技术被众多企业广泛应用,分布式云架构已成为众多企业和组织推动业务创新、实现弹性扩展的首选,分布式云容器平台 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 注册集群对本地数据中心、三方公共云集群进行云上纳管
[2] 注册集群中安装阿里云 Prometheus 组件
[3] 创建注册集群
[4] 开启被集成的可观测监控 Prometheus 版全局聚合监控