SREWorks云原生数智运维工程实践-Kubernetes资源编排之二:Helm篇(中)

简介: SREWorks云原生数智运维工程实践-

三、 Helm的优点

 

生命周期管理:可以实现对组件实例的查询、安装、卸载、升级、回滚

方便的命令行:对于简单变量,可以在部署的同时指定对应的参数,方便部署

插件和工具生态:作为CNCF项目Helm已经变成了K8S基础生态的一部分,各种各样的外部系统都会对它进行默认支持,CICD工具集成方面有得天独厚的优势;同时用户能够从社区中获取丰富的专业知识和共享的Chart包

确保Secret安全性:一些敏感数据在Kubernetes中会存储为文本文件,作为Helm模版和值的一部分,而helm-secrets插件为关键信息提供秘密管理和保护,将相关值进行加密

Chart调试功能:Helm提供了一些命令让用户在安装前测试资源的正确性,检查Chart是否正确生成,例如helm lint;helm install —dry-run — debug等

 

四、 Helm的缺点

 

应用定制受限于预置变量:Chart是一种模板,Chart的用户仅能通过对values的控制来定制组件的部署行为,模板中没有提供变量的位置,是无法在下游直接进行变更。

YAML文件的无序部署在YAML文件变多之后,尤其在Operator-CRD场景下,YAML下发常常需要存在一定的先后顺序。helm中利用一个叫crd目录来进行优先下发来避免问题。但实际工程实践中,对于顺序的要求会更复杂。

应用安装状态感知:对于Helm而言,将所有Chart中的模版推到Kubernetes之后,它的install过程就结束了,它并不关心yaml中配置的各个组件在Kubernetes中是否能有效运行,而这恰恰是用户最关心的部分,因此使用Helm安装可能会出现用户无法感知的异常

 

五、 SREWorks对Helm的能力补充

 

1. 部署SREWorks时的Helm安装进度反馈

 

SREWorks平台自身的安装也是通过Helm包来实现的,常常会有一些SREWorks的用户以为helm install执行完就安装完了。事实上这个时候安装才刚刚开始。我们希望用户在这个过程中能够感知到具体的安装进度和异常反馈,于是我们在helm install执行完后提醒用户该功能将于v1.3版本上线):

 

 

Please execute following command in terminal to trace the install progress:

 

kubectl logs job.batch/sreworks-progress-check -nsreworks -f

 

After install finished (5-10mins) open the following URL in your browser:

 

   http://xxxx/#/

 

   account: admin

   password: *****

 

 

在这个sreworks-progress-check的job中,我们实现了对SREWorks安装进度全跟踪。

 

image.png

 

我们编写了进度查询和错误诊断脚本,将其包装成SREWorks的一个Job和其他所有组件一起同步部署,这样用户就能在终端实时查看安装进度,并能在异常出现时及时进行排查。

 

进度查询

 

image.png

错误诊断

 

image.png

 

2. SREWorks中的Helm组件状态统一管理

 

鉴于Helm并不跟踪各个组件的部署状态,在SREWorks中,我们复用AppManager已有的Groovy脚本托管能力,自己编写了一个小Groovy脚本,目的在于等待终态+获取数据。

 

代码如下:

 

 

getStatus(request) {

    def client = getKubeClient(kubeconfig from parameters)

    def service = client.services().inNamespace(namespace).withName(name).get()

    def response = new JSONObject()

    if (service.get("loadbalancer", "ingress", 0, "ip") not empty) {

        response.put("spec.metadata.annotations.vvpSlb", service.get("loadbalancer", "ingress", 0, "ip"))

        return Status.builder().response(response).status("SUCCESS").build();

    } else {

        return Status.builder().status("RUNNING").build();

    }

}

 

 

上述流程完成了Helm的安装、终态等待及数据获取。

 

上述getStatus()函数除了部署过程会刷5s/次;部署完之后也会一直刷,不过频率逐步降低到5min/次。作为状态感知的数据来源。

 

3. SREWorks中的Helm组件顺序部署

 

前面也提到过Helm的YAML文件无序下发针对大型工程而言,会有一定的影响。SREWorks的Appmanager基于OAM模型实现了workflow能力,能够支持多个Helm组件按照DAG图的顺序部署。

 


相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
10月前
|
数据采集 运维 数据可视化
AR 运维系统与 MES、EMA、IoT 系统的融合架构与实践
AR运维系统融合IoT、EMA、MES数据,构建“感知-分析-决策-执行”闭环。通过AR终端实现设备数据可视化,实时呈现温度、工单等信息,提升运维效率与生产可靠性。(238字)
|
11月前
|
存储 运维 安全
运维知识沉淀工具深度解析:从结构设计到落地实践全拆解
运维知识沉淀工具助力团队将零散经验结构化存储,实现问题处理路径标准化、知识复用化。通过标签、模板与自动化调取机制,让每次处理都留下可复用资产,提升团队协同效率与系统稳定性。
|
11月前
|
运维 Dubbo Cloud Native
Dubbo 云原生重构出击:更快部署、更强控制台、更智能运维
Apache Dubbo 最新升级支持云原生,提供一键部署微服务集群与全新可视化控制台,提升全生命周期管理体验,助力企业高效构建云原生应用。
1525 25
|
10月前
|
机器学习/深度学习 人工智能 运维
三重Reward驱动的运维智能体进化:多智能体、上下文工程与强化学习的融合实践
这篇文章系统性地阐述了 AI 原生时代下,面向技术风险领域的智能体系统(DeRisk)的架构设计、核心理念、关键技术演进路径与实践落地案例。
三重Reward驱动的运维智能体进化:多智能体、上下文工程与强化学习的融合实践
|
11月前
|
运维 Kubernetes Cloud Native
云原生运维也能很稳:Kubernetes 运维避坑指南
云原生运维也能很稳:Kubernetes 运维避坑指南
378 1
|
12月前
|
运维 监控 Cloud Native
从“守机器”到“写策略”——云原生架构把运维逼成了架构师
从“守机器”到“写策略”——云原生架构把运维逼成了架构师
325 1
|
运维 监控 负载均衡
高效运维实践:常见问题的应对策略与实践经验
本文探讨了运维工作中的五大核心挑战及应对策略,涵盖负载均衡优化、数据库性能提升、系统监控预警、容器化与微服务运维等方面,旨在帮助企业提升系统稳定性与运维效率。
|
12月前
|
运维 监控 安全
从实践到自动化:现代运维管理的转型与挑战
本文探讨了现代运维管理从传统人工模式向自动化转型的必要性与路径,分析了传统运维的痛点,如效率低、响应慢、依赖经验等问题,并介绍了自动化运维在提升效率、降低成本、增强系统稳定性与安全性方面的优势。结合技术工具与实践案例,文章展示了企业如何通过自动化实现运维升级,推动数字化转型,提升业务竞争力。
|
存储 Cloud Native 数据处理
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
本文整理自阿里云资深技术专家、Apache Flink PMC 成员梅源在 Flink Forward Asia 新加坡 2025上的分享,深入解析 Flink 状态管理系统的发展历程,从核心设计到 Flink 2.0 存算分离架构,并展望未来基于流批一体的通用增量计算方向。
672 0
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
|
11月前
|
运维 监控 Cloud Native
从本土到全球,云原生架构护航灵犀互娱游戏出海
本文内容整理自「 2025 中企出海大会·游戏与互娱出海分论坛」,灵犀互娱基础架构负责人朱晓靖的演讲内容,从技术层面分享云原生架构护航灵犀互娱游戏出海经验。
891 15

推荐镜像

更多
  • ros