ZStack Logo

ZStack AIOS

容器管理升级

管理节点、AI 模型平台和容器管理的升级准备与执行步骤。

ZStack AIOS部署容器管理模块,需在管理节点升级完成后,单独升级本模块,以使用最新的容器功能。
说明:
  • 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,请单独联系官方技术支持获取升级帮助。
  1. 检查容器管理节点状态
  2. 升级容器管理到3.5.0版本
  3. 升级容器管理到3.6.0版本
  4. 升级容器管理到3.7.0版本
  5. 升级容器管理到3.8.0版本
  6. 更新容器管理集群
  1. 检查容器管理节点状态。
    1. 检查容器管理管理集群、业务集群,确保所有节点均处于运行中状态
    2. 检查业务集群GPU节点,确保所有GPU节点均安装GPU设备。如未安装GPU设备且该节点后续不再作为GPU节点使用,请登录容器管理集群点3 (Zaku-3) 执行以下命令:
      [root@localhost ~]# kubectl label node ${NodeName} gpu-
      说明: 查看Zaku-3节点,可登录ZStack AIOS UI界面,点击运营管理 > 应用市场 > 默认应用 > 已安装。在已安装界面,找到ZStack Zaku容器管理,点击右上角的... > 查看云主机,查看名为Zaku-3的云主机即可。如图1所示:


      图1 查看Zaku-3云主机
  2. 升级容器管理到3.5.0版本。
    说明: 如当前容器管理已为3.5.0或之后版本,可跳过本步骤。
    1. 根据准备工作,准备容器管理3.5.0升级包。
    2. 登录Zaku-3云主机,将容器管理3.5.0升级包存放在/opt/zstack-edge目录。
    3. 在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
    4. 在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. 升级容器管理到3.6.0版本。
    说明: 如当前容器管理已为3.6.0或之后版本,可跳过本步骤。
    1. 根据准备工作,准备容器管理3.6.0升级包。
    2. 登录Zaku-3云主机,将容器管理3.6.0升级包存放在/opt/zstack-edge目录。
    3. 在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
    4. 检查业务集群是否使用华为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
    5. 停止华为NPU相关工作负载
      说明: 如业务集群未使用华为NPU或chipName模板中的配置字段与表1匹配,可跳过本步骤。
      ZStack AIOS主菜单,点击容器管理 > 容器编排 > 应用管理 > 工作负载。依次点击华为NPU相关的工作负载后的操作 > 弹性伸缩,将工作负载的弹性伸缩副本数修改为0。
      说明: 请记录好当前副本数,以便升级完成后,将副本数恢复为原来的数值。
    6. 升级业务集群到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
    7. 修改chipName模板字段
      说明: 如业务集群未使用华为NPU或chipName模板中的配置字段与表1匹配,可跳过本步骤。
      登录容器管理VIP,执行以下命令,将华为NPU相关工作负载配置中的resourceName、resourceMemoryName与表1对应:
      [root@localhost ~]# kubectl -n kube-system edit configmap hami-scheduler-device
    8. 启动华为NPU相关工作负载
      说明: 如业务集群未使用华为NPU或chipName模板中的配置字段与表1匹配,可跳过本步骤。
      登录ZStack AIOS UI界面,点击容器管理 > 容器编排 > 应用管理 > 工作负载。依次点击华为NPU相关工作负载后的操作 > 弹性伸缩,将工作负载的弹性伸缩副本数依次修改为更新前的数值。
  4. 升级容器管理到3.7.0版本。
    1. 根据准备工作,准备容器管理3.7.0升级包。
    2. 登录Zaku-3云主机,将容器管理3.7.0升级包存放在/opt/zstack-edge目录。
    3. 在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
    4. 检查业务集群是否使用Nvidia GPU、华为NPU或Hygon DCU设备。
    5. 停止Nvidia GPU、华为NPU、Hygon DCU相关工作负载。
      说明: 如业务集群未使用以上GPU设备,可跳过本步骤。
      登录ZStack AIOS UI界面,点击容器管理 > 容器编排 > 应用管理 > 工作负载。依次点击相关工作负载后的操作 > 弹性伸缩,将工作负载副本数修改为0。
      说明: 请记录好当前副本数,以便升级完成后恢复。
    6. 升级业务集群到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
    7. 启动Nvidia GPU、华为NPU或海光DCU设备相关工作负载。
      说明: 如业务集群未使用Nvidia GPU、华为NPU或海光DCU设备,可跳过本步骤。
      登录ZStack AIOS UI界面,点击容器管理 > 容器编排 > 应用管理 > 工作负载。依次点击相关工作负载后的操作 > 弹性伸缩,将工作负载的弹性伸缩副本数依次修改为更新前的数值。
  5. 升级容器管理到3.8.0版本。
    说明: 如当前容器管理已为3.8.0或之后版本,可跳过本步骤。
    1. 根据准备工作,准备容器管理3.8.0升级包。
    2. 登录Zaku-3云主机,将容器管理3.8.0升级包存放在/opt/zstack-edge目录。
    3. 在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
    4. 在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
    5. 检查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配置
  6. 更新容器管理集群。
    登录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}
至此,容器管理升级已完成。