Devtron 应用 Overview 概览页完全指南:项目迁移、标签传播与 PVC 构建缓存优化
云原生DevOps运维【免费下载链接】devtronThe only Kubernetes dashboard you need项目地址https://gitcode.com/gh_mirrors/dev/devtron点击查看免费下载导读本文以 Devtron 应用「Overview概览」页面为主线系统讲解三个高频管理操作切换应用所属项目、管理应用标签并将其传播为 Kubernetes 资源标签、以及通过配置 PVC 持久卷声明来加速多架构 CI 构建。读完本文你将掌握 Overview 页面每个字段的含义、操作步骤背后的权限影响以及devtron.ai/ci-pvc-all/devtron.ai/ci-pvc-{pipelinename}两类 PVC 挂载键在源码pkg/pipeline/types/Workflow.go中的真实生效机制可直接照搬到你的 Devtron 实例中完成实战配置。本文对应官方文档docs/user-guide/creating-application/overview.md以下内容在完整继承其操作步骤的基础上结合仓库源码进行了底层原理扩展。Overview 概览页是什么Overview是 Devtron 中每个应用Application的「信息总览」页面集中展示该应用的简要信息、已添加的标签Tags、已配置的外部链接External Links以及部署详情Deployment Details。同时它也是两个高频管理操作的入口切换应用所属项目Change Project管理标签Manage Tags包括创建、编辑、删除以及把标签传播Propagate为 Kubernetes 资源标签。进入应用的 Overview 页面后页面上方会展示以下基础字段字段说明App Name显示应用的名称。Created on显示应用创建的具体日期与时间。Created by显示创建该应用的用户邮箱地址。Project显示应用当前所属的项目可通过下拉列表选择其他项目完成迁移。切换应用所属项目Change Project操作步骤在Overview页面中点击Project字段即可开始迁移项目点击Project。在弹出的Change project对话框中从下拉列表选择目标项目。点击Save应用随即被移动到所选项目下。切换项目后的权限影响务必注意官方文档明确给出了一个关键提示请务必在迁移前评估当前拥有该应用访问权限的用户在项目切换后将失去对它的访问权限已经拥有目标项目访问权限的用户将自动获得该应用的访问权限。也就是说项目迁移本质上是把应用的「归属团队」整体搬迁权限随项目走而不是随应用走。因此在生产环境执行此操作前应先与目标项目成员确认避免团队成员突然无法访问应用。源码视角项目迁移实际做了什么从源码看项目迁移对应的是应用记录中teamId项目在 Devtron 中对应 Team/Project 概念的更新。在 pkg/app/AppCrudOperationService.go 的UpdateApp实现中一次完整的应用更新会依次完成标签合法性校验先遍历请求中的标签凡标记了Propagatetrue需要传播的标签都会调用k8s.CheckIfValidLabel校验其是否符合 Kubernetes 标签规范不合法则直接返回错误更新应用归属将app.TeamId更新为目标项目 ID并记录UpdatedBy与UpdatedOn更新标签调用UpdateLabelsInApp在数据库事务内同步标签的新增、修改与删除更新描述通过SetDescription持久化应用描述信息最后提交事务。由此可见UI 上的「Change Project Save」背后是一整套「项目归属 标签 描述」的原子更新流程失败时整体回滚不会出现数据半更新状态。管理标签Manage Tags并将其传播为 Kubernetes 标签标签是什么Tags标签是key-value 键值对一个应用可以添加一个或多个标签。它们最核心的价值在于传播Propagate当标签被传播后它们会被视为 Kubernetes 资源的labels。Kubernetes 原生支持利用这些 labels 查询对象、执行批量操作例如基于标签的合并计费 consolidated billing。你还可以通过 CLI 或其他 Kubernetes 工具用这些标签过滤/识别资源。也就是说你在 Devtron UI 上维护的标签可以一键「下沉」到该应用部署出的真实 Kubernetes 资源上成为跨工具、跨团队的资源标识维度。Manage tags是集中管理这些标签的入口页面支持创建、编辑、删除标签以及开启/关闭标签向 Kubernetes 资源的传播。操作步骤在Overview页面点击Edit进入标签管理然后点击 Add tag新增一个标签输入 key 与 value点击X删除某个标签点击标签左侧的传播符号将标签标记为「已传播」再次点击传播符号可取消传播标签将不再下沉到 Kubernetes 资源点击Save保存全部变更。保存后Overview页面上的Tags区域会立即反映最新结果。提示传播符号显示为深灰色时表示该标签已处于传播状态。源码视角标签如何被校验、存储与最终写入部署清单结合仓库源码可以还原「UI 打勾 → 数据库 → Kubernetes 资源 labels」的完整链路1. 校验写入前把关在UpdateApppkg/app/AppCrudOperationService.go中只有Propagatetrue的标签会被k8s.CheckIfValidLabel严格校验——因为只有它们会真实落到 Kubernetes 资源上必须符合 K8s label 语法约束键长度、字符集、前缀规范等。2. 存储数据库持久化标签以AppLabel模型落库Create方法pkg/app/AppCrudOperationService.go记录Key、Value、Propagate标记、关联的AppId以及创建/更新人信息。3. 传播部署时注入 manifest真正把标签「传播」到 Kubernetes 资源的时机发生在部署阶段GetAppLabelsForDeploymentpkg/app/AppCrudOperationService.go会从数据库取出该应用的全部标签序列化为部署标签 JSON而 pkg/deployment/manifest/ManifestCreationService.go 在生成部署 manifest 时调用该方法将标签注入实际资源清单。4. 扩展标签可选能力若在 Devtron 配置中开启PROPAGATE_EXTRA_LABELS环境变量默认false见 pkg/app/AppCrudOperationService.go部署时还会自动附加api.devtron.ai/appName、api.devtron.ai/envName、api.devtron.ai/project等内置标签若用户自定义标签与内置标签 key 冲突以用户自定义标签为准通过MergeChildMapToParentMap合并时用户标签优先。配置 PVC 优化构建时间重点为什么需要 PVC多平台构建的缓存难题PersistentVolumeClaimPVC持久卷声明是「存储请求」——它负责把一块PersistentVolumePV挂载进 Pod。Devtron 在 CI 构建场景中利用 PVC 来优化构建时间。关键场景是多目标平台multi-platform构建例如同时构建arm64与amd64镜像把 PVC 挂载进构建 Pod可以为构建缓存提供直接可用的存储空间从而显著缩短构建时间。更重要的是挂载 PVC 提供的是独立于节点的构建缓存不会影响常规构建——常规构建下镜像基于 CI 所运行 K8s 节点的架构与操作系统来构建。第一步创建 PVC 文件官方推荐的 PVC 定义示例如下例如文件名为cache-pvc.yaml你需要自定义其中的metadata.namePVC 名称与spec.storageClassName存储类名称apiVersion: v1 kind: PersistentVolumeClaim metadata: name: cache-pvc # 这里填写 PVC 的名称 spec: accessModes: - ReadWriteOnce storageClassName: # 这里填写存储类名称 resources: requests: storage: 30Gi要点说明accessModes: ReadWriteOnce该卷同一时刻只能被单个节点以读写方式挂载适合单 Pod 构建缓存场景storageClassName留空则使用集群默认存储类如需指定例如 SSD 高性能存储类在此填写存储类名称resources.requests.storage: 30Gi缓存容量可按实际构建产物规模调整30Gi 是文档示例值。然后通过 kubectl 将该 PVC 提交到目标命名空间{namespace}替换为你的实际命名空间kubectl apply -f cache-pvc.yaml -n {namespace}说明原文档中的示例命令使用了 Kubernetes 官方示例文件 URL实践时请将其替换为你本地创建的上方cache-pvc.yaml。创建完成后确认 PVC 状态为Bound已绑定即可进入第二步配置。第二步在 Devtron 中挂载 PVC进入应用的Overview页面点击页面右上角的Edit打开标签编辑入口PVC 挂载正是通过标签机制实现的按需添加以下两类标签之一。A应用级 PVC 挂载影响该应用所有构建管道配置项值keydevtron.ai/ci-pvc-allvaluePVC 的 metadata 名称如cache-pvc即你在 PVC 模板中定义的名字注意此挂载会影响该应用的全部构建管道。B管道级 PVC 挂载仅影响指定构建管道配置项值keydevtron.ai/ci-pvc-{pipelinename}valuePVC 的 metadata 名称如cache-pvc注意此挂载仅影响{pipelinename}指定的那一条构建管道。如何确定pipelinename进入App Configuration点击Workflow Editor构建管道Build pipeline上显示的管道名即为pipelinename。点击Save完成挂载。源码视角ci-pvc标签如何在构建时生效这两类标签并非「装饰性配置」它们在 CI 工作流引擎中有着精确的读取逻辑定义于 pkg/pipeline/types/Workflow.goconst ( PRE PRE POST POST CI_NODE_PVC_ALL_ENV devtron.ai/ci-pvc-all CI_NODE_PVC_PIPELINE_PREFIX devtron.ai/ci-pvc )真正决定 PVC 是否挂载的是getPVCForWorkflowRequest方法pkg/pipeline/types/Workflow.go其核心逻辑为仅对 CI 与 Job 类型的工作流生效——方法开头判断workflowRequestType必须是 CI 或 Job 管道CD部署管道当前不支持 PVC 挂载优先级管道级 应用级——先从AppLabels中查找devtron.ai/ci-pvc-{pipelinename}注意实际读取时会将管道名转为小写拼接若为空再回退查找devtron.ai/ci-pvc-all命中后的行为变更——只要 PVC 名称非空即置IsPvcMounted true同时强制关闭 Docker 构建缓存的外推push与拉取pullIgnoreDockerCachePush true、IgnoreDockerCachePull true。这一实现细节很关键它解释了 PVC 方案的本质构建缓存不再依赖外部缓存仓库的网络往返而是直接落在本地持久卷上因此多平台构建时各架构的缓存可以共存并复用达到缩短构建时间的目的。小结Devtron 的Overview页面远不止「信息展示」它既是管理应用元数据项目归属、标签的操作中枢也是接入构建优化的配置入口。核心要点回顾Change Project迁移应用归属项目权限随项目走需提前评估成员访问影响底层是teamId的原子事务更新Manage Tagskey-value 标签可传播为 Kubernetes 资源 labels支持细粒度过滤与批量操作传播链路为「校验K8s label 规范→ 落库 → 部署时注入 manifest」PVC 构建缓存通过devtron.ai/ci-pvc-all应用级或devtron.ai/ci-pvc-{pipelinename}管道级两类标签挂载持久卷为多架构构建提供本地缓存源码层面命中后会自动关闭 Docker 缓存 push/pull。如需深入了解标签与 PVC 的底层实现可继续阅读 pkg/app/AppCrudOperationService.go 与 pkg/pipeline/types/Workflow.go应用创建的完整流程可参考 docs/user-guide/creating-application 目录下的其他分篇文档。赞分享云原生DevOps运维【免费下载链接】devtronThe only Kubernetes dashboard you need项目地址https://gitcode.com/gh_mirrors/dev/devtron点击查看免费下载相关推荐electron-tabs完全指南快速构建现代化多标签页应用electron tabs完全指南快速构建现代化多标签页应用 electron tabs是一个专为Electron桌面应用设计的标签页组件库能够帮助开发者轻前端UI组件桌面应用Play Framework 构建系统指南基于 sbt 的构建概览Build OverviewPlay Framework 构建系统指南基于 sbt 的构建概览Build Overview 本篇技术指南围绕 Play Framework 官方文档《后端Web框架终极指南如何将小爱音箱改造成你的专属AI语音助手终极指南如何将小爱音箱改造成你的专属AI语音助手 想让家中的小爱音箱真正听懂你的需求从人工智障升级为智能学霸吗MiGPT项目为你提供了完美解决方案人工智能AI 应用语音智能家居交互助手创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

