ONES Helm 升级说明
本文介绍如何升级通过 Helm 安装的 ONES 集群。仅适用于集群多副本、外置 MySQL 和 Namespace Scope 部署方式。
升级前,必须确认当前版本到目标版本的升级路径受 ONES 支持。非 Helm 部署的环境不要 使用本文操作。
准备升级参数
先在终端执行以下命令,根据实际环境准备升级参数。本文后续命令均复用这些参数,请在同一 终端会话中执行:
CURRENT_ONES_VERSION="v7.25.0"
TARGET_ONES_VERSION="v7.26.0"
OS_ARCH="amd64"
NAMESPACE="ones"
RELEASE_NAME="ones"
REGISTRY="registry.example.com"
REGISTRY_USER="<私有镜像仓用户名>"
REGISTRY_PASSWORD="<私有镜像仓密码或 Token>"
REGISTRY_BASE_PATH="/ones/"
mkdir -p ~/ones
cd ~/ones
OS_ARCH支持amd64和arm64。REGISTRY_BASE_PATH必须与当前环境ones-secret-config中的dockerRegistryBasepathForOnesImage保持一致。- 私有镜像仓不需要认证时,将
REGISTRY_USER和REGISTRY_PASSWORD设置为空字符串。 - 私有镜像仓启用 TLS 时,再执行
export REGISTRY_INSECURE=false。 - 当前环境使用的
values.yaml应保存在~/ones/values.yaml。部分操作会进入生成的制品目录, 完成后应返回~/ones再继续。
升级流程
- 制作差量离线包并将新镜像导入私有镜像仓。
- 检查是否满足升级放行标准。
- 准备目标 ONES 版本。
- 更新 CRD、RBAC,创建新增 PVC,并准备数据库升级 SQL。
- 执行 Helm 升级。
- 观察 Bootstrap 和数据库迁移。
- 验证升级结果。
第一步:导入目标版本差量镜像
默认使用 ONES 提供的工具包导入镜像。如需改用 Docker 等方式,请参见附录中的 其他差量镜像导入方式。
1.1 制作差量离线包
目标环境无法同时访问 ONES 镜像仓和客户私有镜像仓时,可以先在联网主机制作差量离线包, 再将离线包复制到目标环境导入。
在联网主机制作离线包。
curl -fL \
"https://packages.ones.cn/release/${TARGET_ONES_VERSION}/kubernetes/images/upgrade-ones-images-${OS_ARCH}.sh" | \
SRC_ONES_VERSION="${CURRENT_ONES_VERSION}" \
MODE="offline-package" \
bash -
脚本会在当前目录生成:
${CURRENT_ONES_VERSION}-to-${TARGET_ONES_VERSION}-new-images-linux-${OS_ARCH}.tar