Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

OpenStack環境におけるAnsible Deployerインサービスソフトウェアアップグレード手順を使用したContrail Networkingのアップグレード

この手順を使用する場合

Openstack オーケストレーションを使用するほとんどの環境では、ネットワークの中断を最小限に抑えながら Contrail Networking をアップグレードするには、ゼロインパクト アップグレード(ZIU)の手順を使用することをお勧めします。

ZIU アップグレードを実行するには、「 Ansible Deployer を使用してゼロ インパクト Contrail Networking アップグレードを実行する方法」の指示に従います。Red Hat Openstack 13 または 16.1 を実行している場合は、 Red Hat Openstack 13 を使用した環境でのゼロインパクト アップグレード プロセスを使用した Contrail Networking の更新または Red Hat Openstack 16.1使用した環境でのゼロインパクト アップグレード プロセスを使用した Contrail Networking の更新を参照してください。

本書の手順では、Openstack オーケストレーションを使用する環境で Ansible deployer を使用して、ネットワークの中断を最小限に抑えながら Contrail Networking をアップグレードする方法も示します。

このドキュメントの手順は、Contrail Networking をリリース 3.2 以降からリリース 5.0 以降にアップグレードするために検証されています。このアップグレード用の Contrail リリースは、リリース 3.2 以降の Contrail Networking リリース(すべての Contrail Networking 4、5、19、20、21 リリースを含む)に設定できます。このアップグレードのターゲット リリースは、リリース 5.0 以降のすべての Contrail Networking リリース(すべての Contrail Networking 5、19、20、21 リリースを含む)です。

表 1:Contrail Networking の検証済みアップグレード シナリオ

Contrail Networking リリースの開始

ターゲットがアップグレードされた Contrail Networking リリース

リリース 3.2 以降

すべてのリリース 4

すべてのリリース 5

すべてのリリース 19

すべてのリリース 20

すべてのリリース 21

すべてのリリース 5

すべてのリリース 19

すべてのリリース 20

すべてのリリース 21

Contrail インサービス ソフトウェア アップグレード(ISSU)の概要

インストールされているバージョンが Contrail リリース 3.2 以上の場合、稼働中ソフトウェア アップグレード(ISSU)を実行して、Ansible deployer を使用してこのアップグレードを実行できます。ISSU を実行する際には、Contrail コントローラー クラスターが並列セットアップで並行してアップグレードされ、コンピューティング ノードが所定の場所にアップグレードされます。

メモ:

アップグレード プロセスを進める前に、現在のシステムのスナップショットを取得することをお勧めします。

Contrail Ansible deployer を使用して ISSU を実行する手順は、以前の ISSU アップグレード手順と同様です。

メモ:

この Contrail ansible deployer ISSU プロシージャには、OpenStack をアップグレードするための手順は含まれていません。OpenStack バージョンのアップグレードが必要な場合は、該当する OpenStack の手順を使用して実行する必要があります。

要約すると、ISSU プロセスは、次の部分から順番に構成されています。

  1. 新しいクラスタを展開します。

  2. 新しいクラスタと古いクラスタを同期します。

  3. コンピューティング ノードをアップグレードします。

  4. 同期を確定し、アップグレードを完了します。

前提 条件

Contrail ansible deployer ISSU プロシージャを使用するには、以下の前提条件が必要です。

  • 以前のバージョンの Contrail がインストールされており、リリース 3.2 より前のバージョン。

  • OpenStack コントローラとコンピューティング ノード、Contrail ノードがあります。

  • OpenStack は、パッケージからインストールされている必要があります。

  • Contrail と OpenStack は異なるノードにインストールする必要があります。

メモ:

Ubuntu 14.04 を持つコンピューティング ノードのアップグレードはサポートされていません。コンピューティング ノードは、まず Ubuntu 16.04 にアップグレードする必要があります。

Ansible Deployer ISSU プロシージャ用の Contrail システムの準備