本地控机 AI 怎么装?OpenClaw 完整落地教程(TaoToken 统一 Key 接入版)

本地控机 AI 怎么装?OpenClaw 完整落地教程(TaoToken 统一 Key 接入版)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 17:36:49 阅读更多 →
three.cpp 实战:从 three.js 场景图到 C++ 与 OpenGL 的高性能渲染迁移指南

three.cpp 实战:从 three.js 场景图到 C++ 与 OpenGL 的高性能渲染迁移指南

简介:基于 three.js 的 C 移植版本 three-cpp 资源包,面向需要在 C11 环境中完成 3D 渲染工作、或希望研究图形引擎源码的开发者。项目由 jdduke 做了最初的 C 移植,目标是尽可能完整地重建 three.js 修订 65 之前的功能;当前各 3…

2026/10/14 14:42:18 阅读更多 →
three.js场景图移植C++:从架构到落地实践

three.js场景图移植C++:从架构到落地实践

简介:three-cpp是three.js在C语言下的维护移植版,继承自原three_cpp项目,目前所有3-x存储库都在进行重构,目标是在C11环境中完整实现three.js修订版65的核心功能。项目面向需要构建三维图形应用或研究3D引擎源码的开发者&#xff…

2026/10/15 11:16:38 阅读更多 →

