本节介绍了映像管理和服务的必备条件。
映像管理和服务
映像服务是灵活升级工作流中的第一步。它会在启动升级操作后上载映像。由于 SE 组可能采用不同的版本,因此,NSX Advanced Load Balancer 控制器 会托管不同版本的映像。
控制器必须具有额外的磁盘空间以托管这些映像。
主要版本的 NSX Advanced Load Balancer 控制器 映像包含以下内容:
controller.pkg(适用于基于虚拟机的 NSX Advanced Load Balancer 控制器)
controller_docker.tgz(适用于基于 Docker 的控制器)
修补程序的映像包含以下内容:
avi_patch.pkg(完整包)
controller_patch.pkg(NSX Advanced Load Balancer 控制器 包)
se_patch.pkg(SE 修补程序包)
在上载过程中,映像服务会从包中提取文件和元数据。这些信息不仅会向用户显示,而且还会在升级过程中使用。
映像服务提供了在系统中上载、查询和删除 NSX Advanced Load Balancer 映像的功能。
映像服务支持上载 NSX Advanced Load Balancer 修补程序包。
只能在集群主节点中上载映像。不允许从集群成员中上载映像。
映像包
NSX Advanced Load Balancer 支持复合映像或映像包。复合映像包含以下内容:
基础映像 - 控制器映像(controller_docker.tgz、controller.pkg、controller ova、controller.qcow2 等)。
控制器包 - 这是一个可选包。
SE 修补程序映像 - 这是一个可选包。
使用映像包或复合映像的升级工作流与使用标准映像的升级工作流相同。使用映像包进行升级时,除了基础映像之外,还可以应用修补程序映像。
从版本 18.x 或更低版本升级到 21.1 及更高版本时,请在 NSX Advanced Load Balancer 控制器 中将 DefaultTimeoutStartSec(文件:/etc/systemd/system.conf)更改为 120 秒,以避免在升级期间超时。
使用 CLI 上载映像
CLI 可以更好地控制升级操作,从而提供一致且可预测的工作流。
要上载包,请使用 upload image filename <path-of-the-package> 命令,如下所示。
[admin:controller]: > upload image filename /tmp/controller.pkg
以下 show 命令将返回映像元数据的详细信息。使用 show image <image-name> 命令,如下所示。
[admin:-controller]: > show image +-----------------------------+--------------------------------------------+----------------+ | Name | UUID | Status | +-----------------------------+--------------------------------------------+----------------+ | 18.2.7-5000-20191009.205501 | image-fxxxx22-0f40-45de-8551-15xxxxxxx1fe | SYSERR_SUCCESS | +-----------------------------+-----
有关 CLI 命令和 API 中的差异的更多信息,请参阅 CLI 命令和 API 中的差异比较表。
使用 REST API 上载映像服务
POST 操作将用于上载映像。要在响应中获取映像详细信息,请运行 GET API 请求。
使用以下 REST API 上载 controller.pkg 的映像。
URI:/api/image
方法:
POST
root@admin:-controller# curl -X POST -k https://10.58.3.27/api/image -u "admin:admin" -F [email protected]
使用以下 REST API 上载 controller_patch.pkg 的映像。
root@admin:-controller-18.2.5-2p3-9002# curl -X POST -k https://10.58.3.27/api/image -u "admin:admin" -F file=@se_patch.pkg
使用以下 API 删除提供的映像(如果未使用)。
delete image <image-name>
针对升级的必要检查
在执行升级操作之前,将运行各种必要检查以检查升级的强制性要求和可选要求。输出消息显示为错误消息或警告消息。可以跳过警告,但不能覆盖错误。CLI/API 提供了 skip_warnings 选项以控制上述行为。
对于 CLI:此选项直接集成到常规工作流中,没有单独的命令。
对于 REST API:在 API 末尾添加
/preview/
,以获取该特定流量的预览。
从 NSX Advanced Load Balancer 22.1.3 开始,要启动升级操作,所有 CLI 升级请求都必须使用 skip_warning 选项。如果不使用 skip_warning 选项,任何操作的系统状态都将导致 PRE_CHECK_WARNING 和停止。
[admin:10-10-10-1]: > upgrade system image_ref 30.3.3-7235-20230110.035149 skip_warnings +-------------+------------------------------------------------------------------------------+ | Field | Value | +-------------+------------------------------------------------------------------------------+ | status_code | SYSERR_UPGRADE_OPS_PREVIEW_RESPONSE | | status | Checks preview for upgrade operations. | | checks | | | | Check Controller Cluster readiness for upgrade operations. | | | Check and inform user to take a backup prior to upgrade operations. | | | Check if se linux is enabled on controller nodes. | | | Check if upgrade operation is already in progress. | | | Check ServiceEngineGroup has an ongoing upgrade operation. | | | Check image version compatibility for upgrade operations. | | | Check ServiceEngine reachability for upgrade operations. | | | Check ServiceEngine disk space for upgrade operations. | | | Check Controller Cluster disk space for upgrade operations. | | | Check and inform Virtual Service(s) disruption for upgrade operations. | | | Check idempotent operations for upgrade operations. | | | Check active versions compatibility for upgrade operations. | | | Check ServiceEngineGroup error recovery options prior to upgrade operations. | | | Check Image state across Cluster members for upgrade operations. | | | Checks for the patch in image bundle. | | | Checks if Gslb Feature is enabled and provides feature specific messages. | | | Checks the system configuration. | | | Check total number of alerts for upgrade operations. | | | Checks if the cloud api versions are compatible after upgrade. | | | Checks if Docker version is compatible. | | | Checks if configured IP type is DHCP or STATIC. | | | Checks if se has a valid license state. | +-------------+------------------------------------------------------------------------------+ Starting upgrade +-------------+-----------------------------------------------------------------------------------------------------------+ | Field | Value | +-------------+-----------------------------------------------------------------------------------------------------------+ | status_code | SYSERR_UPGRADE_SYSTEM_STARTED | | status | 'Upgrade of System (Controller + All SEGroup(s)) started. Use 'show upgrade status' to check the status.' | +-------------+-----------------------------------------------------------------------------------------------------------+
同样,在执行修补程序升级时,也请使用 skip_warning 选项。
[admin:10-10-10-1]: > patch controller controller_patch_ref 23.1.1-7189-2p1-20221216.192828 skip_warnings Previewing upgrade