SREWorks云原生数智运维工程实践-云原生运维实战篇-SREWorks持续交付云原生化:镜像构建(下)

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

三、 基于Kaniko的设计实现

 

目前支持在容器内部进行镜像构建的开源技术有很多:Kaniko,BuildKit,Img等,其中Kaniko作为Google官方开源的容器化构建解决方案,目前收获了最高的star数量,社区活跃度也最高。排名其后的BuildKit和Img也通过其自身的技术优点吸引了一大批粉丝。

 

从架构上看,BuildKit和Img都是通过内置一个非Root权限的嵌套容器去执行构建。而Kaniko没有拉起嵌套容器去做构建,而是直接实现了Docker daemon中create job的功能,更加的轻量、高效、安全。因此,SREWorks基于Kaniko去做云原生下的镜像构建。

 

在引入Kaniko之后,SREWorks的中心管控appmanager服务按照如下架构来对接ApiServer拉起和管控执行构建任务的pod。

 

image.png

 

AppManager关键模块讲解:

 

Provider模块:AppManager内置了一系列的Provider负责处理Client客户端的请求

构建任务状态管理器ComponentPackageTaskStateActionManager:负责监听各类构建任务状态更新事件,进而调用不同构建阶段的子处理器

RunningState,FailureState,SuccessState等模块:具体负责处理不同构建阶段的事务

ComponentPackageBuilderService模块:负责具体的镜像构建、构建Pod管控等工作

 

这里主要讲一下镜像构建的主要工作流程:

 

a) 将应用Component包每个应用可包含多个Component,每个Component又可包含多个Container拆解为多个Container构建任务

b) 启动构建Pod Informer监听

c) 下载每个Container构建源代码,并渲染Dockerfile文件

d) 渲染并下发构建Pod yaml并监听构建pod状态

e) 当构建pod到达终态时,进行Component交付包生成、资源清理等工作。

 

四、 设计反思

 

通过以上基于Kaniko架构设计和实现,SREWorks提出了持续交付云原生化的设计要求,并为此设计并实现了自己的解决方案。在此罗列一些目前的架构Feature供大家深入发掘一下:

 

内置了Dockerfile参数动态渲染功能,这为运维人员提供了可操作空间。

由于目前云底座K8S等,都已支持所有实现了Container Runtime InterfaceCRI的容器运行时例如Docker、containerd、CRI-O,所以本文所提DinD,在目前云原生形态下称其为DinCContainer更为准确。

SREWorks的持续交付物的核心是镜像,在某些特殊场景下,交付物即使转变为机器时代的Jar包或者比镜像更高级的形态,但是本文的弹性架构设计依然适用。

共享PV下发构建tar包:可以去除MinIO的依赖,执行构建任务的pod直接从共享PVC内读取构建tar包。但是由于在某些云底座上,无内置“ReadWriteMany”访问模式的PV,所以暂时关闭了这项功能

构建Pod替换成Job使用Pod进行构建的初衷是足够轻量化且AppManager具有绝对的管控权限。目前还没有足够的替换理由

 

五、 云原生建设感悟浅谈

 

广义地来看,可以说现在的几乎所有云产品都是云原生的,因为他们都或多或少满足了云原生所标榜的微服务、容器、持续交付、DevOps。但是,狭义地来看,在某些场景下,其往往又不能完全满足云原生的某些特性:例如可复用、免运维、资源池化等。

 

正如CNCF对云原生的定义:“云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API”。在作者看来,其内在含义代表着一种以产品能力为导向的最佳上云实践。

 

脱离“产品”这个导向,云原生化往往是没有意义的;“最佳实践”代表云原生化是不断迭代的;以本文镜像构建的演进为例,也是在产品能力的指导下,不断迭代和完善的,这就是云原生化的意义。

