- 云原生
- DevOps
- 运维
【免费下载链接】devtron
The only Kubernetes dashboard you need
本指南面向已经通过 Helm 安装了 Devtron(稳定版)的用户,讲解如何将现有安装无缝升级到 Beta 版本发布通道。文章以
docs/setup/upgrade/devtron-upgrade-to-beta.md为主体,结合仓库中 Helm Chart、Installer CRD 与 BOM 清单的源码实现,完整覆盖版本查询、升级命令、参数含义与注意事项。读完本文,你将掌握一套可直接复制执行的 Beta 升级方案,并理解其底层工作机制。
升级前:确认当前 Devtron 版本
在执行任何升级操作之前,建议先确认集群中正在运行的 Devtron 版本。Devtron 通过一个名为installer-devtron的自定义资源(Installer)来记录自身的版本信息,该资源由 Helm Chart 模板在安装时创建,定义于 charts/devtron/templates/devtron-installer.yaml,对应的 CRD 声明可见于 charts/devtron/crds/crd-devtron.yaml 与 manifests/crds/crd-devtron.yaml。
运行以下命令即可读取当前版本:
kubectl -n devtroncd get installers installer-devtron -o jsonpath='{.status.sync.data}' | grep "^LTAG=" | cut -d"=" -f2-这条命令的执行逻辑分为三层:
kubectl get installers installer-devtron:获取名为installer-devtron的 Installer 资源(API 组为installer.devtron.ai/v1alpha1,参考 manifests/install/devtron-installer.yaml);-o jsonpath='{.status.sync.data}':提取其状态字段中的同步数据;grep "^LTAG=" | cut -d"=" -f2-:过滤出以LTAG=开头的行并取出等号后面的值。
LTAG即 "Latest TAG",是 Devtron 记录自身发布标签(如v2.2.0)的字段,它在仓库的 manifests/installation-script 中可见:LTAG="v2.2.0";,与当前 Chart 的appVersion: 2.2.0(见 charts/devtron/Chart.yaml)保持一致。该安装脚本会被 Installer 控制器拉取执行,用于完成 Devtron 各组件镜像的部署与版本同步。
Beta 版本通道:与稳定版安装的本质差异
Devtron 的稳定版本通过官方 Helm 仓库https://helm.devtron.ai分发,可以直接使用helm repo add与helm install安装。而Beta 版本 Chart 不在官方 Helm 仓库中,因此必须直接从 Devtron 的源码仓库获取 Chart 目录(即本仓库的 charts/devtron),再基于本地目录执行安装或升级。这一点在 charts/devtron/README.md 的 "Install with Helm (Beta)" 一节中有明确说明。
Chart 的元信息可从 charts/devtron/Chart.yaml 确认:Chart 名为devtron-operator,版本0.23.3,appVersion为2.2.0,并声明了三个依赖:
| 依赖 | 版本 | 启用条件 |
|---|---|---|
| argo-cd | 7.7.15 | argo-cd.enabled |
| security | 0.x.x | security.enabled |
| redis | 2.4.0 | devtronEnterprise.athenaApi.enabled |
这些依赖需要通过helm dependency up拉取,这也是升级流程中必须执行该命令的原因。
升级到 Beta:完整操作步骤
在原文档给出的升级流程基础上,结合仓库实际内容,完整的升级命令如下:
# 1. 克隆 Devtron 源码仓库(获取 Beta Chart) $ git clone https://gitcode.com/gh_mirrors/dev/devtron.git $ cd devtron/charts/devtron # 2. 拉取 Chart 依赖(argo-cd、security、redis 等) $ helm dependency up # 3. 按需修改 values.yaml 中的配置 $ #modify values in values.yaml # 4. 使用 --reuse-values 保留既有配置,并叠加 BOM 文件执行升级 $ helm upgrade devtron . --reuse-values --namespace devtroncd \ -f devtron-bom.yaml步骤一:获取 Beta Chart
Beta Chart 直接以源码形式存放在仓库的charts/devtron目录下,因此需要先克隆仓库。进入目录后即可看到 Chart.yaml、values.yaml、devtron-bom.yaml 以及templates/与crds/等文件。
步骤二:同步 Helm 依赖
helm dependency up会读取Chart.yaml中的dependencies声明,从对应仓库拉取 argo-cd(https://argoproj.github.io/argo-helm)、security(https://helm.devtron.ai)与 redis 子 Chart。由于 Beta Chart 通常以源码而非打包形式分发,这一步是保证后续helm upgrade能正确渲染模板的前提。
步骤三:按需调整 values 配置
values.yaml是 Chart 的默认配置入口,升级前可按集群实际情况修改。仓库中的 charts/devtron/values.yaml 主要配置项包括:
global.containerRegistry:全局镜像仓库地址,默认quay.io/devtron;global.dbConfig:PostgreSQL 连接配置,默认PG_ADDR: postgresql-postgresql.devtroncd、PG_PORT: "5432"、PG_USER: postgres、PG_DATABASE: orchestrator;global.externalPostgres:若使用外部数据库,设置enabled: true并填写PG_PASSWORD与PG_ADDR;installer.release:Installer 对应的发布版本号,当前为v2.2.0;installer.source:安装脚本拉取来源,可选github或gitee;components.*:各微服务组件(dashboard、devtron、kubelink、kubewatch、gitsensor、lens、nats、migrator 等)的镜像与运行参数;configs.BLOB_STORAGE_PROVIDER:构建缓存与日志的存储提供商(AZURE|S3|MINIO|GCP);argo-cd.enabled、security.enabled、notifier.enabled、minio.enabled、monitoring.grafana.enabled等集成组件的开关。
注意:values.yaml中多个集成组件(如security、minio、monitoring、notifier)默认处于enabled: false状态,升级时这些开关状态会被--reuse-values继承,一般无需重复修改。
步骤四:执行 Helm 升级(关键参数解读)
helm upgrade devtron . --reuse-values --namespace devtroncd -f devtron-bom.yaml各参数的作用如下:
| 参数 | 含义 |
|---|---|
devtron | Helm Release 名称,与初次安装时保持一致 |
. | Chart 路径,指向当前目录(charts/devtron) |
--reuse-values | 复用上一次安装/升级时设定的 values,避免覆盖用户已有的自定义配置 |
--namespace devtroncd | 目标命名空间,Devtron 组件默认部署在devtroncd |
-f devtron-bom.yaml | 叠加 BOM(Bill of Materials)清单文件,为本次升级指定各组件的镜像标签 |
devtron-bom.yaml是 Beta 升级的关键文件。它相当于一张"物料清单",固定了本次 Beta 构建中所有组件的镜像版本。仓库内的 charts/devtron/devtron-bom.yaml 中可以看到:
installer: release: "v2.2.0" image: "inception" tag: "473deaa4-185-21582" components: dashboard: image: "dashboard:c7b89667-690-39290" devtron: image: "hyperion:0874dcaf-280-39287" cicdImage: "devtron:0874dcaf-434-39286" ciRunner: image: "ci-runner:3b3d6d0e-138-39293" kubelink: image: "kubelink:09867a9c-564-39289" gitsensor: image: "git-sensor:3b3d6d0e-200-39291" nats: image: nats:2.9.3-alpine migrator: image: "migrator:v4.16.2" argo-cd: global: image: tag: "v2.13.3" workflowController: image: "workflow-controller:v3.4.3"该文件覆盖了从 dashboard、hyperion(orchestrator)、ci-runner、kubelink、kubewatch、git-sensor、lens、nats、migrator 到 Argo CD、Argo Workflow、security 扫描器、notifier、minio、grafana 等全部组件的镜像标签,确保升级后整个平台处于同一套 Beta 构建版本,避免组件间版本错配。
升级后:验证版本与状态
升级完成后,可以再次执行第一节中的版本查询命令,确认LTAG已更新为 Beta 构建对应的标签:
kubectl -n devtroncd get installers installer-devtron -o jsonpath='{.status.sync.data}' | grep "^LTAG=" | cut -d"=" -f2-从模板 charts/devtron/templates/devtron-installer.yaml 可以看到,Installer 资源还带有reSync: true标记,这表示 Installer 控制器会主动拉取安装脚本并同步组件状态;模板中的url指向https://raw.githubusercontent.com/{{ $.Values.installer.repo }}/{{ $.Values.installer.release }}/manifests/installation-script,即版本标签对应的安装脚本,这解释了为何升级后各组件镜像会被统一更新到 BOM 指定的标签。
另外,charts/devtron/templates/install.yaml 中定义了installerServiceAccount 及其绑定到cluster-admin的 ClusterRoleBinding,升级时 Helm 会以此权限在集群内创建或更新 Installer 资源,整个同步过程由 Devtron 的 Installer 控制器完成。
重要说明:Beta 升级与 Stack Manager UI 的限制
原文档明确指出以下限制,升级前务必知悉:
目前 Stack Manager UI 中没有提供升级到 Beta 版本的入口。在 Stack Manager 界面中,你始终可以看到"升级到最新稳定版"的可用提示,使用该入口会将 Devtron 移动到最新的稳定版本。
也就是说:
- 想要升级到 Beta,只能通过本文的 Helm 方式执行;
- Stack Manager UI(对应路径为Stack Manager > About Devtron,详见 docs/setup/upgrade/upgrade-devtron-ui.md)只支持升级到最新稳定版,二者是互斥的两条升级路径;
- 如果后续希望回到稳定版,同样需要借助 Helm 并指定稳定版对应的 Chart 与 BOM 重新执行升级。
常见问题与补充建议
helm dependency up拉取失败怎么办?检查网络能否访问argoproj.github.io/argo-helm、helm.devtron.ai与groundhog2k.github.io/helm-charts(见 charts/devtron/Chart.yaml 中声明的依赖仓库);内网或离线环境可考虑预先将依赖打包后通过helm dependency build使用本地charts/目录。升级过程中如何保留自定义配置?务必保留
--reuse-values参数;若需要修改配置,应在升级命令中追加--set key=value或在-f后叠加自定义 values 文件,而不是直接改掉values.yaml后不带--reuse-values执行,否则可能丢失先前设定。升级后如何确认各组件镜像已更新?可以通过
kubectl -n devtroncd get pods检查各组件 Pod 的镜像标签,并与 charts/devtron/devtron-bom.yaml 中声明的标签逐一比对。Beta 版本的含义:Beta 版本是 Devtron 在正式稳定版发布前数日推出的预发布构建,用于让用户提前体验与验证新功能。使用 Beta 通道意味着会接收到尚未完全稳定的特性,生产环境请评估后再决定是否采用。
- 云原生
- DevOps
- 运维
【免费下载链接】devtron
The only Kubernetes dashboard you need
相关推荐
GPUStack 基于 Docker 的版本升级指南:服务端与 Worker 的完整操作流程
GPUStack 基于 Docker 的版本升级指南:服务端与 Worker 的完整操作流程 本篇指南围绕 GPUStack 的 Docker 部署形态,系统讲
后端人工智能模型推理服务集群管理可观测性pytype Python 版本升级指南:从字节码、操作码到发布的完整改造流程
pytype Python 版本升级指南:从字节码、操作码到发布的完整改造流程 本文是 pytype 开发者文档 docs/developers/python_
静态分析开发工具代码质量引流宝版本升级指南:平滑迁移到最新版本的完整操作流程
引流宝版本升级指南:平滑迁移到最新版本的完整操作流程 引流宝作为一款致力于为个人和团队提供基于微信私域流量的推广、引流效率工具,完全开源免费,可商用且支持任意二
后端前端
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考