第1章 外部ロードバランサーを使用するオーバークラウドの設定

Red Hat OpenStack Platform (RHOSP) では、オーバークラウドは複数のコントローラーノードを組み合わせて高可用性クラスターとして使用し、OpenStack サービスのオペレーションパフォーマンスを最大限に保ちます。クラスターにより、OpenStack サービスの負荷分散が行われ、コントローラーノードに均等にトラフィックを分配して、各ノードのサーバーで過剰負荷を軽減します。

デフォルトでは、オーバークラウドは HAProxy と呼ばれるオープンソースツールを使用して負荷分散を管理します。HAProxy は、OpenStack サービスを実行するコントローラーノードへのトラフィックの負荷分散を行います。haproxy パッケージには、着信トラフィックをリッスンする haproxy デーモンが含まれ、ロギング機能とサンプル設定が含まれます。

また、オーバークラウドは高可用性リソースマネージャー Pacemaker を使用して、高可用性サービスとして HAProxy を制御します。つまり、HAProxy は各コントローラーノードで実行され、各設定で定義するルールセットに従ってトラフィックを分散します。

外部のロードバランサーを使用して、この負荷分散を実行することも可能です。たとえば、組織で、コントローラーノードへのトラフィックの分散処理に、専用のハードウェアベースのロードバランサーを使用する場合などです。外部ロードバランサーおよびオーバークラウドの作成の設定を定義するには、以下のプロセスを実施します。

  1. 外部ロードバランサーをインストールし、設定します。
  2. オーバークラウドを heat テンプレートパラメーターを使用して設定およびデプロイし、オーバークラウドを外部ロードバランサーと統合します。これには、ロードバランサーと潜在的なノードの IP アドレスが必要です。

外部ロードバランサーを使用するようにオーバークラウドを設定する前に、オーバークラウドに高可用性をデプロイして実行していることを確認してください。

1.1. 外部ロードバランサーに向けた環境の準備

外部ロードバランサー用に環境を準備するには、まずノード定義のテンプレートを作成し、空のノードを director に登録します。次に、すべてのノードのハードウェアを検査し、手動でノードをプロファイルにタグ付けします。

以下のワークフローを使用して、環境を準備します。

  • ノード定義のテンプレートを作成し、空のノードを Red Hat OpenStack Platform director に登録します。ノード定義のテンプレート instackenv.json は JSON ファイル形式で、ノードを登録するためのハードウェアおよび電源管理情報が含まれています。
  • 全ノードのハードウェアを検査します。これにより、すべてのノードが manageable の状態になります。
  • 手動でノードをプロファイルにタグ付けします。これらのプロファイルタグは、ノードをフレーバーに一致させます。その後、フレーバーはデプロイメントロールに割り当てられます。

手順

  1. director ホストに stack ユーザーとしてログインし、source コマンドで director の認証情報を読み込みます。

    $ source ~/stackrc
  2. ノード定義のテンプレート instackenv.json を作成し、以下のサンプルをコピーして実際の環境に応じて編集します。

    {
        "nodes":[
            {
                "mac":[
                    "bb:bb:bb:bb:bb:bb"
                ],
                "cpu":"4",
                "memory":"6144",
                "disk":"40",
                "arch":"x86_64",
                "pm_type":"ipmi",
                "pm_user":"admin",
                "pm_password":"p@55w0rd!",
                "pm_addr":"192.0.2.205"
            },
            {
                "mac":[
                    "cc:cc:cc:cc:cc:cc"
                ],
                "cpu":"4",
                "memory":"6144",
                "disk":"40",
                "arch":"x86_64",
                "pm_type":"ipmi",
                "pm_user":"admin",
                "pm_password":"p@55w0rd!",
                "pm_addr":"192.0.2.206"
            },
            {
                "mac":[
                    "dd:dd:dd:dd:dd:dd"
                ],
                "cpu":"4",
                "memory":"6144",
                "disk":"40",
                "arch":"x86_64",
                "pm_type":"ipmi",
                "pm_user":"admin",
                "pm_password":"p@55w0rd!",
                "pm_addr":"192.0.2.207"
            },
            {
                "mac":[
                    "ee:ee:ee:ee:ee:ee"
                ],
                "cpu":"4",
                "memory":"6144",
                "disk":"40",
                "arch":"x86_64",
                "pm_type":"ipmi",
                "pm_user":"admin",
                "pm_password":"p@55w0rd!",
                "pm_addr":"192.0.2.208"
            }
        ]
    }
  3. stack ユーザーのホームディレクトリーにファイルを保存し (/home/stack/instackenv.json)、director にインポートして director にノードを登録します。

    $ openstack overcloud node import ~/instackenv.json
  4. カーネルと ramdisk イメージを全ノードに割り当てます。

    $ openstack overcloud node configure
  5. 各ノードのハードウェア属性を検証します。

    $ openstack overcloud node introspect --all-manageable
    重要

    ノードは manageable の状態である必要があります。このプロセスを必ず完了させてください。ベアメタルノードの場合は、通常 15 分ほどかかります。

  6. ノードのリストを取得して UUID を特定します。

    $ openstack baremetal node list
  7. 各ノードの properties/capabilities パラメーターに profile オプションを追加して、各ノードを特定のプロファイルに手動でタグ付けします。たとえば、3 つのノードが Controller プロファイルを使用し、1 つのノードが Compute プロファイルを使用するようにタグ付けするには、以下のコマンドを使用します。

    $ openstack baremetal node set 1a4e30da-b6dc-499d-ba87-0bd8a3819bc0 --property capabilities='profile:control,boot_option:local'
    $ openstack baremetal node set 6faba1a9-e2d8-4b7c-95a2-c7fbdc12129a --property capabilities='profile:control,boot_option:local'
    $ openstack baremetal node set 5e3b2f50-fcd9-4404-b0a2-59d79924b38e --property capabilities='profile:control,boot_option:local'
    $ openstack baremetal node set 58c3d07e-24f2-48a7-bbb6-6843f0e8ee13 --property capabilities='profile:compute,boot_option:local'

    profile:compute および profile:control オプションは、ノードをそれぞれのプロファイルにタグ付けします。