Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Contrail クラウドの導入

Contrail クラウド導入の前提条件

Contrail クラウドを導入する前に、システムが次の前提条件を満たしていることを確認してください。

インフラストラクチャ ネットワーク

  • すべてのシステムは、Contrail Cloud リポジトリのサテライトにアクセスできる必要があります。このサテライトは、パッケージの配布とソフトウェアバージョンの制御に使用されます。

  • Contrail Cloud Jump ホストは、すべてのマネージド サーバーの IPMI(インテリジェント プラットフォーム管理インターフェイス)にアクセスできる必要があります。

  • プリブート実行環境(PXE)の起動を許可するには、各マネージド サーバーの管理インターフェイスと同じブロードキャスト ドメイン内にジャンプ ホストを含める必要があります。

    メモ:

    ラックごとに異なるスイッチング デバイスを使用する複数のネットワークを実行する場合、インターフェイス間で VLAN を拡張することで PXE ブートが実行されます。ネットワーク ファブリックの BOOTP 転送はサポートされていません。このネットワークでは、アンダークラウドが唯一の DHCP サーバーです。

  • ホスト名のジャンプを長い名前(FQDN)に設定する必要があります。
    • また、特定の FQDN のジャンプ ホストに適切な /etc/hosts エントリーを設定する必要があります。
  • ジャンプ ホスト FQDN は DNS によって解決可能で、クラウド環境全体から到達可能/ルーティング可能な IP を返す必要があります。

Contrail Cloud Jump Hostの設定

Red Hat Openstack Platform Director(アンダークラウドとも呼ばれる)は、Linux のカーネルベース仮想マシン(KVM)Contrail Cloud Jump ホスト上で仮想マシンとして導入されます。KVM ホスト OS が以下を実行していることを確認する必要があります。

  • ベース パッケージのみがインストールされた Red Hat Enterprise Linux 8.2 以前を実行します。Contrail クラウドは、RHEL 8.2 と必要なすべてのパッケージをインストール プロセスの一環としてインストールします。

  • 他の仮想マシンを実行していない。

  • Contrail クラウド リポジトリのサテライトにアクセスできるネットワーク接続があり、物理ハードウェアへの IPMI アクセスが可能です。

  • 他のインフラストラクチャ リソースのプロビジョニングに使用できるネットワーク接続を備えています。

  • ディレクトリに 500 GB 以上のスペースを /var 格納し、仮想マシン、パッケージ、イメージをホストします。

  • 40 GB 以上の RAM と 24 個の vCPU を備えています。

  • パスワードレス sudo の権限を持つ root ユーザーなどのユーザーをサポートします。

  • ユーザーの権限を持つループバックでのパスワードレスSSHアクセスを sudo 提供します。

  • インターネットサイトとサテライトサイトをDNSで解決します。

  • NTP ソースと同期している時間があります。

Contrailクラウド導入の導入シーケンス

次の導入シーケンスでは、Contrail クラウドのインストール、構成、導入の方法について説明します。

メモ:

シーケンス内のいずれかの手順でエラーが発生した場合は、クリーンアップ機能を使用してステップを元に戻すことができます。各スクリプトを(「-c」引数を使用して)実行してインストール・シーケンスを逆転させ、シーケンス内の目的の状態に戻します。たとえば、ContrailクラウドとOpenStackクラスターを再導入するには、次のようにします。

k8s-tf-operator-deploy.sh スクリプトをクリーンアップする場合は、openstack-deploy.sh スクリプトをクリーンアップしてから、両方をデプロイして、それぞれが一貫した状態になっていることを確認する必要があります。

Jump HostへのContrailクラウドインストーラのインストール

ジャンプ ホストは Contrail クラウド ホストであり、Contrail クラウドの導入の出発点です。インストールを開始する前に、以下のことを行います。

  1. Contrail Cloud のアクティベーション キーを取得するためのリクエストを mailto:contrail_cloud_subscriptions@juniper.net に送信します。以下を含む電子メールが送信されます。
    • 固有のサテライト アクティベーション キー

    • サテライト DNS 名

    • 衛星組織は

    メモ:

    Contrail Cloud Satellite は、Contrail Cloud のバンドルを含むリポジトリです。

  2. 新しいSSHキーを作成します。インストールを実行する前に、rootユーザーにSSHキーがあることを確認します。
  3. 秘密鍵を秘密鍵として作成します。

    SSHキーで秘密鍵を秘密鍵に設定した場合は、 を使用 ssh-agent して秘密鍵をキャッシュできます。たとえば、ジャンプ ホスト上の contrail ユーザーは次のようにします。

  4. rootユーザーがパスワードなしでSSH経由でローカルホストに接続できることを確認します。アクセスを許可するには、初めてパスワードが必要になる場合があります。

