ZStack Logo

ZStack AIOS

容器管理升级 (5.1.20或5.3.0)

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

ZStack AIOS 5.1.20、5.3.0升级到5.3.22,请参考本流程进行容器管理升级。
  1. 更新ZStack AIOS Nginx Proxy配置和开放平台配置
  2. 检查容器管理节点状态
  3. 停止工作负载
  4. 升级容器管理管理集群到3.2.0版本
  5. 升级容器管理业务集群到3.2.0版本
  6. 升级容器管理管理集群到3.3.0版本 (最新版)
  7. 升级容器管理业务集群到3.3.0版本 (最新版)
  8. 同步容器管理业务集群
  9. 启动工作负载
  1. 更新ZStack AIOS Nginx Proxy和开放平台配置。
    1. 更新Nginx Proxy配置。
      登录ZStack AIOS管理节点,执行以下命令,更新Nginx Proxy配置。双管理节点环境下,请分别登录两个管理节点执行:
      清除旧版本中的容器管理Nginx Proxy配置
      [root@localhost ~]# rm -rf /usr/local/zstack/zstack-ui/configs/zaku.http.nginx.conf
      
      写入新容器管理Nginx Proxy配置
      [root@localhost ~]# vi /usr/local/zstack/zstack-ui/configs/zaku.server.nginx.conf    //修改zaku.server.nginx.conf配置文件,按以下示例写入:
      ==================================================================
      location /zaku-ui {
              rewrite ^/zaku-ui/(.*) /ze/$1 break;
              proxy_pass http://${ZakuVip};                              //${ZakuVip}需替换为容器管理VIP地址,如图1所示
              proxy_set_header Host $host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          }
      
          location = /ze/login {
              if ($request_method = GET) {
                  return 301 /login?_from=zaku;
              }
      
              proxy_pass http://${ZakuVip};                          //${ZakuVip}需替换为容器管理VIP地址,如图1所示
              proxy_set_header Host $host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          }
      
          location ~ ^/ze(.*)$ {
              proxy_pass http://${ZakuVip};                          //${ZakuVip}需替换为容器管理VIP地址,如图1所示
              proxy_set_header Host $host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header X-Forwarded-Proto $scheme;
              proxy_set_header Upgrade $http_upgrade;
          }
      ==================================================================
      
      [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配置


      图1 容器管理VIP
    2. 更新开放平台配置
      通过以下URL,登录ZStack AIOS开放平台配置界面,删除名为AI云原生容器服务的菜单:
      • 单管理节点开放平台URL:http://management_node_ip:5000/settings/plugin/menu
      • 双管理节点开放平台URL: http://management_node_vip:5000/settings/plugin/menu
  2. 检查容器管理节点状态
    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的云主机即可。如图2所示:


      图2 查看Zaku-3云主机
  3. 停止工作负载。
    登录ZStack AIOS UI界面,点击容器管理 > 容器编排 > 应用管理 > 工作负载。依次点击每个工作负载后的操作 > 弹性伸缩,将所有工作负载的弹性伸缩副本数修改为0。
    说明: 请记录好当前副本数,以便容器管理升级完成后,将副本数恢复为原来的数值。
    图3所示:




    图3 修改工作负载弹性伸缩副本数为0
  4. 升级容器管理管理集群到3.2.0
    1. 根据准备工作,准备容器管理 (ZStack Zaku) 3.2升级包。
    2. 登录Zaku-3云主机,将容器管理 (ZStack Zaku) 3.2升级包存放在/opt/zstack-edge目录。
    3. 在Zaku-3云主机执行以下命令,将管理集群升级到3.2.0:
      解压容器管理 (ZStack Zaku) 3.2升级包
      [root@localhost ~]#  cd /opt/zstack-edge
      [root@localhost ~]#  tar -xzvf zaku-1.24-3.2.0-all-in-one-upgrade.tgz
      
      拷贝hosts.yaml配置文件,并确认当前环境机器配置信息是否正确
      [root@localhost ~]# cp /opt/zstack-edge/kubespray/inventory/sample/hosts.yaml /opt/zstack-edge/upgrade-zaku-1.24-3.2.0/inventory/sample/hosts.yaml
      
      执行升级脚本
      [root@localhost ~]# cd /opt/zstack-edge/upgrade-zaku-1.24-3.2.0
      [root@localhost ~]# ansible-playbook -i inventory/sample/hosts.yaml zaku-management-upgrade.yml
    4. 确认管理集群Pod状态
      在Zaku-3云主机执行以下命令,查看管理集群Pod状态,如ze-db-migration Pod状态为Completed,其他Pod状态为Running,表示管理集群升级完成:
      [root@localhost ~]# kubectl get pod -A
  5. 升级容器管理业务集群到3.2.0
    在Zaku-3云主机执行以下命令,将业务集群升级到3.2.0:
    [root@localhost ~]# cd /opt/zstack-edge/upgrade-zaku-1.24-3.2.0
    [root@localhost ~]# bash zaku-upgrade/upgrade.sh    //按提示输入需升级的业务集群名称,如有多个业务集群,需依次升级
    [root@localhost ~]# bash zaku-upgrade/upgrade.sh    //确认业务集群是否为已升级状态
  6. 升级容器管理管理集群到3.3.0 (最新版)
    1. 根据准备工作,准备容器管理 (ZStack Zaku) 3.3升级包。
    2. 登录Zaku-3云主机,将容器管理 (ZStack Zaku) 3.3升级包存放在/opt/zstack-edge目录。
    3. 在Zaku-3云主机执行以下命令,将管理集群升级到3.3.0:
      解压容器管理 (ZStack Zaku) 3.3升级包
      [root@localhost ~]#  cd /opt/zstack-edge
      [root@localhost ~]#  tar -xzvf zaku-1.24-3.3.0-all-in-one-upgrade.tgz
      
      拷贝hosts.yaml配置文件,并确认当前环境机器配置信息是否正确
      [root@localhost ~]# cp /opt/zstack-edge/upgrade-zaku-1.24-3.2.0/inventory/sample/hosts.yaml /opt/zstack-edge/upgrade-zaku-1.24-3.3.0/inventory/sample/hosts.yaml
      
      修改host.yaml配置文件
      [root@localhost ~]# vi /opt/zstack-edge/upgrade-zaku-1.24-3.3.0/inventory/sample/hosts.yaml
      ======================================================================
      # 移除【ZStack云平台Nginx中的Zaku代理转发端口】配置参数:zstack_cloud_ui_zaku_port
      # 调整【keepalived】配置参数:keepalived_config,将管理集群节点的网卡名称分开配置,例如:
      
      keepalived_config:
        - vip: ${ZakuVip}
          router_id: 76
          network_card:
            k8s-1: ens3
            k8s-2: ens3
            k8s-3: ens3
      ========================================================================
      
      执行升级脚本
      [root@localhost ~]# cd /opt/zstack-edge/upgrade-zaku-1.24-3.3.0
      [root@localhost ~]# ansible-playbook -i inventory/sample/hosts.yaml zaku-management-upgrade.yml
    4. 确认管理集群Pod状态
      在Zaku-3云主机执行以下命令,查看管理集群Pod状态,如ze-db-migration Pod状态为Completed,其他Pod状态为Running,表示管理集群升级完成:
      [root@localhost ~]# kubectl get pod -A
  7. 升级容器管理业务集群到3.3.0 (最新版)
    在Zaku-3云主机执行以下命令,将业务集群升级到3.3.0:
    [root@localhost ~]# cd /opt/zstack-edge/upgrade-zaku-1.24-3.3.0
    [root@localhost ~]# bash zaku-upgrade/upgrade.sh    //按提示输入需升级的业务集群名称,如有多个业务集群,需依次升级
    [root@localhost ~]# bash zaku-upgrade/upgrade.sh    //确认业务集群是否为已升级状态
  8. 同步容器管理业务集群
    1. 获取容器管理AccessKey。
      ZStack AIOS主菜单,点击容器管理 > 服务设置 > 个人设置 > AccessKey管理,进入AccessKey管理界面。在AccessKey管理界面,点击生成AccessKey,并记录生成的AccessKey ID和AccessKey Secret。
      图4所示:


      图4 获取容器管理AccessKey
    2. 同步业务集群。
      登录ZStack AIOS管理节点,执行以下命令:
      登录CLI命令行
      [root@localhost ~]# zstack-cli    //进入CLI命令行
      - >>>  LogInByAccount accountName=admin password=${Password}    //使用Admin账号密码登录
      
      创建业务集群管理节点,managementIP和name均使用容器管理VIP,AccessKeyId和AccessKeySecret分别使用上一步中获取的容器管理AccessKey ID和Secret;执行完成后,记录返回的UUID,UUID是业务集群管理节点的UUID,即${ContainerManagementUuid}
      admin >>> AddContainerManagementEndpoint managementIp=${ZakuVip} managementPort=80 name=${ZakuVip} description=zaku containerAccessKeyId=${AccessKeyId} containerAccessKeySecret=${AccessKeySecret} vendor=zaku
      
      同步业务集群
      admin >>> QueryZone    //查询区域UUID
      admin >>> SyncContainerManagementEndpoint uuid="${ContainerManagementUuid}" zoneUuid=${ZoneUuid}
      说明:
      • 5.3.6版本开始,同步容器管理业务集群,可使业务集群中的GPU设备直接展示在ZStack AIOS GPU设备界面。
      • 如后续为该容器管理业务集群添加/删除GPU节点,需重新执行同步操作,同步GPU信息到GPU设备界面。
  9. 启动工作负载。
    登录ZStack AIOS UI界面,点击容器管理 > 容器编排 > 应用管理 > 工作负载。依次点击每个工作负载后的操作 > 弹性伸缩,将工作负载的弹性伸缩副本数依次修改为更新前的数值。
至此,容器管理升级已完成。