このセクションでは、イメージ管理とサービスの前提条件について説明します。

イメージ管理とサービス

イメージ サービスは、柔軟なアップグレード ワークフローの最初の手順です。これにより、アップグレード操作の開始後にイメージがアップロードされます。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.pkgNSX Advanced Load Balancer Controller パッケージ)

  • se_patch.pkg(SE パッチ パッケージ)

アップロード プロセスの一環として、イメージ サービスはパッケージからファイルとメタデータを抽出します。この情報はユーザーに表示されるだけでなく、アップグレード プロセスでも使用されます。

注:
  • イメージ サービスは、NSX Advanced Load Balancer イメージをシステムにアップロード、照会、削除する機能を提供します。

  • イメージ サービスは NSX Advanced Load Balancer パッチ パッケージのアップロードをサポートします。

  • イメージのアップロードは、クラスタ リーダーでのみ実行できます。クラスタ メンバーからは許可されません。

イメージのバンドル化

NSX Advanced Load Balancer は、複合イメージまたはイメージ バンドルをサポートします。複合イメージは、以下で構成されています。

  • 基本イメージ - コントローラ イメージ(controller_docker.tgzcontroller.pkgcontroller ovacontroller.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