本文分享自华为云社区《新一代云原生可观测平台之华为云CCE集群健康中心》,作者:云容器大未来。
"Kubernetes运维确实复杂,这不仅需要深入理解各种概念、原理和最佳实践,还需要对集群的健康状态、资源利用率、容器的稳定性等多个方面进行风险评估。当集群出现故障时,我们通常需要花费大量时间来分析各种日志和监控信息,以找出问题的根本原因。"一位IT公司运维总监如此说道。
近年来,越来越多的公司转向了基于Kubernetes的云原生架构。随着微服务和云原生架构的变得越来越复杂,我们也收到不少客户反馈在生产中进行监控和故障排除变得越来越困难。虽然CCE云原生可观测平台提供了监控、告警、日志等功能,能够让用户更加方便的定位问题,但是同样也无形中提高了运维人员的技术门槛。为了让运维和开发人员能够从繁重的故障定位排查中解脱出来,CCE服务提供了集群健康诊断能力。
CCE集群健康诊断集合了容器运维专家的经验,为您提供了集群级别的健康诊断最佳实践。可对集群健康状况进行全面检查,帮助您及时发现集群故障与潜在风险,并给出对应的修复建议供您参考。
▎开箱即用:免开通零依赖,一键健康诊断
集群健康诊断功能作为CCE内置健康专家系统,可以在不依赖任何插件和其他服务的情况下独立运行。用户无需繁琐的开通与配置流程,就可以一键触发集群健康诊断。
图1 一键健康诊断
▎定时巡检:无人值守,持续守护集群健康
在主动运维场景,比如集群升级前后或业务重保期间,用户可随时主动触发健康诊断来保障业务的顺利运行。另一方面,在日常运维中,我们无法一直盯屏保障,为了将客户从这种低级的劳动中解放出来,健康诊断支持定时巡检功能,只需要简单的配置定时任务,健康诊断任务就可以在后台守护您的集群健康,并将检查结果定时存档,方便随时回溯复盘。
图2 健康检查结果
▎多维诊断:丰富的诊断项,集群全方位体检
CCE集群健康诊断提炼了运维专家提供的高频故障案例,覆盖了集群/核心插件/节点/工作负载/外部依赖等多种维度的健康检查,并且所有的诊断项都给出了风险评级、影响风险、以及修复建议。
- 集群维度:包括集群运维能力检查,安全组配置检查,集群资源规划检查等诊断项。
图3 集群维度诊断项
- 核心插件维度:覆盖监控、日志、coredns、存储等核心插件的健康检查。
图4 核心插件维度诊断项
- 节点维度:包括节点资源负载情况和节点状态诊断。
图5 节点维度诊断项
- 工作负载维度:包括工作负载配置检查,Pod资源负载检查,Pod状态诊断等。
图6 工作负载维度诊断项
- 外部依赖维度:主要包括ECS和云硬盘等资源配额检查。
图7 外部依赖维度诊断项
▎智能分析:智能健康评级,专业修复建议
CCE集群健康诊断会针对故障和潜在风险,给出风险等级并提供修复建议。风险等级按照紧急程度分为高风险和低风险两种:
- 高风险:说明该诊断项会危及到集群或应用稳定性,可能造成业务损失,需要尽快修复。
- 低风险:说明该诊断项不符合云原生最佳实践,存在潜在的风险,但是不会马上对业务造成重大影响,建议修复。
在每一次健康诊断完成之后,所有的诊断结果会被汇总分析,并给出最终的集群健康评分,该评分反映了集群的整体健康状况。健康评分较低的集群往往存在较大的故障风险,需要引起集群管理员的高度重视。
图8 健康风险等级评估
▎案例分析:一次安全组误操作导致的业务故障
CCE作为通用的容器平台,安全组规则的设置适用于通用场景。集群在创建时将会自动为Master节点和Node节点分别创建一个安全组。如果用户不小心误操作了默认安全组中的规则,可能会导致节点网络不通等问题,而且这种问题往往比较难以排除,需要花费较多的时间才能定位到安全组的原因,影响业务恢复速度。这种情况我们可以通过健康中心的巡检功能来进行故障诊断。
例如修改一个集群的默认安全组规则,将Master与Node通信规则,从允许改为拒绝。
图9 修改安全组规则
以上操作会导致集群部分功能异常,如网络不通出现无法执行kubectl命令的问题。
这种问题往往难以排查,会消耗用户大量的时间来寻找根因。此时如果用户在CCE健康中心执行一次健康巡检,会发现安全组高风险巡检项提示:
图10 安全组异常提示
通过诊断详情可以直接定位异常安全组,便于进行针对性修复:
图11 定位异常安全组
整个故障诊断流程方便快捷,可以大幅减低故障排查时间,帮助客户业务更稳定的运行在CCE集群上。
▎结语
CCE集群健康诊断功能,集成沉淀了大量的专家运维经验,目标是为客户提供更加智能、快捷的运维能力。当前该能力依然在快速迭代,后续我们会增加巡检结果通知、风险评估阈值调整以及更丰富的诊断项等能力,为大家带来更智能、更可靠稳定的云原生系统。
服务体验请访问
标签:维度,运维,诊断,华为,集群,CCE,健康 From: https://blog.51cto.com/u_15214399/9024564