要約すると、これらは Contrail ansible deployer ISSU プロシージャのシステム準備フェーズの一般的な手順です。

  1. Contrail ansible deployer を使用して Contrail の新しいバージョンを導入しますが、必ず以下の Contrail コントローラ サービスのみを含める必要があります。

    • 設定

    • コントロール

    • アナリティクス

    • データベース

    • rmq、kafka、zookeeperなどの追加のサポートサービス。(vrouter サービスは、後で古いコンピューティング ノードに導入されます)。

    メモ:

    セットアップのための重要な認証情報を提供する必要があります。

  2. 導入が完了したら、Contrail Web インターフェイスにログインして動作することを確認できます。

ansible deployer を使用して新しいコントローラを導入するための詳細な手順は次のとおりです。

  1. 新しいコントローラを導入するには、ジュニパーネットワークスのプロビジョニング ホストに contrail-ansible-deployer-tgzrelease-tag をダウンロードします。

  2. この例に示すように、新しいコントローラー ファイル config/instances.yaml は、変数の代わりに実際の値を使用して、次のように表示されます。

  3. 最後に、ansibleプレイブックを実行して新しいコントローラを導入します。

これらのコマンドが正常に完了すると、新しいコントローラは稼働している必要があります。

制御ノードのプロビジョニングと同期手順の実行

要約すると、これらは Contrail ansible deployer ISSU プロシージャのノード プロビジョニングと同期フェーズの一般的な手順です。

  1. 古いクラスタ内の新しい制御ノードと、新しいクラスタ内の古い制御ノードをプロビジョニングします。

  2. すべてのノードで、新しいクラスター内の以下のコンテナを停止します。

    • contrail-device-manager

    • Contrailスキーマトランスフォーマー

    • contrail-svcmonitor

  3. 新しいクラスターでのコンピューティングのプロビジョニングを防止するために、新しいコントローラーを保守モードに切り替えます。

  4. ISSU の構成ファイルを準備します。

  5. ISSU パッケージから事前同期スクリプトを実行します。

  6. ISSU パッケージから実行同期スクリプトをバックグラウンド モードで実行します。

制御ノードのプロビジョニングと同期の実行の詳細な手順は次のとおりです。

  1. 新しいクラスタ内の古い制御ノードをペアにします。任意の config-api コンテナから実行することをお勧めします。

  2. 指示された実際の値を置き換え、古い制御ノードごとに以下のコマンドを実行します。

  3. 古いクラスタ内の新しい制御ノードを同様のコマンドと組み合わせて(特定の構文は古いクラスタの導入方法によって異なります)、指示された実際の値を置き換えます。

  4. すべてのコントローラ ノードの新しいクラスタで、contrail-device-manager、contrail-schema-transformer、contrail-svcmonitor のすべてのコンテナを停止します。

