i说明:
- ZStack AIOS 5.5.16及之后版本必须升级容器管理至3.8.0版本,否则将无法正常访问容器管理页面。
- 容器管理必须逐版本升级,不可跨版本升级。例如,当前容器管理版本为3.4.0,请遵循以下升级路径升级到3.8.0:3.4.0 > 3.5.0 > 3.6.0 > 3.7.0 > 3.8.0。
- 请根据实际情况,按照以下步骤进行逐版本升级。
- 如容器管理版本已为3.8.0,可跳过本流程。
- 若当前容器管理为KylinSP3版本并使用Hygon K100-AI,请单独联系官方技术支持获取升级帮助。
- 检查容器管理节点状态
- 升级容器管理到3.5.0版本
- 升级容器管理到3.6.0版本
- 升级容器管理到3.7.0版本
- 升级容器管理到3.8.0版本
- 更新容器管理集群
-
检查容器管理节点状态。
- 检查容器管理管理集群、业务集群,确保所有节点均处于运行中状态
-
检查业务集群GPU节点,确保所有GPU节点均安装GPU设备。如未安装GPU设备且该节点后续不再作为GPU节点使用,请登录容器管理集群点3
(Zaku-3) 执行以下命令:
[root@localhost ~]# kubectl label node ${NodeName} gpu-i说明: 查看Zaku-3节点,可登录ZStack AIOS UI界面,点击运营管理 > 应用市场 > 默认应用 > 已安装。在已安装界面,找到ZStack Zaku容器管理,点击右上角的... > 查看云主机,查看名为Zaku-3的云主机即可。如图1所示:
图1 查看Zaku-3云主机
-
升级容器管理到3.5.0版本。
i说明: 如当前容器管理已为3.5.0或之后版本,可跳过本步骤。
- 根据准备工作,准备容器管理3.5.0升级包。
- 登录Zaku-3云主机,将容器管理3.5.0升级包存放在/opt/zstack-edge目录。
-
在Zaku-3云主机执行以下命令,升级管理集群到3.5.0:
解压容器管理3.5.0升级包 [root@localhost ~]# cd /opt/zstack-edge [root@localhost ~]# tar -xzvf zaku-1.24-3.5.0-all-in-one-upgrade.tgz 拷贝hosts.yaml配置文件,并确认当前环境机器配置信息是否正确 (命令一:如当前容器管理直接从3.4.0升级到3.5.0,执行本命令进行拷贝) [root@localhost ~]# cp /opt/zstack-edge/kubespray/inventory/sample/hosts.yaml /opt/zstack-edge/upgrade-zaku-1.24-3.5.0/inventory/sample/hosts.yaml (命令二:如当前容器管理先从3.3.0或之前版本升级到3.4.0,再升级到3.5.0,执行本命令进行拷贝) [root@localhost ~]# cp /opt/zstack-edge/upgrade-zaku-1.24-3.4.0/inventory/sample/hosts.yaml /opt/zstack-edge/upgrade-zaku-1.24-3.5.0/inventory/sample/hosts.yaml 执行升级脚本 [root@localhost ~]# cd /opt/zstack-edge/upgrade-zaku-1.24-3.5.0 [root@localhost ~]# ansible-playbook -i inventory/sample/hosts.yaml zaku-management-upgrade.yml 确认管理集群Pod状态,如ze-db-migration Pod状态为Completed,其他Pod状态为Running,表示管理集群升级完成 [root@localhost ~]# kubectl get pod -A -
在Zaku-3云主机执行以下命令,升级业务集群到3.5.0:
执行升级脚本 [root@localhost ~]# cd /opt/zstack-edge/upgrade-zaku-1.24-3.5.0 [root@localhost ~]# bash zaku-upgrade/upgrade.sh //按提示输入需升级的业务集群名称,如有多个业务集群,需依次升级 确认业务集群是否为已升级状态 [root@localhost ~]# bash zaku-upgrade/upgrade.sh
-
升级容器管理到3.6.0版本。
i说明: 如当前容器管理已为3.6.0或之后版本,可跳过本步骤。
- 根据准备工作,准备容器管理3.6.0升级包。
- 登录Zaku-3云主机,将容器管理3.6.0升级包存放在/opt/zstack-edge目录。
-
在Zaku-3云主机执行以下命令,升级管理集群到3.6.0:
解压容器管理3.6.0升级包 [root@localhost ~]# cd /opt/zstack-edge [root@localhost ~]# tar -xzvf zaku-1.24-3.6.0-all-in-one-upgrade.tgz 拷贝hosts.yaml配置文件,并确认当前环境机器配置信息是否正确 (命令一:如当前容器管理直接从3.5.0升级到3.6.0,执行本命令进行拷贝) [root@localhost ~]# cp /opt/zstack-edge/kubespray/inventory/sample/hosts.yaml /opt/zstack-edge/upgrade-zaku-1.24-3.6.0/inventory/sample/hosts.yaml (命令二:如当前容器管理先从3.4.0或之前版本升级到3.5.0,再升级到3.6.0,执行本命令进行拷贝) [root@localhost ~]# cp /opt/zstack-edge/upgrade-zaku-1.24-3.5.0/inventory/sample/hosts.yaml /opt/zstack-edge/upgrade-zaku-1.24-3.6.0/inventory/sample/hosts.yaml 执行升级脚本 [root@localhost ~]# cd /opt/zstack-edge/upgrade-zaku-1.24-3.6.0 [root@localhost ~]# ansible-playbook -i inventory/sample/hosts.yaml zaku-management-upgrade.yml 确认管理集群Pod状态,如ze-db-migration Pod状态为Completed,其他Pod状态为Running,表示管理集群升级完成 [root@localhost ~]# kubectl get pod -A -
检查业务集群是否使用华为NPU设备
- 检查业务集群是否使用华为NPU设备,如未使用可跳过本步骤。
- 如使用华为NPU设备,登录容器管理VIP,执行以下命令,检查chipName模板中的配置字段是否与表1匹配:
[root@localhost ~]# kubectl -n kube-system edit configmap hami-scheduler-device
表1 chipName模板字段表 chipName commonWord resourceName resourceMemoryName 910A Ascend910A huawei.com/Ascend910A huawei.com/Ascend910A-memory 910B2 Ascend910B2 huawei.com/Ascend910B2 huawei.com/Ascend910B2-memory 910B3 Ascend910B3 huawei.com/Ascend910B3 huawei.com/Ascend910B3-memory 910B4 Ascend910B4 huawei.com/Ascend910B4 huawei.com/Ascend910B4-memory 910B4-1 Ascend910B4-1 huawei.com/Ascend910B4-1 huawei.com/Ascend910B4-1-memory 910ProB Ascend910ProB huawei.com/Ascend910ProB huawei.com/Ascend910ProB-memory 310P3 Ascend310P huawei.com/Ascend310P huawei.com/Ascend310P-memory -
停止华为NPU相关工作负载
在ZStack AIOS主菜单,点击容器管理 > 容器编排 > 应用管理 > 工作负载。依次点击华为NPU相关的工作负载后的操作 > 弹性伸缩,将工作负载的弹性伸缩副本数修改为0。i说明: 请记录好当前副本数,以便升级完成后,将副本数恢复为原来的数值。
-
升级业务集群到3.6.0
在Zaku-3云主机执行以下命令,升级业务集群到3.6.0
执行升级脚本 [root@localhost ~]# cd /opt/zstack-edge/upgrade-zaku-1.24-3.6.0 [root@localhost ~]# bash zaku-upgrade/upgrade.sh //按提示输入需升级的业务集群名称,如有多个业务集群,需依次升级 确认业务集群是否为已升级状态 [root@localhost ~]# bash zaku-upgrade/upgrade.sh -
修改chipName模板字段
登录容器管理VIP,执行以下命令,将华为NPU相关工作负载配置中的resourceName、resourceMemoryName与表1对应:
[root@localhost ~]# kubectl -n kube-system edit configmap hami-scheduler-device -
启动华为NPU相关工作负载
登录ZStack AIOS UI界面,点击容器管理 > 容器编排 > 应用管理 > 工作负载。依次点击华为NPU相关工作负载后的操作 > 弹性伸缩,将工作负载的弹性伸缩副本数依次修改为更新前的数值。
-
升级容器管理到3.7.0版本。
- 根据准备工作,准备容器管理3.7.0升级包。
- 登录Zaku-3云主机,将容器管理3.7.0升级包存放在/opt/zstack-edge目录。
-
在Zaku-3云主机执行以下命令,升级管理集群到3.7.0:
解压容器管理3.7.0升级包 [root@localhost ~]# cd /opt/zstack-edge [root@localhost ~]# tar -xzvf zaku-1.24-3.7.0-all-in-one-upgrade.tgz 拷贝hosts.yaml配置文件,并确认当前环境机器配置信息是否正确 (命令一:如当前容器管理直接从3.6.0升级到3.7.0,执行本命令进行拷贝) [root@localhost ~]# cp /opt/zstack-edge/kubespray/inventory/sample/hosts.yaml /opt/zstack-edge/upgrade-zaku-1.24-3.7.0/inventory/sample/hosts.yaml (命令二:如当前容器管理先从3.5.0或之前版本升级到3.6.0,再升级到3.7.0,执行本命令进行拷贝) [root@localhost ~]# cp /opt/zstack-edge/upgrade-zaku-1.24-3.6.0/inventory/sample/hosts.yaml /opt/zstack-edge/upgrade-zaku-1.24-3.7.0/inventory/sample/hosts.yaml 执行升级脚本 [root@localhost ~]# cd /opt/zstack-edge/upgrade-zaku-1.24-3.7.0 [root@localhost ~]# ansible-playbook -i inventory/sample/hosts.yaml zaku-management-upgrade.yml 确认管理集群Pod状态,如ze-db-migration Pod状态为Completed,其他Pod状态为Running,表示管理集群升级完成 [root@localhost ~]# kubectl get pod -A - 检查业务集群是否使用Nvidia GPU、华为NPU或Hygon DCU设备。
-
停止Nvidia GPU、华为NPU、Hygon DCU相关工作负载。
i说明: 如业务集群未使用以上GPU设备,可跳过本步骤。登录ZStack AIOS UI界面,点击容器管理 > 容器编排 > 应用管理 > 工作负载。依次点击相关工作负载后的操作 > 弹性伸缩,将工作负载副本数修改为0。i说明: 请记录好当前副本数,以便升级完成后恢复。
-
升级业务集群到3.7.0。
在Zaku-3云主机执行以下命令,升级业务集群到3.7.0
执行升级脚本 [root@localhost ~]# cd /opt/zstack-edge/upgrade-zaku-1.24-3.7.0 [root@localhost ~]# bash zaku-upgrade/upgrade.sh //按提示输入需升级的业务集群名称,如有多个业务集群,需依次升级 确认业务集群是否为已升级状态 [root@localhost ~]# bash zaku-upgrade/upgrade.sh -
启动Nvidia GPU、华为NPU或海光DCU设备相关工作负载。
i说明: 如业务集群未使用Nvidia GPU、华为NPU或海光DCU设备,可跳过本步骤。登录ZStack AIOS UI界面,点击容器管理 > 容器编排 > 应用管理 > 工作负载。依次点击相关工作负载后的操作 > 弹性伸缩,将工作负载的弹性伸缩副本数依次修改为更新前的数值。
-
升级容器管理到3.8.0版本。
i说明: 如当前容器管理已为3.8.0或之后版本,可跳过本步骤。
- 根据准备工作,准备容器管理3.8.0升级包。
- 登录Zaku-3云主机,将容器管理3.8.0升级包存放在/opt/zstack-edge目录。
-
在Zaku-3云主机执行以下命令,升级管理集群到3.8.0:
解压容器管理3.8.0升级包 [root@localhost ~]# cd /opt/zstack-edge [root@localhost ~]# tar -xzvf zaku-1.24-3.8.0-all-in-one-upgrade.tgz 拷贝hosts.yaml配置文件,并确认当前环境机器配置信息是否正确 (命令一:如当前容器管理直接从3.7.0升级到3.8.0,执行本命令进行拷贝) [root@localhost ~]# cp /opt/zstack-edge/kubespray/inventory/sample/hosts.yaml /opt/zstack-edge/upgrade-zaku-1.24-3.8.0/inventory/sample/hosts.yaml (命令二:如当前容器管理先从3.6.0或之前版本升级到3.7.0,再升级到3.8.0,执行本命令进行拷贝) [root@localhost ~]# cp /opt/zstack-edge/upgrade-zaku-1.24-3.7.0/inventory/sample/hosts.yaml /opt/zstack-edge/upgrade-zaku-1.24-3.8.0/inventory/sample/hosts.yaml 执行升级脚本 [root@localhost ~]# cd /opt/zstack-edge/upgrade-zaku-1.24-3.8.0 [root@localhost ~]# ansible-playbook -i inventory/sample/hosts.yaml zaku-management-upgrade.yml 确认管理集群Pod状态,如ze-db-migration Pod状态为Completed,其他Pod状态为Running,表示管理集群升级完成 [root@localhost ~]# kubectl get pod -A -
在Zaku-3云主机执行以下命令,升级业务集群到3.8.0:
执行升级脚本 [root@localhost ~]# cd /opt/zstack-edge/upgrade-zaku-1.24-3.8.0 [root@localhost ~]# bash zaku-upgrade/upgrade.sh //按提示输入需升级的业务集群名称,如有多个业务集群,需依次升级 确认业务集群是否为已升级状态 [root@localhost ~]# bash zaku-upgrade/upgrade.sh -
检查ZStack AIOS Nginx Proxy配置。
升级完成后,登录ZStack AIOS管理节点,检查zaku.server.nginx.conf是否包含
/zaku-core-shell/mf-manifest.json的location配置,如缺失请按以下示例补充。双管理节点环境下,请分别登录两个管理节点检查:[root@localhost ~]# vi /usr/local/zstack/zstack-ui/configs/zaku.server.nginx.conf //在/zaku-uilocation配置之后补充以下内容 =================================================== location = /zaku-core-shell/mf-manifest.json { rewrite ^/zaku-core-shell/(.*) /ze/$1 break; expires -1; add_header Cache-Control "no-cache, no-store, must-revalidate"; add_header Pragma "no-cache"; proxy_pass http://${ZakuVip}; //${ZakuVip}需替换为容器管理VIP地址 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } =================================================== [root@localhost ~]# /usr/sbin/nginx -t -c /usr/local/zstack/zstack-ui/configs/nginx.conf -p /usr/local/zstack/zstack-ui //测试配置是否正确 [root@localhost ~]# /usr/sbin/nginx -s reload -c /usr/local/zstack/zstack-ui/configs/nginx.conf -p /usr/local/zstack/zstack-ui //重新加载Nginx配置
-
更新容器管理集群。
登录ZStack AIOS管理节点,执行以下命令,更新容器管理业务集群,清除脏数据:
登录CLI命令行 [root@localhost ~]# zstack-cli //进入CLI命令行 - >>> LogInByAccount accountName=admin password=${Password} //使用Admin账号密码登录 admin >>> QueryContainerManagementEndpoint //查询容器管理业务集群管理节点UUID admin >>> QueryZone //查询区域UUID admin >>> DeleteContainerResourceFromEndpoint uuid=${ContainerManagementEndpointUuid} admin >>> SyncContainerManagementEndpoint uuid="${ContainerManagementEndpointUuid}" zoneUuid=${ZoneUuid}