相关文章
|
9月前
|
数据采集 运维 数据可视化
AR 运维系统与 MES、EMA、IoT 系统的融合架构与实践
AR运维系统融合IoT、EMA、MES数据,构建“感知-分析-决策-执行”闭环。通过AR终端实现设备数据可视化,实时呈现温度、工单等信息,提升运维效率与生产可靠性。(238字)
|
8月前
|
数据采集 运维 监控
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
本文系统解析爬虫与自动化核心技术,涵盖HTTP请求、数据解析、分布式架构及反爬策略,结合Scrapy、Selenium等框架实战,助力构建高效、稳定、合规的数据采集系统。
1218 62
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
|
10月前
|
人工智能 运维 监控
运维也能“先演练后实战”?聊聊数字孪生的那些神操作
运维也能“先演练后实战”?聊聊数字孪生的那些神操作
311 0
|
12月前
|
人工智能 运维 安全
基于合合信息开源智能终端工具—Chaterm的实战指南【当运维遇上AI,一场效率革命正在发生】
在云计算和多平台运维日益复杂的今天,传统命令行工具正面临前所未有的挑战。工程师不仅要记忆成百上千条操作命令,还需在不同平台之间切换终端、脚本、权限和语法,操作效率与安全性常常难以兼顾。尤其在多云环境、远程办公、跨部门协作频繁的背景下,这些“低效、碎片化、易出错”的传统运维方式,已经严重阻碍了 IT 团队的创新能力和响应速度。 而就在这时,一款由合合信息推出的新型智能终端工具——Chaterm,正在悄然颠覆这一现状。它不仅是一款跨平台终端工具,更是业内率先引入 AI Agent 能力 的“会思考”的云资源管理助手。
|
10月前
|
存储 运维 安全
运维知识沉淀工具深度解析:从结构设计到落地实践全拆解
运维知识沉淀工具助力团队将零散经验结构化存储,实现问题处理路径标准化、知识复用化。通过标签、模板与自动化调取机制,让每次处理都留下可复用资产,提升团队协同效率与系统稳定性。
|
11月前
|
缓存 运维 安全
7天精通电商API:从接入到运维的完整实战手册
本文全面解析电商API接口技术,从基础概念到高阶应用,涵盖商品、订单、支付与营销等核心模块,并深入探讨性能优化、安全防护与智能化发展方向,助你掌握驱动数字商业的核心技术。
|
消息中间件 存储 NoSQL
RocketMQ实战—6.生产优化及运维方案
本文围绕RocketMQ集群的使用与优化,详细探讨了六个关键问题。首先,介绍了如何通过ACL配置实现RocketMQ集群的权限控制,防止不同团队间误用Topic。其次,讲解了消息轨迹功能的开启与追踪流程,帮助定位和排查问题。接着,分析了百万消息积压的处理方法,包括直接丢弃、扩容消费者或通过新Topic间接扩容等策略。此外,提出了针对RocketMQ集群崩溃的金融级高可用方案,确保消息不丢失。同时,讨论了为RocketMQ增加限流功能的重要性及实现方式,以提升系统稳定性。最后,分享了从Kafka迁移到RocketMQ的双写双读方案,确保数据一致性与平稳过渡。
|
9月前
|
机器学习/深度学习 人工智能 运维
三重Reward驱动的运维智能体进化:多智能体、上下文工程与强化学习的融合实践
这篇文章系统性地阐述了 AI 原生时代下,面向技术风险领域的智能体系统(DeRisk)的架构设计、核心理念、关键技术演进路径与实践落地案例。
三重Reward驱动的运维智能体进化:多智能体、上下文工程与强化学习的融合实践
|
数据采集 机器学习/深度学习 人工智能
智能运维在IT管理中的实践与探索
【10月更文挑战第21天】 本文深入探讨了智能运维(AIOps)技术在现代IT管理中的应用,通过分析其核心组件、实施策略及面临的挑战,揭示了智能运维如何助力企业实现自动化监控、故障预测与快速响应,从而提升整体运维效率与系统稳定性。文章还结合具体案例,展示了智能运维在实际环境中的显著成效。
695 133

热门文章

最新文章