次のステップは、新しいコントローラから実行する必要があります。次に、ISSU 用に準備された構成が実行されます。(現時点では手動での準備しかできません。

メモ:

さまざまな導入では、古い cassandra はポート 9160 または 9161 を使用できます。古いサービスの設定詳細は、古いコントローラノードのファイル /etc/contrail-contrail-api.confで学習できます。

設定は次のように表示され、ローカルに保存できます。

  1. config-apiイメージIDを検出します。

  2. 事前同期を実行します。

  3. 同期実行を実行します。

  4. 実行同期プロセスのログを確認します。そのためには、run-syncコンテナを開きます。

  5. すべてのコンピューティング ノードがアップグレードされた後、同期実行プロセスを停止および削除します。

コンピューティング ノードの新しいクラスターへの移行

要約すると、これらは Contrail ansible deployer ISSU プロシージャのノード転送フェーズの一般的な手順です。

  1. 新しいクラスターに転送するコンピューティング ノードを選択します。

  2. すべてのワークロードをノードから他のコンピューティング ノードに移動します。必要に応じてワークロードを終了することもできます。

  3. Contrail リリース 3.x では、以下のように Contrail をノードから削除します。

    • vrouter-agent サービスを停止します。

    • インターフェイスを vhost0 削除します。

    • 物理インターフェイスをダウンに切り替えてから、アップします。

    • カーネルから vrouter.ko モジュールを削除します。

  4. Contrail リリース 4.x 以降では、以下のように Contrail をノードから削除します。

    • エージェントコンテナを停止します。

    • 物理インターフェイスを復元します。

  5. 必要なノードをインスタンスに追加 します。yml のロール vrouteropenstack_legacy_computeを使用します。

  6. Contrail ansible deployerを実行して、新しいvrouterを導入し、古いコンピューティングサービスを設定します。

  7. すべての新しいコンピューティング ノードには、以下が含まれます。

    • 新しい Contrail クラスタを指すコレクター設定

    • 新しい Contrail クラスタを指す制御/DNS ノード

    • vnc_api_libの config-api 設定 、新しい Contrail クラスタを指し示しています。

  8. (オプション)転送されたノードでテスト ワークロードを実行し、新しい vrouter-agent が正しく動作することを確認します。

必要に応じて、コンピューティング ノードをロールバックするには、次の手順に従います。

  1. コンピューティング ノードからワークロードを移動します。

  2. 新しい Contrail コンテナを停止します。

  3. ネットワーク設定が正常に元に戻ったことを確認します。

  4. そのバージョンの導入方法を使用して、以前のバージョンの Contrail を導入します。

コンピューティング ノードを新しいクラスタに転送する手順は、次のとおりです。

メモ:

選択したコンピューティング ノードからワークロードを移動した後、以前のバージョンの Contrail-agent を削除する必要があります。例えば、ホストに直接インストールされたUbuntu 16.04とvrouter-agentの場合、以前のcontrail-agentを削除する手順は次のようになります。

  1. 新しいインスタンスは、vrouter と openstack_compute_legacy の 2 つのロールで instances.yaml に追加する必要があります。コンピューティング ノードの再プロビジョニングを回避するには、メンテナンス モードを に設定します TRUE。例えば:

  2. Ansibleプレイブックを実行します。

  3. コンピューティング ノードの Contrail ステータスは次のように表示されます。

  4. アップグレード完了後、すべての新しいコントローラ ノードで contrail-control を再起動します。

  5. 新しいコンピューティング ノード上で実行 contrail-status し、状態を確認します。すべてのコンポーネントは今すぐアクティブにする必要があります。新しいコンピューティング ノードで AZ/集計を作成して新しいインスタンスのステータスを確認し、一部のテスト ワークロードを実行して正しく動作するようにすることもできます。

Contrail Ansible Deployer ISSU プロセスの最終決定

Contrail ansible deployer ISSU を次のように完成させます。

  1. issu-run-sync コンテナを停止します。

  2. 同期後コマンドを実行します。

  3. すべての新しいコントローラー ノードで次のコマンドを実行します。

  4. コンテナを再起動します。

  5. メンテナンスモードを解除し、以前に停止したすべてのコンテナを起動します。これを行うには、instances.yaml のエントリMAINTENANCE_MODEを FALSE に設定し、展開ノードから次のコマンドを実行します。

  6. 古い Contrail コントローラをクリーンアップして削除します。config-apiコンテナからという provision-issu.py スクリプトを config issu.confとともに使用します。認証情報変数と API サーバー IP を、指示に応じて適切な値に置き換えます。

  7. 任意のコントローラー ノードから次のコマンドを実行します。

    メモ:

    すべての *host_info パラメーターには、新しいホストのリストを含める必要があります。

  8. 他のサービスが存在しない場合、サーバーをクリーンアップできます。

  9. neutron-api のすべての設定を編集して、パラメータ api_server_ip が新しい config-api IP アドレスのリストを指し向ける必要があります。 ContrailPlugin.ini (またはこのパラメーターが含まれているその他のファイル)を検索し、IP アドレスを新しい config-api IP アドレスのリストに変更します。

  10. 熱構成には同じ変更が必要です。パラメータ [clients_contrail]/api_server を見つけて、新しい config-api IP アドレスのリストをポイントするように変更します。