Contrail クラウドのインストール

  1. ジャンプホストの contrail_cloud_installer.sh をアンターします。

    インストーラのダウンロード先: Juniper Networks Contrail Cloud Download Site

  2. 環境変数を設定して、アクティベーションキーを指定します。

    例えば:

  3. インストーラー スクリプトにパッケージをインストールするために必要な権限があることを確認します。パッケージは /var/lib/contrail_cloud ディレクトリにインストールされています。

  4. Ansible 変数でサイト固有の情報を定義します。

    1. ディレクトリを /var/lib/contrail_cloud/config に変更します。

    2. サンプル /var/lib/contrail_cloud/sample/*.yml 設定ファイルを /var/lib/contrail_cloud/config ディレクトリに コピーします。

      メモ:

      configディレクトリに既存の設定ファイルがある場合は、この手順をスキップできます。

    3. アクティベーション キー(サテライト組織と FQDN)を site.yml 設定ファイルに追加します。

    4. 使用環境のサイト固有の設定で 、site.yml 設定ファイル (/var/lib/contrail_cloud/config/site.yml) をカスタマイズします。サイトごとに以下のフィールドが変更されていることを確認します。

    メモ:

    Intel X710 NIC 上に DPDK を展開する場合は、次のように DPDK ドライバーを vfio-pci site.yml 構成ファイル内に設定します。

    サポートされている NIC とドライバーのマッピングの完全なマトリックスについては、Contrail Networking NIC サポート マトリクスを参照してください。

  5. Ansible Vaultを準備します。保管庫では、プレイブックやロールのプレーンテキストとしてではなく、パスワードやキーなどの機密データを暗号化されたファイルに保存することができます。

    1. Vault-data.yml設定ファイルをカスタマイズします。

    2. 保管庫で暗号化されたファイルのパスワードを変更します。デフォルトのパスワードは.c0ntrail123

    メモ:

    プレーンテキストパスワードを使用してVaultのパスワードを作成します。プレーンテキストのパスワードを使用すると、Ansibleが毎回パスワードを要求できなくなります。ユーザーの contrail ファイルを作成するときは、それが読み取り専用であることを確認します。展開が完了した後、ファイルを削除することをお勧めします。

  6. ansible-Vault の編集 config/vault-data.yml コマンドを使用して、サテライト キーを Vault に追加します。

  7. Ansible プロビジョニングを実行します。プロビジョニングには、ジャンプ ホスト、RHV マネージャー、アンダークラウド(RHOSPd)の設定が含まれます。

    1. パスワードを指定せずに SSH 接続を確立できることを確認します。

      sshローカルホスト true

    2. 自動化スクリプトをインストールします。

      jp/jp/jp/jp/contrail_cloud/scripts/install_contrail_cloud_manager.sh

      プロビジョニングが完了すると、ジャンプホストでユーザー名 contrail を持つ新しいユーザーが作成され、新しいSSHキーのセットが生成され、アンダークラウドVMとコントロールホストにユーザーがアクセスできるようになります。Contrail Insights ノードを含むオーバークラウド ノードは、heat-admin ユーザーがアクセスでき、デフォルトではアンダークラウド VM に保存されている別のキーのペアを使用します。

      上記で説明したように、 Vault-data.yml ファイルのデフォルトパスワードを必ず変更してください。

Contrail クラウドでは、ディレクトリに /home/contrail/.ssh/config 、各オーバークラウド ノード(およびアンダークラウド)で使用されるユーザー名を含むエントリーが追加されます。これは、ユーザーを指定しなくても使用 ssh undercloud できる、または ssh <address> 使用できることを意味します。

ユーザーキーheat-admincontrail site.yml 設定ファイルで定義することで、 を許可できます。

ユーザーを contrail 使用して 、/var/lib/contrail_cloud/scripts ディレクトリから Contrail Cloud で後続のすべての操作を実行します。

メモ:

ContrailユーザーのSSHキーは、ルートによって承認されています。つまり、ContrailユーザーはジャンプホストにSSHで接続 root できます。

設定ファイルの準備

表 1 は、Contrail クラウドで使用する設定ファイルを示しています。対応するサンプル YAML ファイルについては、「 付録 A 」を参照してください。

/var/lib/contrail_cloud/scripts/node-configuration.py スクリプトを実行することで、いつでも設定ファイルを検証できます。このスクリプトは、すべての設定ファイルを読み込み、構文をチェックし、構造と値がスキーマに準拠していることを検証します。探している結果に応じて、Python スクリプトで異なる引数を使用できます。

セキュリティで保護されたレジストリは、Contrail クラウド リリース 16.3 で使用されています。コンテナー イメージ レジストリ資格情報をファイルに vault-data.yml 入力する必要があります。ジャンプ ホストから、詳細と Vault データの例を参照してください /var/lib/contrail_cloud/samples/unencrypted-vault-data.yml 。デプロイアクティビティを実行する前に、常に最新の認証情報でファイルを更新してください vault-data.yml

メモ:

ジャンプホストの /var/lib/contrail_cloud/sample/ ディレクトリからサンプルファイルをコピーできます。

表 1:Contrail クラウド設定ファイル

構成設定

ファイル名と場所

説明

サイト設定

  • site.yml(/var/lib/contrail_cloud/config/site.yml)

  • サンプル ファイル: サンプル サイト.yml

デプロイメント環境のプロパティを定義します。このファイルのプロパティは、展開ごとに一意であり、カスタマイズする必要があります。

インベントリ設定

  • inventory.yml(/var/lib/contrail_cloud/config/inventory.yml

  • サンプル ファイル: サンプル インベントリ.yml

Contrail クラウドが使用するすべてのサーバーを定義します。

ホスト設定の制御

  • control-host-nodes.yml(/var/lib/contrail_cloud/config/control-host-nodes.yml)

  • サンプル ファイル: sample control-host-nodes.yml

制御機能を高可用性にするには、構成と inventory.yml ファイルで 3 つの制御ホストを定義する必要があります。

各制御ホストのサーバーおよびネットワーク プロパティを定義します。すべての Contrail クラウド制御機能の仮想マシンを実行します。コントロール ホストで作成される VM には、以下のものがあります。

  • OpenStack と Ceph Controller

  • K8s ホスト ノード

  • Contrail Insights Controller

制御 VM をホストするには、制御ホストが以下の最小仕様を満たす必要があります。

  • 256 GB RAM

  • オペレーティングシステム用の100 GB以上の最初のディスク

  • VM ストレージ用の 1 TB 以上のハード ディスク(RAID を使用した複数の SSD を推奨)

  • 使用環境に適した RAID レベルに設定されたハードウェア RAID コントローラ。オペレーティング環境には、オペレーティング・システム・ディスク、VMストレージ、および VM ジャーナルが含まれます。

Kubernetes ホスト設定

  • k8s-host-nodes.yml(/var/lib/contrail_cloud/config/k8s-host-nodes.yml)

  • サンプル ファイル: サンプル k8s-host-nodes.yml

Kubernetes VM ホスト ノードを定義します。

Overcloud ネットワーク設定

  • overcloud-nics.yml(/var/lib/contrail_cloud/config/overcloud-nics.yml)

  • サンプル ファイル: sample overcloud-nics.yml

OpenStack および Contrail Insights VM に導入されるロール。各ロールのネットワーク レイアウトを定義します。

コンピューティング ノード設定

  • compute-nodes.yml(/var/lib/contrail_cloud/config/compute-nodes.yml)

  • サンプル ファイル: sample compute-nodes.yml

コンピューティング リソースとホスト集約を定義します。また、ホスト集約を管理し、このファイル内の使用可能ゾーンと一致させます。

また、設定ファイル内のコンピューティング ノードを定義する inventory.yml 必要があります。

ストレージ ノードの設定

  • storage-nodes.yml(/var/lib/contrail_cloud/config/storage-nodes.yml)

  • サンプル ファイル: sample storage-nodes.yml

Ceph ストレージ・サービスを実行するストレージ・ノードを定義します。

ストレージ機能の高可用性を確保するには、最低でも 3 つのストレージ ホストを定義する必要があります。また、コンフィギュレーション・ファイル内のストレージ・ノードも定義する inventory.yml 必要があります。

Vault データ設定

  • vault-data.yml(/var/lib/contrail_cloud/config/vault-data.yml)

  • サンプル ファイル: sample vault-data.yml

パスワード、プロダクトキー、ユーザーデータ、セキュリティで保護されたレジストリ情報など、すべての機密性が高いユーザーデータを保持する暗号化ファイル。

Openstack Ironic Inventory にノードを追加

/var/lib/contrail_cloud/scripts/inventory-assign.sh スクリプトは、ファイル内で定義したすべてのノードをinventory.yml皮肉なインベントリに追加します。皮肉なインベントリに追加されたノードは、Contrailクラウドによって管理されます。

皮肉なインベントリにノードを追加するには、

  1. ユーザー名 contrail とパスワード c0ntrail123を使用して、ジャンプ ホストにログインします。
  2. inventory-assign.sh スクリプトを実行します。

    /var/lib/contrail_cloud/scripts/inventory-assign.sh

  3. 使用可能なリソース プロパティのレポートを生成します。

    これらの詳細は、役割、ディスク デバイス、ネットワーク インターフェイスを設定する場合に役立ちます。 node-configuration.py スクリプトを実行する前に、ノードを Ironic インベントリに読み込む必要があります。このスクリプトは、スキーマに対する設定の検証にも使用され、設定ファイルの編集後に使用できます。レポートは、以下を実行して生成できます。

    /var/lib/contrail_cloud/scripts/node-configuration.py グループ

    以下のように、特定のリソース(リソース<リソース>インベントリ リソース名)に関するより詳細なレポートを生成できます。

制御ホストの導入

制御ホストとは、仮想制御機能をコントローラノードとしてホストするサーバー上で実行されるハイパーバイザーです。コントローラ ノードは、サーバー機能の管理を担当する VM です。 control-hosts-deploy.sh スクリプトは、 /var/lib/contrail_cloud/config/control-host-nodes.yml ファイルで定義されているすべてのノードを制御ホストとして割り当てます。ホストはイメージ化、起動、設定、準備を行い、クラウド上のコントロールプレーンVMをホストします。

インベントリに制御ホストロールを展開するには、次の手順にしたがっています。

  1. ユーザー名 contrail とパスワード c0ntrail123を使用して、ジャンプ ホストにログインします。
  2. control-hosts-deploy.sh スクリプトを実行します。

    /var/lib/contrail_cloud/scripts/control-hosts-deploy.sh

すべての制御ロールの VM の作成

control-vms-deploy.sh スクリプトは、VMの詳細を皮肉なインベントリにインポートします。

制御ロール用の VM を作成するには、以下の手順に示します。

  1. ユーザー名 contrail とパスワード c0ntrail123を使用して、ジャンプ ホストにログインします。
  2. control-vms-deploy.sh スクリプトを実行します。

    /var/lib/contrail_cloud/scripts/control-vms-deploy.sh

コンピューティング ノードの割り当て

コンピューティング ノードとは、ネットワーク上でサービスを提供する仮想マシンをホストするサーバーです。 compute-nodes-assign.sh スクリプトは、 compute-nodes.yml 設定ファイル(/var/lib/contrail_cloud/config/compute-nodes.yml)で定義するすべてのノードに Nova コンピューティング ロールを割り当てます。

コンピューティング ノードを割り当てるには、

  1. ユーザー名 contrail とパスワード c0ntrail123を使用して、ジャンプ ホストにログインします。
  2. compute-nodes-assign.sh スクリプトを実行します。

    /var/lib/contrail_cloud/scripts/compute-nodes-assign.sh

ストレージ ノードの割り当て

ストレージ ノードとは、データを保存することを目的としたサーバーです。ストレージ ノードは、Contrail Cloud で Red Hat Ceph ストレージ ソフトウェアを実行しています。storage-nodes-assign.ymlプレイブックは、(/var/lib/contrail_cloud/config/sorage-nodes.yml)ファイルでstorage-nodes.yml定義されているすべてのノードにCephストレージロールを割り当てます。

ストレージノードを割り当てるには、

  1. ユーザー名 contrail とパスワード c0ntrail123を使用して、ジャンプ ホストにログインします。
  2. storage-nodes-assign.sh スクリプトを実行します。

    /var/lib/contrail_cloud/scripts/storage-nodes-assign.sh

Kubernetes クラスタの導入

Kubernetes(k8s)クラスタは、Contrailコントロールプレーンのインフラストラクチャを提供するために使用されます。Contrailコントロールプレーンは、クラウド上のOpenStackクラスターの外に隣接して導入されます。 k8s-cluster-deploy.sh スクリプトは、Kubernetesクラスタの導入を開始します。

Kubernetes クラスタを導入するには、次の手順にしたがっています。

  1. ユーザー名 contrail とパスワード c0ntrail123を使用して、Contrail Cloud jump ホストにログインします。
  2. k8s-cluster-deploy.sh スクリプトを実行します。

    /var/lib/contrail_cloud/scripts/k8s-cluster-deploy.sh

OpenStack クラスターの導入

openstack-deploy.sh スクリプトは、OpenStack overcloudを展開し、すべての制御機能と、以前のプレイブックで定義されたすべてのコンピューティングリソースとストレージリソースを備えています。

OpenStack クラスターを導入するには、以下の手順にしたがっています。

  1. ユーザー名 contrail とパスワード c0ntrail123を使用して、Contrail Cloud jump ホストにログインします。
  2. validate-node.sh スクリプトを実行して、環境が正しく設定されていることを確認します。

    /var/lib/contrail_cloud/スクリプトのジャンプホストでスクリプトを実行し、以下のYAML設定ファイルを検証します。

    • OpenStack コントローラ向けネットワーク

    • コントローラホストとコンピューティングホストのネットワーク

    • ディスク リソースと構成の検証

  3. openstack-deploy.sh スクリプトを実行します。

    /var/lib/contrail_cloud/scripts/openstack-deploy.sh

Contrail クラウド コントロール プレーンの導入

k8s-tf-operator-deploy.sh スクリプトは、Contrail コントロール プレーンを構成するサービスを Kubernetes に導入します。

メモ:

この導入は、両方のクラスタが互いをより効率的に同期できるようにするために、openstack-deploy.sh と並行して行うのが最善です。

制御プレーンを導入するには、次の手順にしたがっています。

  1. ユーザー名 contrail とパスワード c0ntrail123を使用して、Contrail Cloud jump ホストにログインします。
  2. k8s-tf-operator-deploy.sh スクリプトを実行します。

    /var/lib/contrail_cloud/scripts/k8s-tf-operator-deploy.sh

OpenStack 環境の検証

環境を検証して確認できます。デフォルトでは、フローティング IP(ISP)が必要なテストはスキップされます。スクリプトを provision-sdn-gateway.sh 実行してから、Tempest が使用できる SDN ゲートウェイと外部ネットワークをプロビジョニングします。Tempest は、ライブ OpenStack クラスターに対して実行される一連の統合テストです。オブジェクト定義の例は 、site.yml ファイル(/var/lib/contrail_cloud/samples/features/provision-sdn-gateway/site.yml)で見つけることができます。

新しく導入された環境で Tempest テスト コレクションを実行するには、 overcloud-validation.sh スクリプトを使用します。このスクリプトは CirrOS VM イメージをダウンロードし、オーバークラウドにアップロードして、新しいフレーバーを作成します。スクリプトの実行後、テストの結果は、2 つのファイルが作成される undercloud ホーム ディレクトリにあります。

  • tempest-subunit-smoke.xml

  • tempest-subunit-full.xml

ファイルの 1 行目には、失敗の数と実施されたテストの総数が表示されます。

VNFの画像とテンプレートのインストール

Horizon または OpenStack コマンドライン クライアントを使用して、VNF サービスの Glance イメージと Heat テンプレートをインストールできます。

新しいコンピューティング ノードとストレージ ノードの追加

新しいコンピューティング ノードとストレージ ノードを既存の環境に追加するには、以下の手順に基づきます。

  1. inventory.yml 設定ファイルを更新し、inventory-assign.sh スクリプトを実行します。

  2. compute-nodes.yml 設定ファイルを新しいノードで更新し、compute-nodes-assign.sh スクリプトを実行します。

  3. storage-nodes.yml 設定ファイルを新しいノードで更新し、storage-nodes-assign.sh スクリプトを実行します。

  4. openstack-deploy.sh スクリプトを再実行してください。

ログの収集

デプロイされたノードから重要なログ、構成、およびステータス データをすべて 1 か所に収集するスクリプトを実行できます。彼のスクリプトは、トラブルシューティングやサポートコールを行う際に特定の情報が必要な場合に役立ちます。

導入が成功した後にスクリプトを使用して、将来のアップグレードや障害と比較できるベースラインを提供することをお勧めします。設定、ステータス、ログを展開からアーカイブするには、次の手順にしたがっています。

スクリプトの使用方法の collect_data.sh 説明は次のとおりです。