最新新闻

ZeroTermux 内置命令手册精讲:zcat 命令——不真正解压也能查看 gzip 压缩包内容

ZeroTermux 内置命令手册精讲:zcat 命令——不真正解压也能查看 gzip 压缩包内容

移动开发开发工具 【免费下载链接】ZeroTermux 项目地址: https://gitcode.com/GitHub_Trending/ze/ZeroTermux 点击查看 免费下载 本篇围绕 ZeroTermux 内置 Linux 命令手册(app/src/main/assets/cmd/zcat.md)展开,系统讲解 zca…

2026/10/15 18:12:24 阅读更多 →
基于CAN总线的温度采集与控制系统设计:抗干扰与主动报警实践

基于CAN总线的温度采集与控制系统设计:抗干扰与主动报警实践

简介:基于CAN总线的温度采集与控制系统完整工程包,面向嵌入式、STM32及CAN总线通信学习者,解决环境温度实时采集与上位机监控的实践需求。该工程以STM32为控制核心,结合DS18B20温度传感器与CAN收发节点,并配套上位机串…

2026/10/15 18:12:24 阅读更多 →
DeepSpec 实战指南:投机解码草稿模型的数据准备、训练与评估全流程

DeepSpec 实战指南:投机解码草稿模型的数据准备、训练与评估全流程

