このセクションでは、イメージ管理とサービスの前提条件について説明します。
イメージ管理とサービス
イメージ サービスは、柔軟なアップグレード ワークフローの最初の手順です。これにより、アップグレード操作の開始後にイメージがアップロードされます。SE グループは異なるバージョンである可能性があるため、NSX Advanced Load Balancer Controller は異なるバージョンのイメージをホストします。
コントローラには、これらのイメージをホストするための追加のディスク容量が必要です。
メジャー バージョンの NSX Advanced Load Balancer Controller イメージには、次のものが含まれます。
controller.pkg(仮想マシンベースの NSX Advanced Load Balancer Controller の場合)
controller_docker.tgz(Docker ベースのコントローラの場合)
パッチのイメージには、次のものが含まれます。
avi_patch.pkg(フル パッケージ)
controller_patch.pkg(NSX Advanced Load Balancer Controller パッケージ)
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 Controller で、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