- 更新ZStack AIOS Nginx Proxy配置和开放平台配置
- 检查容器管理节点状态
- 停止工作负载
- 升级容器管理管理集群到3.2.0版本
- 升级容器管理业务集群到3.2.0版本
- 升级容器管理管理集群到3.3.0版本 (最新版)
- 升级容器管理业务集群到3.3.0版本 (最新版)
- 同步容器管理业务集群
- 启动工作负载
-
更新ZStack AIOS Nginx Proxy和开放平台配置。
-
更新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 -
更新开放平台配置
通过以下URL,登录ZStack AIOS开放平台配置界面,删除名为AI云原生或容器服务的菜单:
- 单管理节点开放平台URL:http://management_node_ip:5000/settings/plugin/menu
- 双管理节点开放平台URL: http://management_node_vip:5000/settings/plugin/menu
-
更新Nginx Proxy配置。
-
检查容器管理节点状态
- 检查容器管理管理集群、业务集群节点,确保所有节点均处于运行中状态
-
检查业务集群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的云主机即可。如图2所示:
图2 查看Zaku-3云主机
-
停止工作负载。
登录ZStack AIOS UI界面,点击容器管理 > 容器编排 > 应用管理 > 工作负载。依次点击每个工作负载后的操作 > 弹性伸缩,将所有工作负载的弹性伸缩副本数修改为0。i说明: 请记录好当前副本数,以便容器管理升级完成后,将副本数恢复为原来的数值。如图3所示:


图3 修改工作负载弹性伸缩副本数为0 -
升级容器管理管理集群到3.2.0
- 根据准备工作,准备容器管理 (ZStack Zaku) 3.2升级包。
- 登录Zaku-3云主机,将容器管理 (ZStack Zaku) 3.2升级包存放在/opt/zstack-edge目录。
-
在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 -
确认管理集群Pod状态
在Zaku-3云主机执行以下命令,查看管理集群Pod状态,如ze-db-migration Pod状态为Completed,其他Pod状态为Running,表示管理集群升级完成:
[root@localhost ~]# kubectl get pod -A
-
升级容器管理业务集群到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 //确认业务集群是否为已升级状态 -
升级容器管理管理集群到3.3.0 (最新版)
- 根据准备工作,准备容器管理 (ZStack Zaku) 3.3升级包。
- 登录Zaku-3云主机,将容器管理 (ZStack Zaku) 3.3升级包存放在/opt/zstack-edge目录。
-
在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 -
确认管理集群Pod状态
在Zaku-3云主机执行以下命令,查看管理集群Pod状态,如ze-db-migration Pod状态为Completed,其他Pod状态为Running,表示管理集群升级完成:
[root@localhost ~]# kubectl get pod -A
-
升级容器管理业务集群到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 //确认业务集群是否为已升级状态 -
同步容器管理业务集群
-
获取容器管理AccessKey。
在ZStack AIOS主菜单,点击容器管理 > 服务设置 > 个人设置 > AccessKey管理,进入AccessKey管理界面。在AccessKey管理界面,点击生成AccessKey,并记录生成的AccessKey ID和AccessKey Secret。如图4所示:

图4 获取容器管理AccessKey -
同步业务集群。
登录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}i说明:- 5.3.6版本开始,同步容器管理业务集群,可使业务集群中的GPU设备直接展示在ZStack AIOS GPU设备界面。
- 如后续为该容器管理业务集群添加/删除GPU节点,需重新执行同步操作,同步GPU信息到GPU设备界面。
-
获取容器管理AccessKey。
-
启动工作负载。
登录ZStack AIOS UI界面,点击容器管理 > 容器编排 > 应用管理 > 工作负载。依次点击每个工作负载后的操作 > 弹性伸缩,将工作负载的弹性伸缩副本数依次修改为更新前的数值。