人工智能大模型预训练模型优化模型评测 【免费下载链接】DeepSpec DeepSpec: a full-stack codebase for training and evaluating speculative decoding algorithms 项目地址: https://gitcode.com/gh_mirrors/de/DeepSpec 点击查看 免费下载 DeepSpec 是一个面向…

2026/10/15 18:12:24 阅读更多 →
PCRE 8.45 正则库实战:编译、API 调用与性能优化指南

PCRE 8.45 正则库实战:编译、API 调用与性能优化指南

简介:pcre-8.45.tar.gz 是 PCRE(Perl Compatible Regular Expressions)库 8.45 版的官方源代码压缩包,面向需要在 CentOS 等 Linux 服务器环境中自行编译部署正则表达式引擎的开发者与运维人员。PCRE 以 C 语言编写,支…

2026/10/15 18:12:24 阅读更多 →
南大通用GBase 8a数据库压缩算法新老版本对照

南大通用GBase 8a数据库压缩算法新老版本对照

南大通用GBase 8a数据库(gbase database)旧算法配置参数中,可以控制使用算法的种类,而具体到某一算法,但只能采用默认的压缩级别,缺乏灵活性,也限制了算法在不同场景下发挥出最大效能。同时现在…

2026/10/15 18:12:24 阅读更多 →
IPMItool源码解析:从接口抽象到BMC诊断命令扩展

IPMItool源码解析:从接口抽象到BMC诊断命令扩展

简介:IPMItool 源码包是一份面向服务器运维工程师、系统管理员及BMC嵌入式开发者的开源工具源码,用于通过IPMI协议对BMC进行远程监控、传感器数据读取与电源管理。资源共171个文件,压缩包仅752KB,以50个头文件和49个C源文件为核心…

2026/10/15 18:11:23 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →