このトピックでは、Linux サーバ クラウド (LSC) で現在動作している仮想サービス、プール、健全性モニター、およびその他のシステムのクローンを GCP クラウドに作成する方法について説明します。

NSX Advanced Load Balancer コンポーネントまたはサブシステムを GCP クラウドに移行します。

前提条件

  1. 新しい GCP コントローラを設定します(アップデートは将来のリリースにパッチを適用できます)。

  2. NSX Advanced Load Balancer クラウド コネクタによって実行される調整によって、クローン作成された仮想サービスが中断されるのを回避するには、LSC Cloud クラスタに対する cloud_reconcile を無効にします。

手順

  1. LSC Cloud に移行します。
    1. GCP 用の NSX Advanced Load Balancer Controller イメージを使用して、GCP に Controller クラスタの新しいバージョンを作成します。
    2. 現在古いクラスタにある仮想サービス、プール、およびその他のオブジェクトを作成します。両方のクラスタで、同じ仮想 IP アドレス (VIP) を持つ同じ仮想サービスが実行されます。

      クライアントからのトラフィックは、LSC の古いクラスタのサービス エンジンにのみ送信されます。これは、LSC のルートの優先度が LSC のクラスタの優先度よりも高いためです。

    3. LSC の仮想サービスを無効にし、GCP クラウドで仮想サービスをテストします。GCP クラウド サービス エンジンからのトラフィックが引き続き処理されていることを確認します。
    4. 検証後、古いクラスタを削除します。移行のワークフローを次に示します。

      <イメージの挿入>

  2. LSC からの移行を開始します。
    1. GCP の NSX Advanced Load Balancer Controller イメージから、新しいコントローラを作成します。このコントローラに新しい GCP クラウドが作成されます。詳細については、『GCP Full Access Deployment Guide』を参照してください。
    2. LSC を実行しているクラスタで、次の手順を実行します。
    3. クラスタの構成をエクスポートします。
      • NSX Advanced Load Balancer シェルにログインします。

      • 次のコマンドを使用して、システム構成全体をエクスポートします。

      [admin:10-152-134-38]: > export configuration full_system recurse file old-config.json
             Please enter the passphrase to encrypt configuration:
             Retype passphrase:
             Downloaded the attachment to old-config.json
             Completed writing the export configuration to old-config.json
    4. 古いクラスタの VIP と LSC Cloud の調整を無効にします。これは、LSC Cloud が、新しい GCP クラウドによって作成される GCP ルートを削除しないようにするために必要です。
      • NSX Advanced Load Balancer シェルにログインします。

      • コントローラでの調整を無効にするプロパティは次のとおりです。

      [admin:10-152-134-38]: > configure controller properties
         [admin:10-152-134-38]: controllerproperties> no cloud_reconcile
         [admin:10-152-134-38]: controllerproperties> save
      • このエクスポートされた構成ファイル (old-config.json) を新しいコントローラにコピーします。

  3. GCP クラウドの構成:新しい GCP クラウドが作成される新しいクラスタで、次の手順を実行します。
    1. 必要な構成で GCP クラウドを作成します。
    2. このクラウドの SE グループを構成します。
      • SE のサイズ(フレーバーまたは CPU、メモリ構成)と HA モードを構成します。

      • SE グループの数と名前は、LSC 内と同じに保持します。

    3. エクスポートされた構成が、必要なバージョンよりも前のバージョンである場合は、次のコマンドを使用して構成を更新します。
      $ export DJANGO_SETTINGS_MODULE=portal.settings_full
      $ export PYTHONPATH=/opt/avi/python/lib:/opt/avi/python/bin/portal
      $ python /opt/avi/python/bin/upgrade/config_migrator.py --config-file old-config.json --output-file new-config.json
    4. スクリプトが実行されるマシンに、更新された構成ファイルをコピーして、仮想サービスと依存オブジェクトのクローンを古いコントローラの LSC から新しいコントローラの GCP クラウドにコピーします。下位互換性のない構成がある場合は、エラーを修正して続行します。構成の変更が必要な問題の例を次に示します。

      エラー

      解決方法

      {"error": "Virtual Service advertisement is not allowed on public clouds."}

      すべての仮想サービスに対し、enable_rhiFalse に設定します。

      {"error": "Disable port translation is set in pool.Health monitor System-TCP must specify a monitor port."}

      use_service_port フィールドが有効になっているすべての健全性モニターに対し、monitor_port を構成します。

      {"error": "Cannot enable Request Queuing for L4 Service pool"}

      すべての L4 サービス プールに対し、request_queue_enabledFalse に設定します。

  4. 仮想サービスのクローン作成:Linux マシンで次の手順を実行します。
    1. クローン スクリプトを実行するには、次の pip 要件をインストールします。
      $ sudo pip install networkx==2.2  avisdk==18.2.6  eventlet==0.25.1  ipaddress==1.0.22  urllib3==1.25.3
    2. github.com/avinetworks/devops リポジトリのクローンを作成します。
       git clone http://github.com/avinetworks/devops  cd devops/gcp/scripts
    3. 更新された新しい構成ファイル、新しいコントローラの詳細、LSC 名、GCP クラウド名を渡すスクリプトを実行します。
      $ python lsc_to_gcp_cloud_migration.py --from-cloud old-lsc-cloud --to-cloud new-gcp-cloud --controller 10.152.134.15 \         --password avi123$% --config-file new-config.json
      
      注:

      すべてのクラウドに対し、このスクリプトを実行します。

結果

NSX Advanced Load Balancer オブジェクトが GCP クラウドに移行されます。