Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

オーバークラウド向けの外部のロードバランシング

Red Hat OpenStack Platform 11

OpenStack Platform 環境で外部のロードバランサーを使用するための設定

OpenStack Documentation Team

概要

本ガイドでは、Red Hat OpenStack Platform 環境で外部のロードバランサーをオーバークラウド向けに使うための設定について説明します。これには、ロードバランサーの設定ガイドラインや Red Hat OpenStack Platform director を使用したオーバークラウドの設定が含まれます。

第1章 はじめに

Red Hat OpenStack Platform director は、オーバークラウド と呼ばれるクラウド環境を作成します。オーバークラウドには、異なる役割を果たす複数のノード種別が含まれます。これらのノード種別の中の 1 つに コントローラー ノードがあります。コントローラーは、オーバークラウドを管理する機能を果たし、特定の OpenStack コンポーネントを使用します。オーバークラウドは、複数のコントローラーをまとめて高可用性クラスターとして使用して、Openstack サービスの運用パフォーマンスが最大限となるようにします。また、このクラスターは、OpenStack サービスにアクセスするためのロードバランシング機能も提供し、コントローラーノードへのトラフィックを均等に分散して、各ノードのサーバーの過負荷を軽減します。

外部ロードバランサーを使用してこの分散を実行することも可能です。たとえば、組織は、独自のハードウェアベースのロードバランサーを使用してコントローラーノードへのトラフィックの分散を処理することができます。本ガイドでは、外部のロードバランサーの設定の定義とオーバークラウドの作成に役立つ必要な情報を提供します。これには、以下のプロセスを伴います。

  1. ロードバランサーのインストールと設定: 本ガイドでは、ロードバランシングとサービスの HAProxy オプションについて記載しています。設定値は、お使いの外部のロードバランサーに適した値に変更して適用してください。
  2. オーバークラウドの設定とデプロイ: 本ガイドには、オーバークラウドと外部のロードバランサーを統合するのに役立つ、Heat テンプレートのパラメーターを記載しています。これには、主としてロードバランサーおよびノードとして使用するマシンの IP アドレスが必要です。また、本ガイドには、オーバクラウドのデプロイメントを開始するためのコマンドと、外部のロードバランサーを使用するための設定も記載しています。

1.1. オーバークラウドでのロードバランシングの使用

オーバークラウドは、HAProxy と呼ばれるオープンソースのツールを使用します。HAProxy は、OpenStack サービスを実行するコントローラーノードのトラフィックの負荷を分散します。haproxy パッケージには、haproxy systemd サービスから起動される haproxy デーモンがロギング機能およびサンプル設定とともに含まれています。ただし、オーバークラウドは高可用性リソース管理機能 (Pacemaker) も使用して HAProxy 自体を高可用性のサービスとして管理します。そのため、HAProxy は各コントローラーノードで実行され、各設定に定義されているルールに従ってトラフィックを分散します。

1.2. シナリオ例の定義

本書では、一例として以下のシナリオを使用しています。

  • HAProxy を使用する外部のロードバランシングサーバー。フェデレーション対応の HAProxy サーバーの使用方法の実例を紹介しますこのサーバーの代わりにサポートされている他の外部のロードバランサーを使用することも可能です。
  • OpenStack Platform director ノード 1 台
  • オーバークラウドは、以下の要素で構成されます。
  • 高可用性クラスター内のコントローラーノード 3 台
  • コンピュートノード 1 台
  • VLAN を使用したネットワークの分離

このシナリオでは、各ネットワークに以下の IP アドレス割り当てを使用します。

  • 内部 API: 172.16.20.0/24
  • テナント: 172.16.22.0/24
  • ストレージ: 172.16.21.0/24
  • ストレージ管理: 172.16.19.0/24
  • 外部: 172.16.23.0/24

IP アドレスの範囲には、コントローラーノードに割り当てられる IP アドレスと、ロードバランサーが OpenStack サービスにバインディングするための仮想 IP アドレスが含まれます。

第2章 デフォルト設定の定義

外部のロードバランサーなしのオーバークラウドを作成/設定する際には、director は HAProxy が複数の OpenStack サービスにトラフィックを分散するように設定します。director はこの設定を各コントローラーノードの /etc/haproxy/haproxy.conf ファイルで提供します。デフォルトの設定には主に、グローバル、デフォルト、複数のサービスの 3 セクションがあります。

この後の数セクションでは、各設定セクションで使用されるデフォルトのパラメーターを考察します。これは、外部のロードバランサーの設定値の設定例を提供します。これらのパラメーターは、HAProxy の全パラーメーターの中のごく一部であることに注意してください。これらのパラメーターおよびその他のパラメーターについての詳しい情報はコントローラーノード (または haproxy パッケージがインストールされた任意のシステム) の /usr/share/doc/haproxy-*/configuration.txt にある、『HAProxy Configuration Manual』を参照してください。

2.1. グローバルの設定

global
  daemon
  group  haproxy
  log  /dev/log local0
  maxconn  10000
  pidfile  /var/run/haproxy.pid
  user  haproxy

このセクションでは、プロセス全体のパラメーターを定義します。これには、以下が含まれます。

  • daemon: バックグラウンドプロセスとして実行します。
  • user haproxygroup haproxy: プロセスを所有する Linux ユーザーとグループを定義します。
  • log: 使用する syslog サーバーを定義します。
  • maxconn: プロセスへの最大同時接続数を設定します。
  • pidfile: プロセス ID に使用するファイルを設定します。

2.2. デフォルトの設定

defaults
  log  global
  mode  tcp
  retries  3
  timeout  http-request 10s
  timeout  queue 1m
  timeout  connect 10s
  timeout  client 1m
  timeout  server 1m
  timeout  check 10s

このセクションでは、各サービスのデフォルトのパラメーターセットを設定します。これには、以下が含まれます。

  • log: サービスのログ記録を有効にします。global の値は、ロギング機能が global セクションの log パラメーターを使用することを意味します。
  • mode: 使用するプロトコルを設定します。この場合は、デフォルトは TCP です。
  • retries: 接続エラーと報告されるまでにサーバーで実行される再試行の回数を設定します。
  • timeout: 特定の機能の最大待ち時間を設定します。たとえば、timeout http-request は HTTP 要求が完了するまでの最大の待ち時間を設定します。

2.3. services の設定

listen ceilometer
  bind 172.16.20.250:8777
  bind 172.16.23.250:8777
  server overcloud-controller-0 172.16.20.150:8777 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8777 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8777 check fall 5 inter 2000 rise 2

デフォルトのファイルには、複数のサービスの設定セクションがあります。各サービスの設定には、以下が含まれます。

  • listen: 要求をリッスンするサービスの名前
  • bind: サービスがリッスンする IP アドレスと TCP ポートの番号
  • server: サービスを提供する各サーバーの名前、サーバーの IP アドレス、リッスンするポート、およびその他の情報

上記の例は、ceilometer サービスの HAProxy 設定を示しています。このサービスは、ceilometer サービスが提供される IP アドレスとポートを特定します (172.16.20.2500 および 172.16.23.250 上のポート 8777)。HAProxy は、これらのアドレスに対して送信された要求を overcloud-controller-0 (172.16.20.150:8777)、overcloud-controller-1 (172.16.20.151:8777)、overcloud-controller-2 (172.16.0.152:8777) のいずれかに転送します。

また、この例の server パラメーターにより、以下の設定が有効になります。

  • check: ヘルスチェックが有効になります。
  • fall 5: ヘルスチェックに 5 回失敗すると、サービスは停止中と見なされます。
  • inter 2000: ヘルスチェックの実行間隔が 2000 ミリ秒 (2 秒) に設定されます。
  • rise 2: ヘルスチェックに 2 回成功すると、サーバーは稼働中と見なされます。

各サービスは、異なるアドレスにバインディングして、異なるネットワークトラフィックの種別を表します。また、一部のサービスには、追加の設定オプションが含まれます。次の章では、各特定サービスの設定を考察して、それらの詳細をお使いの外部のロードバランサーで再現できるようにします。

第3章 サービス設定のリファレンス

本章では、ロードバランシングを使用するオーバークラウド内の各特定サービスの設定について概説します。この設定は、お使いの外部のロードバランサーを設定するための指針として利用してください。これらのパラメーターおよびその他のパラメーターについての詳しい説明は、コントローラーノード (または haproxy パッケージがインストールされた任意のシステム) の /usr/share/doc/haproxy-*/configuration.txt にある『HAProxy Configuration Manual』を参照してください。

注記

大半のサービスは、デフォルトのヘルスチェック設定を使用します。

  • ヘルスチェックの実行間隔が 2000 ミリ秒 (2 秒) に設定されます。
  • ヘルスチェックに 2 回成功すると、サーバーは稼働中と見なされます。
  • ヘルスチェックに 5 回失敗すると、サービスは停止中と見なされます。

各サービスは、デフォルトのヘルスチェックまたは追加のオプションを示すか、各サービスの Other information セクションに追加のオプションを示します。

3.1. aodh

ポート番号: 8042

バインド先: internal_api、external

ターゲットのネットワーク/サーバー: overcloud-controller-0、overcloud-controller-1、overcloud-controller-2 上の internal_api

その他の情報:

  • 各ターゲットサーバーは、デフォルトのヘルスチェックを使用します。

HAProxy の例:

listen aodh
  bind 172.16.20.250:8042
  bind 172.16.23.250:8042
  server overcloud-controller-0 172.16.20.150:8042 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8042 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8042 check fall 5 inter 2000 rise 2

3.2. ceilometer

ポート番号: 8777

バインド先: internal_api、external

ターゲットのネットワーク/サーバー: overcloud-controller-0、overcloud-controller-1、overcloud-controller-2 上の internal_api

その他の情報:

  • 各ターゲットサーバーは、デフォルトのヘルスチェックを使用します。

HAProxy の例:

listen ceilometer
  bind 172.16.20.250:8777
  bind 172.16.23.250:8777
  server overcloud-controller-0 172.16.20.150:8777 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8777 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8777 check fall 5 inter 2000 rise 2

3.3. cinder

ポート番号: 8776

バインド先: internal_api、external

ターゲットのネットワーク/サーバー: overcloud-controller-0、overcloud-controller-1、overcloud-controller-2 上の internal_api

その他の情報:

  • 各ターゲットサーバーは、デフォルトのヘルスチェックを使用します。

HAProxy の例:

listen cinder
  bind 172.16.20.250:8776
  bind 172.16.23.250:8776
  server overcloud-controller-0 172.16.20.150:8776 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8776 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8776 check fall 5 inter 2000 rise 2

3.4. glance_api

ポート番号: 9292

バインド先: storage、external

ターゲットのネットワーク/サーバー: overcloud-controller-0、overcloud-controller-1、overcloud-controller-2 上のストレージ

その他の情報:

  • 各ターゲットサーバーは、デフォルトのヘルスチェックを使用します。

HAProxy の例:

listen glance_api
  bind 172.16.23.250:9292
  bind 172.16.21.250:9292
  server overcloud-controller-0 172.16.21.150:9292 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.21.151:9292 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.21.152:9292 check fall 5 inter 2000 rise 2

3.5. glance_registry

ポート番号: 9191

バインド先: internal_api

ターゲットのネットワーク/サーバー: overcloud-controller-0、overcloud-controller-1、overcloud-controller-2 上の internal_api

その他の情報:

  • 各ターゲットサーバーは、デフォルトのヘルスチェックを使用します。

HAProxy の例:

listen glance_registry
  bind 172.16.20.250:9191
  server overcloud-controller-0 172.16.20.150:9191 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:9191 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:9191 check fall 5 inter 2000 rise 2

3.6. gnocchi

ポート番号: 8041

バインド先: internal_api、external

ターゲットのネットワーク/サーバー: overcloud-controller-0、overcloud-controller-1、overcloud-controller-2 上の internal_api

その他の情報:

  • 各ターゲットサーバーは、デフォルトのヘルスチェックを使用します。

HAProxy の例:

listen gnocchi
  bind 172.16.20.250:8041
  bind 172.16.23.250:8041
  server overcloud-controller-0 172.16.20.150:8041 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8041 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8041 check fall 5 inter 2000 rise 2

3.7. heat_api

ポート番号: 8004

バインド先: internal_api、external

ターゲットのネットワーク/サーバー: overcloud-controller-0、overcloud-controller-1、overcloud-controller-2 上の internal_api

その他の情報:

  • 各ターゲットサーバーは、デフォルトのヘルスチェックを使用します。
  • このサービスは、デフォルトの TCP モードの代わりに HTTP モードを使用します。

HAProxy の例:

listen heat_api
  bind 172.16.20.250:8004
  bind 172.16.23.250:8004
  mode http
  server overcloud-controller-0 172.16.20.150:8004 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8004 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8004 check fall 5 inter 2000 rise 2

3.8. heat_cfn

ポート番号: 8000

バインド先: internal_api、external

ターゲットのネットワーク/サーバー: overcloud-controller-0、overcloud-controller-1、overcloud-controller-2 上の internal_api

その他の情報:

  • 各ターゲットサーバーは、デフォルトのヘルスチェックを使用します。

HAProxy の例:

listen heat_cfn
  bind 172.16.20.250:8000
  bind 172.16.23.250:8000
  server overcloud-controller-0 172.16.20.150:8000 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.152:8000 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.151:8000 check fall 5 inter 2000 rise 2

3.9. heat_cloudwatch

ポート番号: 8003

バインド先: internal_api、external

ターゲットのネットワーク/サーバー: overcloud-controller-0、overcloud-controller-1、overcloud-controller-2 上の internal_api

その他の情報:

  • 各ターゲットサーバーは、デフォルトのヘルスチェックを使用します。

HAProxy の例:

listen heat_cloudwatch
  bind 172.16.20.250:8003
  bind 172.16.23.250:8003
  server overcloud-controller-0 172.16.20.150:8003 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8003 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8003 check fall 5 inter 2000 rise 2

3.10. horizon

ポート番号: 80

バインド先: internal_api、external

ターゲットのネットワーク/サーバー: overcloud-controller-0、overcloud-controller-1、overcloud-controller-2 上の internal_api

その他の情報:

  • 各ターゲットサーバーは、デフォルトのヘルスチェックを使用します。
  • このサービスは、デフォルトの TCP モードの代わりに HTTP モードを使用します。
  • このサービスは、UI との対話に Cookie によるパーシステンスを使用します。

HAProxy の例:

listen horizon
  bind 172.16.20.250:80
  bind 172.16.23.250:80
  mode http
  cookie SERVERID insert indirect nocache
  server overcloud-controller-0 172.16.20.150:80 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:80 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:80 check fall 5 inter 2000 rise 2

3.11. keystone_admin

ポート番号: 35357

バインド先: internal_api、external

ターゲットのネットワーク/サーバー: overcloud-controller-0、overcloud-controller-1、overcloud-controller-2 上の internal_api

その他の情報:

  • 各ターゲットサーバーは、デフォルトのヘルスチェックを使用します。

HAProxy の例:

listen keystone_admin
  bind 172.16.23.250:35357
  bind 172.16.20.250:35357
  server overcloud-controller-0 172.16.20.150:35357 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:35357 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:35357 check fall 5 inter 2000 rise 2

3.12. keystone_admin_ssh

ポート番号: 22

バインド先: internal_api

ターゲットのネットワーク/サーバー: overcloud-controller-0、overcloud-controller-1、overcloud-controller-2 上の internal_api

その他の情報:

  • 各ターゲットサーバーは、デフォルトのヘルスチェックを使用します。

HAProxy の例:

listen keystone_admin_ssh
  bind 172.16.20.250:22
  server overcloud-controller-0 172.16.20.150:22 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:22 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:22 check fall 5 inter 2000 rise 2

3.13. keystone_public

ポート番号: 5000

バインド先: internal_api、external

ターゲットのネットワーク/サーバー: overcloud-controller-0、overcloud-controller-1、overcloud-controller-2 上の internal_api

その他の情報:

  • 各ターゲットサーバーは、デフォルトのヘルスチェックを使用します。

HAProxy の例:

listen keystone_public
  bind 172.16.20.250:5000
  bind 172.16.23.250:5000
  server overcloud-controller-0 172.16.20.150:5000 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:5000 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:5000 check fall 5 inter 2000 rise 2

3.14. mysql

ポート番号: 3306

バインド先: internal_api

ターゲットのネットワーク/サーバー: overcloud-controller-0、overcloud-controller-1、overcloud-controller-2 上の internal_api

その他の情報:

  • 各ターゲットサーバーは、デフォルトのヘルスチェックを使用します。ただし、ヘルスチェックにはポート 9200 を使用します。
  • このサービスは、一度に 1 サーバーに対してのみに負荷分散されます。
  • バックアップ用でないサーバーが利用できない場合には、各サーバーはロードバランシングのみに使用されます。
  • サーバーのステータスが down の場合には、全接続が直ちに切断されます。
  • TCP キープアライブパケットの送信を両側で有効にします。
  • サーバーの正常性をチェックする HTTP プロトコルを有効にします。
  • IP アドレスを保管するスティッキネステーブルを設定します。これは、パーシステンスの維持に役立ちます。
重要

mysql サービスは、Galera を使用して高可用性のデータベースクラスターを提供します。Galera は active/active 構成をサポートしますが、ロックの競合を回避するためにロードバランサーによって有効化される active/passive 構成を使用することを推奨します。

HAProxy の例:

listen mysql
  bind 172.16.20.250:3306
  option tcpka
  option httpchk
  stick on dst
  stick-table type ip size 1000
  timeout client 0
  timeout server 0
  server overcloud-controller-0 172.16.20.150:3306 backup check fall 5 inter 2000 on-marked-down shutdown-sessions port 9200 rise 2
  server overcloud-controller-1 172.16.20.151:3306 backup check fall 5 inter 2000 on-marked-down shutdown-sessions port 9200 rise 2
  server overcloud-controller-2 172.16.20.152:3306 backup check fall 5 inter 2000 on-marked-down shutdown-sessions port 9200 rise 2

3.15. neutron

ポート番号: 9696

バインド先: internal_api、external

ターゲットのネットワーク/サーバー: overcloud-controller-0、overcloud-controller-1、overcloud-controller-2 上の internal_api

その他の情報:

  • 各ターゲットサーバーは、デフォルトのヘルスチェックを使用します。

HAProxy の例:

listen neutron
  bind 172.16.20.250:9696
  bind 172.16.23.250:9696
  server overcloud-controller-0 172.16.20.150:9696 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:9696 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:9696 check fall 5 inter 2000 rise 2

3.16. nova_ec2

ポート番号: 8773

バインド先: internal_api、external

ターゲットのネットワーク/サーバー: overcloud-controller-0、overcloud-controller-1、overcloud-controller-2 上の internal_api

その他の情報:

  • 各ターゲットサーバーは、デフォルトのヘルスチェックを使用します。

HAProxy の例:

listen nova_ec2
  bind 172.16.20.250:8773
  bind 172.16.23.250:8773
  server overcloud-controller-0 172.16.20.150:8773 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8773 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8773 check fall 5 inter 2000 rise 2

3.17. nova_metadata

ポート番号: 8775

バインド先: internal_api

ターゲットのネットワーク/サーバー: overcloud-controller-0、overcloud-controller-1、overcloud-controller-2 上の internal_api

その他の情報:

  • 各ターゲットサーバーは、デフォルトのヘルスチェックを使用します。

HAProxy の例:

listen nova_metadata
  bind 172.16.20.250:8775
  server overcloud-controller-0 172.16.20.150:8775 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8775 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8775 check fall 5 inter 2000 rise 2

3.18. nova_novncproxy

ポート番号: 6080

バインド先: internal_api、external

ターゲットのネットワーク/サーバー: overcloud-controller-0、overcloud-controller-1、overcloud-controller-2 上の internal_api

その他の情報:

  • 各ターゲットサーバーは、デフォルトのヘルスチェックを使用します。
  • デフォルトの分散メソッドはラウンドロビン式ですが、このサービスには、ソース メソッドを使用します。このメソッドは、ソース IP アドレスをハッシュ化し、実行中のサーバーの加重値の和で除算します。これにより、要求を受信するサーバーを指定します。こうすることでサーバーが down または up のステータスに切り替わらない限りは、確実に同じクライアント IP アドレスが常に同じサーバーに到達するようにします。ハッシュ化により実行中のサーバーの数に変更があった場合には、バランサーは多数のクライアントを別のサーバーにリダイレクトします。

HAProxy の例:

listen nova_novncproxy
  bind 172.16.20.250:6080
  bind 172.16.23.250:6080
  balance source
  server overcloud-controller-0 172.16.20.150:6080 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:6080 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:6080 check fall 5 inter 2000 rise 2

3.19. nova_osapi

ポート番号: 8774

バインド先: internal_api、external

ターゲットのネットワーク/サーバー: overcloud-controller-0、overcloud-controller-1、overcloud-controller-2 上の internal_api

その他の情報:

  • 各ターゲットサーバーは、デフォルトのヘルスチェックを使用します。

HAProxy の例:

listen nova_osapi
  bind 172.16.20.250:8774
  bind 172.16.23.250:8774
  server overcloud-controller-0 172.16.20.150:8774 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8774 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8774 check fall 5 inter 2000 rise 2

3.20. nova_placement

ポート番号: 8778

バインド先: internal_api、external

ターゲットのネットワーク/サーバー: overcloud-controller-0、overcloud-controller-1、overcloud-controller-2 上の internal_api

その他の情報:

  • 各ターゲットサーバーは、デフォルトのヘルスチェックを使用します。

HAProxy の例:

listen nova_osapi
  bind 172.16.20.250:8778
  bind 172.16.23.250:8778
  server overcloud-controller-0 172.16.20.150:8778 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8778 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8778 check fall 5 inter 2000 rise 2

3.21. panko

ポート番号: 8779

バインド先: internal_api、external

ターゲットのネットワーク/サーバー: overcloud-controller-0、overcloud-controller-1、overcloud-controller-2 上の internal_api

その他の情報:

  • 各ターゲットサーバーは、デフォルトのヘルスチェックを使用します。

HAProxy の例:

listen nova_osapi
  bind 172.16.20.250:8779
  bind 172.16.23.250:8779
  server overcloud-controller-0 172.16.20.150:8779 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8779 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8779 check fall 5 inter 2000 rise 2

3.22. redis

ポート番号: 6379

バインド先: internal_api (redis サービスの IP)

ターゲットのネットワーク/サーバー: overcloud-controller-0、overcloud-controller-1、overcloud-controller-2 上の internal_api

その他の情報:

  • 各ターゲットサーバーは、デフォルトのヘルスチェックを使用します。
  • tcp-check send/expect シーケンスを使用してヘルスチェックを実行します。送信す文字列は「info\ replication\r\n」、応答は「role:master」です。
  • Redis サービスは、認証にパスワードを使用します。たとえば、HAProxy 設定には、tcp-checkAUTH メソッドと Redis の管理パスワードを使用します。director は、通常無作為なパスワードを生成しますが、カスタムの Redis パスワードを定義することもできます。詳しくは、「ロードバランシングのオプションの設定」 を参照してください。
  • デフォルトのバランシングメソッドは、ラウンドロビン式ですが、このサービスには、first メソッドを使用します。この方法では、利用可能な接続スロットのある最初のサーバーが接続を受けます。

HAProxy の例:

listen redis
  bind 172.16.20.249:6379 transparent
  balance first
  option tcp-check
  tcp-check send AUTH\ p@55w0rd!\r\n
  tcp-check send PING\r\n
  tcp-check expect string +PONG
  tcp-check send info\ replication\r\n
  tcp-check expect string role:master
  tcp-check send QUIT\r\n
  tcp-check expect string +OK
  server overcloud-controller-0 172.16.20.150:6379 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:6379 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:6379 check fall 5 inter 2000 rise 2

3.23. sahara

ポート番号: 8386

バインド先: internal_api、external

ターゲットのネットワーク/サーバー: overcloud-controller-0、overcloud-controller-1、overcloud-controller-2 上の internal_api

その他の情報:

  • 各ターゲットサーバーは、デフォルトのヘルスチェックを使用します。
  • このサービスは、オプションのオーバークラウドサービスです。インストールするには、オーバークラウドのデプロイメントに environments/services/sahara.yaml 環境ファイルを追加してください。

HAProxy の例:

listen sahara
  bind 172.16.20.250:8386
  bind 172.16.23.250:8386
  server overcloud-controller-0 172.16.20.150:8386 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8386 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8386 check fall 5 inter 2000 rise 2

3.24. swift_proxy_server

ポート番号: 8080

バインド先: storage、external

ターゲットのネットワーク/サーバー: overcloud-controller-0、overcloud-controller-1、overcloud-controller-2 上のストレージ

その他の情報:

  • 各ターゲットサーバーは、デフォルトのヘルスチェックを使用します。

HAProxy の例:

listen swift_proxy_server
  bind 172.16.23.250:8080
  bind 172.16.21.250:8080
  server overcloud-controller-0 172.16.21.150:8080 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.21.151:8080 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.21.152:8080 check fall 5 inter 2000 rise 2

第4章 オーバークラウドの設定

本項では、外部のロードバランサーを使用するオーバークラウドを作成するプロセスを順を追って説明します。これには、ノードの登録、ネットワークの設定、オーバークラウドの作成コマンドに必要な設定オプションが含まれます。

4.1. 環境の設定

このセクションでは、『Red Hat OpenStack Platform 11 director のインストールと使用方法』ガイドからプロセスを抜粋しています。

以下のワークフローを使用して環境を設定します。

  • ノード定義のテンプレートを作成して director で空のノードを登録します。
  • 全ノードのハードウェアを検査します。
  • 手動でロールにノードをタグ付けします。
  • フレーバーを作成してロールにタグ付けします。

4.1.1. stack ユーザーの初期化

stack ユーザーとして director ホストにログインし、以下のコマンドを実行して director の設定を初期化します。

$ source ~/stackrc

このコマンドでは、director の CLI ツールにアクセスする認証情報が含まれる環境変数を設定します。

4.1.2. ノードの登録

ノード定義のテンプレート (instackenv.json) は JSON ファイル形式で、ノード登録用のハードウェアおよび電源管理の情報が含まれています。以下に例を示します。

{
    "nodes":[
        {
            "mac":[
                "bb:bb:bb:bb:bb:bb"
            ],
            "cpu":"4",
            "memory":"6144",
            "disk":"40",
            "arch":"x86_64",
            "pm_type":"pxe_ipmitool",
            "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":"pxe_ipmitool",
            "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":"pxe_ipmitool",
            "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":"pxe_ipmitool",
            "pm_user":"admin",
            "pm_password":"p@55w0rd!",
            "pm_addr":"192.0.2.208"
        }
    ]
}

テンプレートの作成後に、stack ユーザーのホームディレクトリー (/home/stack/instackenv.json) にファイルを保存してから、director にインポートします。これには、以下のコマンドを実行します。

$ openstack baremetal import --json ~/instackenv.json

このコマンドでテンプレートをインポートして、テンプレートから director に各ノードを登録します。

カーネルと ramdisk イメージを全ノードに割り当てます。

$ openstack baremetal configure boot

director でのノードの登録、設定が完了しました。

4.1.3. ノードのハードウェアの検査

ノードの登録後には、各ノードのハードウェア属性を検査します。各ノードのハードウェア属性を検査するには、以下のコマンドを実行します。

$ openstack baremetal introspection bulk start
重要

このプロセスが最後まで実行されて正常に終了したことを確認してください。ベアメタルの場合には、通常 15 分ほどかかります。

4.1.4. ノードの手動でのタグ付け

各ノードのハードウェアを登録、検査した後には、特定のプロファイルにノードをタグ付けします。これらのプロファイルタグによりノードとフレーバーが照合され、フレーバーがデプロイメントロールに割り当てられます。

ノード一覧を取得して UUID を識別します。

$ ironic node-list

特定のプロファイルにノードを手動でタグ付けする場合には、各ノードの properties/capabilities パラメーターに profile オプションを追加します。たとえば、2 台のノードをタグ付けしてコントローラープロファイルとコンピュートプロファイルをそれぞれ使用するには、以下のコマンドを実行します。

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

profile:computeprofile:control オプションを追加することで、この 2 つのノードがそれぞれのプロファイルにタグ付けされます。

4.2. ネットワークの設定

本項では、オーバークラウドのネットワーク設定について考察します。これには、特定のネットワークトラフィックを使用するようにサービスを分離し、ロードバランシングオプションでオーバークラウドを設定する手順が含まれます。

4.2.1. ネットワークの分離

director は、分離されたオーバークラウドネットワークを設定する方法を提供します。つまり、オーバークラウド環境はネットワークトラフィック種別を異なるネットワークに分離して、個別のネットワークインターフェースまたはボンディングにネットワークトラフィックを割り当てます。分離されたネットワークを設定した後に、director は、OpenStack サービスが分離されたネットワークを使用するように設定します。分離されたネットワークが設定されていない場合には、サービスはすべて、プロビジョニングネットワーク上で実行されます。

まず最初に、オーバークラウドには、ネットワークインターフェースのテンプレートセットが必要です。これらのテンプレートをカスタマイズして、ロールごとにノードのインターフェースを設定します。このテンプレートは YAML 形式の標準の Heat テンプレートです。director にはテンプレートサンプルが含まれているので、すぐに使用を開始することができます。

  • /usr/share/openstack-tripleo-heat-templates/network/config/single-nic-vlans: このディレクトリーには、ロールごとに VLAN が設定された単一 NIC のテンプレートが含まれます。
  • /usr/share/openstack-tripleo-heat-templates/network/config/bond-with-vlans: ディレクトリーには、ロールごとにボンディングされた NIC の設定用のテンプレートが格納されます。

ネットワークインターフェースの設定に関する詳細は、『Red Hat OpenStack Platform 11 director のインストールと使用方法』ガイドを参照してください。

次に、ネットワーク環境ファイルを作成します。このファイルは、Heat の環境ファイルで、オーバークラウドのネットワーク環境を記述し、前のセクションのネットワークインターフェース設定テンプレートを参照します。また、IP アドレス範囲と合わせてネットワークのサブネットおよび VLAN を定義します。これらの値をローカルの環境用にカスタマイズします。

このシナリオでは、/home/stack/network-environment.yaml として保存した下記のネットワーク環境ファイルを使用します。

resource_registry:
  OS::TripleO::BlockStorage::Net::SoftwareConfig: /home/stack/templates/my-overcloud/network/config/bond-with-vlans/cinder-storage.yaml
  OS::TripleO::Compute::Net::SoftwareConfig: /home/stack/templates/my-overcloud/network/config/bond-with-vlans/compute.yaml
  OS::TripleO::Controller::Net::SoftwareConfig: /home/stack/templates/my-overcloud/network/config/bond-with-vlans/controller.yaml
  OS::TripleO::ObjectStorage::Net::SoftwareConfig: /home/stack/templates/my-overcloud/network/config/bond-with-vlans/swift-storage.yaml
  OS::TripleO::CephStorage::Net::SoftwareConfig: /home/stack/templates/my-overcloud/network/config/bond-with-vlans/ceph-storage.yaml

parameter_defaults:
  InternalApiNetCidr: 172.16.20.0/24
  TenantNetCidr: - 172.16.22.0/24
  StorageNetCidr: 172.16.21.0/24
  StorageMgmtNetCidr: 172.16.19.0/24
  ExternalNetCidr: 172.16.23.0/24
  InternalApiAllocationPools: [{'start': '172.16.20.10', 'end': '172.16.20.200'}]
  TenantAllocationPools: [{'start': '172.16.22.10', 'end': '172.16.22.200'}]
  StorageAllocationPools: [{'start': '172.16.21.10', 'end': '172.16.21.200'}]
  StorageMgmtAllocationPools: [{'start': '172.16.19.10', 'end': '172.16.19.200'}]
  # Leave room for floating IPs in the External allocation pool
  ExternalAllocationPools: [{'start': '172.16.23.10', 'end': '172.16.23.60'}]
  # Set to the router gateway on the external network
  ExternalInterfaceDefaultRoute: 172.16.23.1
  # Gateway router for the provisioning network (or Undercloud IP)
  ControlPlaneDefaultRoute: 192.0.2.254
  # The IP address of the EC2 metadata server. Generally the IP of the Undercloud
  EC2MetadataIp: 192.0.2.1
  # Define the DNS servers (maximum 2) for the overcloud nodes
  DnsServers: ["8.8.8.8","8.8.4.4"]
  InternalApiNetworkVlanID: 201
  StorageNetworkVlanID: 202
  StorageMgmtNetworkVlanID: 203
  TenantNetworkVlanID: 204
  ExternalNetworkVlanID: 100
  # Set to "br-ex" if using floating IPs on native VLAN on bridge br-ex
  NeutronExternalNetworkBridge: "''"
  # Customize bonding options if required
  BondInterfaceOvsOptions:
    "bond_mode=balance-tcp lacp=active other-config:lacp-fallback-ab=true"

ネットワーク環境の設定に関する詳細は、『Red Hat OpenStack Platform 11 director のインストールと使用方法』ガイドを参照してください。

director のホストが keystone_admin_ssh の仮想 IP に接続できるように、内部の API ネットワークにアクセスできることを確認してください。

4.2.2. ロードバランシングのオプションの設定

director は、HAProxy が内部で管理する代わりに、外部のロードバランサーが仮想 IP をホストするように設定されたオーバークラウドを作成することができます。この構成では、オーバークラウドのデプロイメントを開始する前に、外部のロードバランサーで、分離されたネットワーク 1 つにつき仮想 IP が 1 つと、Redis サービス用に 1 つ設定済みであることを前提とします。オーバークラウドノードの NIC の設定で許可されている場合には、全く同じ仮想 IP を使用することができます。

外部のロードバランサーは、前章の設定を使用して構成が済んでいます。これらの設定には、director がオーバークラウドノードに割り当て、サービスの設定に使用する IP が含まれます。

以下は、Heat 環境ファイル (external-lb.yaml) の例です。これには、外部のロードバランサーが使用するためのオーバークラウドの設定が含まれます。

parameter_defaults:
  ControlFixedIPs: [{'ip_address':'192.0.2.250'}]
  PublicVirtualFixedIPs: [{'ip_address':'172.16.23.250'}]
  InternalApiVirtualFixedIPs: [{'ip_address':'172.16.20.250'}]
  StorageVirtualFixedIPs: [{'ip_address':'172.16.21.250'}]
  StorageMgmtVirtualFixedIPs: [{'ip_address':'172.16.19.250'}]
  RedisVirtualFixedIPs: [{'ip_address':'172.16.20.249'}]
  # IPs assignments for the Overcloud Controller nodes. Ensure these IPs are from each respective allocation pools defined in the network environment file.
  ControllerIPs:
    external:
    - 172.16.23.150
    - 172.16.23.151
    - 172.16.23.152
    internal_api:
    - 172.16.20.150
    - 172.16.20.151
    - 172.16.20.152
    storage:
    - 172.16.21.150
    - 172.16.21.151
    - 172.16.21.152
    storage_mgmt:
    - 172.16.19.150
    - 172.16.19.151
    - 172.16.19.152
    tenant:
    - 172.16.22.150
    - 172.16.22.151
    - 172.16.22.152
    # CIDRs
    external_cidr: "24"
    internal_api_cidr: "24"
    storage_cidr: "24"
    storage_mgmt_cidr: "24"
    tenant_cidr: "24"
  RedisPassword: p@55w0rd!
  ServiceNetMap:
    NeutronTenantNetwork: tenant
    CeilometerApiNetwork: internal_api
    AodhApiNetwork: internal_api
    GnocchiApiNetwork: internal_api
    MongoDbNetwork: internal_api
    CinderApiNetwork: internal_api
    CinderIscsiNetwork: storage
    GlanceApiNetwork: storage
    GlanceRegistryNetwork: internal_api
    KeystoneAdminApiNetwork: internal_api
    KeystonePublicApiNetwork: internal_api
    NeutronApiNetwork: internal_api
    HeatApiNetwork: internal_api
    NovaApiNetwork: internal_api
    NovaMetadataNetwork: internal_api
    NovaVncProxyNetwork: internal_api
    SwiftMgmtNetwork: storage_mgmt
    SwiftProxyNetwork: storage
    HorizonNetwork: internal_api
    MemcachedNetwork: internal_api
    RabbitMqNetwork: internal_api
    RedisNetwork: internal_api
    MysqlNetwork: internal_api
    CephClusterNetwork: storage_mgmt
    CephPublicNetwork: storage
    ControllerHostnameResolveNetwork: internal_api
    ComputeHostnameResolveNetwork: internal_api
    BlockStorageHostnameResolveNetwork: internal_api
    ObjectStorageHostnameResolveNetwork: internal_api
    CephStorageHostnameResolveNetwork: storage

parameter_defaults セクションには、OpenStack 上の各ネットワークの 仮想 IP と IP の割り当てが含まれます。これらの設定は、ロードバランサー上の各サービスの IP 設定と一致する必要があります。このセクションでは、Redis サービスの管理パスワード (RedisPassword) も定義します。また、このセクションには、OpenStack の各サービスを特定のネットワークにマッピングする ServiceNetMap パラメーターも含まれます。ロードバランシングの設定には、このサービスを再マッピングする必要があります。

4.3. ロードバランシング向けの SSL 設定

デフォルトでは、オーバークラウドはサービスに対して暗号化されていないエンドポイントを使用します。これは、オーバークラウドの設定には、パブリック API エンドポイントの SSL/TLS を有効化するために追加の環境ファイルが必要という意味です。

注記

外部のロードバランサーに、インストール済みの SSL 証明書と鍵のコピーがあることを確認します。

Heat テンプレートコレクションから enable-tls.yaml の環境ファイルをコピーします。

$ cp -r /usr/share/openstack-tripleo-heat-templates/environments/enable-tls.yaml ~/templates/.

ファイルを編集して、以下のステップを実行します。

  • parameter_defaultsセクションから SSLCertificateSSLIntermediateCertificateSSLKey を削除します。
  • resource_registry セクションを完全に削除します。
  • これで、parameter_defaults には、EndpointMap パラメーターのみが残るはずです。EndpointMap には、HTTPS および HTTP の通信を使用するサービスのマッピングが含まれます。SSL 通信に DNS を使用する場合には、このセクションはデフォルトのままにしますが、SSL 証明書の共通名に IP アドレスを使用する場合には、CLOUDNAME をすべて IP_ADDRESS に置き換えます。このステップを実行するには、以下のコマンドを使用します。

    $ sed -i 's/CLOUDNAME/IP_ADDRESS/' ~/templates/enable-tls.yaml
    重要

    IP_ADDRESS または CLOUDNAME は、実際の値に置き換えないでください。Heat により、オーバークラウドの作成時にこれらの変数が適切な値に置き換えられます。

自己署名証明書を使用する場合または、証明書の署名者がオーバークラウドのイメージにあるデフォルトのトラストストアに含まれない場合には、証明書をオーバークラウドのイメージに注入します。Heat テンプレートコレクションから inject-trust-anchor.yaml 環境ファイルをコピーします。

$ cp -r /usr/share/openstack-tripleo-heat-templates/environments/inject-trust-anchor.yaml ~/templates/.

このファイルを編集して、下記のパラメーターに以下の変更を加えます。

SSLRootCertificate

SSLRootCertificate パラメーターにルート認証局ファイルの内容をコピーします。以下に例を示します。

parameter_defaults:
  SSLRootCertificate: |
  -----BEGIN CERTIFICATE-----
  MIIDgzCCAmugAwIBAgIJAKk46qw6ncJaMA0GCSqGSIb3DQEBCwUAMFgxCzAJBgNV
  ...
  sFW3S2roS4X0Af/kSSD8mlBBTFTCMBAj6rtLBKLaQbIxEpIzrgvp
  -----END CERTIFICATE-----
重要

この認証局のコンテンツで、新しく追加する行は、すべて同じレベルにインデントする必要があります。

OS::TripleO::NodeTLSCAData

OS::TripleO::NodeTLSCAData: のリソース URL を絶対 URL に変更します。

resource_registry:
     OS::TripleO::NodeTLSCAData: /usr/share/openstack-tripleo-heat-templates/puppet/extraconfig/tls/ca-inject.yaml

DNS ホスト名を使用して SSL/TLS でオーバークラウドにアクセスする場合は、新しい環境ファイル (~/templates/cloudname.yaml) を作成して、オーバークラウドのエンドポイントのホスト名を定義します。以下のパラメーターを使用してください。

CloudName
オーバークラウドエンドポイントの DNS ホスト名
DnsServers
使用する DNS サーバー一覧。設定済みの DNS サーバーには、パブリック API の IP アドレスに一致する設定済みの CloudName へのエントリーが含まれていなければなりません。

このファイルの内容の例は以下のとおりです。

parameter_defaults:
 CloudName: overcloud.example.com
 DnsServers: 10.0.0.1

「オーバークラウドの作成」に記載のデプロイメントのコマンド (openstack overcloud deploy) は、-e オプションを使用して環境ファイルを追加します。以下の順番にこのセクションから環境ファイルを追加します。

  • SSL/TLS を有効化する環境ファイル (enable-tls.yaml)
  • DNS ホスト名を設定する環境ファイル (cloudname.yaml)
  • ルート認証局を注入する環境ファイル (inject-trust-anchor.yaml)

$ openstack overcloud deploy --templates [...] -e /home/stack/templates/enable-tls.yaml -e ~/templates/cloudname.yaml -e ~/templates/inject-trust-anchor.yaml

4.4. オーバークラウドの作成

外部のロードバランサーを使用するオーバークラウドを作成するには、openstack overcloud deploy コマンドに追加の引数を指定する必要があります。以下に例を示します。

$ openstack overcloud deploy --templates -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml -e ~/network-environment.yaml  -e /usr/share/openstack-tripleo-heat-templates/environments/external-loadbalancer-vip.yaml -e ~/external-lb.yaml --control-scale 3 --compute-scale 1 --control-flavor control --compute-flavor compute [ADDITIONAL OPTIONS]

上記のコマンドは、以下のオプションを使用します。

  • --templates: デフォルトの Heat テンプレートコレクションからオーバークラウドを作成します。
  • -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml: オーバークラウドデプロイメントに別の環境ファイルを追加します。この場合は、リソースのネットワーク分離の設定を初期化する環境ファイルです。
  • -e ~/network-environment.yaml: オーバークラウドデプロイメントに追加の環境ファイルを追加します。この場合は、以前に作成したネットワーク環境ファイルです。
  • -e /usr/share/openstack-tripleo-heat-templates/environments/external-loadbalancer-vip.yaml: オーバークラウドデプロイメントに追加の環境ファイルを追加します。この場合は、外部のロードバランシング設定を初期化する環境ファイルです。この環境ファイルは、ネットワーク設定ファイルの後に追加する必要がある点に注意してください。
  • -e ~/external-lb.yaml: オーバークラウドデプロイメントに追加の環境ファイルを追加します。この場合は、外部のロードバランサー設定が記載された環境ファイルです。この環境ファイルは、ネットワーク設定ファイルの後に追加する必要がある点に注意してください。
  • --control-scale 3: コントローラーノードを 3 つにスケーリングします。
  • --compute-scale 3: コンピュートノードを 3 つにスケーリングします。
  • --control-flavor control: コントローラーノードに特定のフレーバーを使用します。
  • --compute-flavor compute: コンピュートノードに特定のフレーバーを使用します。
注記

オプションの完全な一覧を表示するには、以下のコマンドを実行します。

$ openstack help overcloud deploy

パラメーターの例については、『Red Hat OpenStack Platform 11 director インストールと使用方法』ガイドを参照してください。

オーバークラウドの作成プロセスが開始され、director によりノードがプロビジョニングされます。このプロセスは完了するまで多少時間がかかります。オーバークラウドの作成のステータスを確認するには、stack ユーザーとして別のターミナルを開き、以下を実行します。

$ source ~/stackrc
$ heat stack-list --show-nested

4.5. オーバークラウドへのアクセス

director は、director ホストからオーバークラウドに対話するための設定を行い、認証をサポートするスクリプトを作成して、stack ユーザーのホームディレクトリーにこのファイル (overcloudrc) を保存します。このファイルを使用するには、以下のコマンドを実行します。

$ source ~/overcloudrc

これで、director のホストの CLI からオーバークラウドと対話するために必要な環境変数が読み込まれます。director のホストとの対話に戻るには、以下のコマンドを実行します。

$ source ~/stackrc

4.6. オーバークラウドの設定の完了

これで、高度なオーバークラウドの作成が終了しました。

高可用性クラスターのフェンシングに関する情報は、『Red Hat OpenStack Platform 11 director のインストールと使用方法』ガイドを参照してください。

作成後の機能に関する情報は、『Red Hat OpenStack Platform 11 director のインストールと使用方法』ガイドを参照してください。

付録A デフォルトの HAProxy 設定の例

以下は、オーバークラウドのコントローラーノード上の HAProxy 用のデフォルトの設定ファイルの例です。このファイルは、各コントローラーノード上の /etc/haproxy/haproxy.conf にあります。

global
  daemon
  group  haproxy
  log  /dev/log local0
  maxconn  10000
  pidfile  /var/run/haproxy.pid
  user  haproxy

defaults
  log  global
  mode  tcp
  retries  3
  timeout  http-request 10s
  timeout  queue 1m
  timeout  connect 10s
  timeout  client 1m
  timeout  server 1m
  timeout  check 10s

listen aodh
  bind 172.16.20.250:8042
  bind 172.16.20.250:8042
  mode http
  server overcloud-controller-0 172.16.20.150:8042 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8042 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.252:8042 check fall 5 inter 2000 rise 2

listen ceilometer
  bind 172.16.20.250:8777
  bind 172.16.23.250:8777
  server overcloud-controller-0 172.16.20.150:8777 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8777 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8777 check fall 5 inter 2000 rise 2

listen cinder
  bind 172.16.20.250:8776
  bind 172.16.23.250:8776
  server overcloud-controller-0 172.16.20.150:8776 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8776 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8776 check fall 5 inter 2000 rise 2

listen glance_api
  bind 172.16.23.250:9292
  bind 172.16.21.250:9292
  server overcloud-controller-0 172.16.21.150:9292 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.21.151:9292 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.21.152:9292 check fall 5 inter 2000 rise 2

listen glance_registry
  bind 172.16.20.250:9191
  server overcloud-controller-0 172.16.20.150:9191 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:9191 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:9191 check fall 5 inter 2000 rise 2

listen gnocchi
  bind 172.16.23.250:8041
  bind 172.16.21.250:8041
  mode http
  server overcloud-controller-0 172.16.20.150:8041 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8041 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8041 check fall 5 inter 2000 rise 2

listen heat_api
  bind 172.16.20.250:8004
  bind 172.16.23.250:8004
  mode http
  server overcloud-controller-0 172.16.20.150:8004 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8004 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8004 check fall 5 inter 2000 rise 2

listen heat_cfn
  bind 172.16.20.250:8000
  bind 172.16.23.250:8000
  server overcloud-controller-0 172.16.20.150:8000 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.152:8000 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.151:8000 check fall 5 inter 2000 rise 2

listen heat_cloudwatch
  bind 172.16.20.250:8003
  bind 172.16.23.250:8003
  server overcloud-controller-0 172.16.20.150:8003 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8003 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8003 check fall 5 inter 2000 rise 2

listen horizon
  bind 172.16.20.250:80
  bind 172.16.23.250:80
  mode http
  cookie SERVERID insert indirect nocache
  server overcloud-controller-0 172.16.20.150:80 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:80 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:80 check fall 5 inter 2000 rise 2

listen keystone_admin
  bind 172.16.23.250:35357
  bind 172.16.20.250:35357
  server overcloud-controller-0 172.16.20.150:35357 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:35357 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:35357 check fall 5 inter 2000 rise 2

listen keystone_admin_ssh
  bind 172.16.20.250:22
  server overcloud-controller-0 172.16.20.150:22 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:22 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:22 check fall 5 inter 2000 rise 2

listen keystone_public
  bind 172.16.20.250:5000
  bind 172.16.23.250:5000
  server overcloud-controller-0 172.16.20.150:5000 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:5000 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:5000 check fall 5 inter 2000 rise 2

listen mysql
  bind 172.16.20.250:3306
  option tcpka
  option httpchk
  stick on dst
  stick-table type ip size 1000
  timeout client 0
  timeout server 0
  server overcloud-controller-0 172.16.20.150:3306 backup check fall 5 inter 2000 on-marked-down shutdown-sessions port 9200 rise 2
  server overcloud-controller-1 172.16.20.151:3306 backup check fall 5 inter 2000 on-marked-down shutdown-sessions port 9200 rise 2
  server overcloud-controller-2 172.16.20.152:3306 backup check fall 5 inter 2000 on-marked-down shutdown-sessions port 9200 rise 2

listen neutron
  bind 172.16.20.250:9696
  bind 172.16.23.250:9696
  server overcloud-controller-0 172.16.20.150:9696 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:9696 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:9696 check fall 5 inter 2000 rise 2

listen nova_ec2
  bind 172.16.20.250:8773
  bind 172.16.23.250:8773
  server overcloud-controller-0 172.16.20.150:8773 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8773 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8773 check fall 5 inter 2000 rise 2

listen nova_metadata
  bind 172.16.20.250:8775
  server overcloud-controller-0 172.16.20.150:8775 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8775 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8775 check fall 5 inter 2000 rise 2

listen nova_novncproxy
  bind 172.16.20.250:6080
  bind 172.16.23.250:6080
  balance source
  server overcloud-controller-0 172.16.20.150:6080 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:6080 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:6080 check fall 5 inter 2000 rise 2

listen nova_osapi
  bind 172.16.20.250:8774
  bind 172.16.23.250:8774
  server overcloud-controller-0 172.16.20.150:8774 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8774 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8774 check fall 5 inter 2000 rise 2

listen nova_placement
  bind 172.16.20.250:8778
  bind 172.16.23.250:8778
  mode http
  server overcloud-controller-0 172.16.20.150:8778 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8778 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8778 check fall 5 inter 2000 rise 2

listen panko
  bind 172.16.20.250:8779 transparent
  bind 172.16.23.250:8779 transparent
  server overcloud-controller-0 172.16.20.150:8779 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:8779 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:8779 check fall 5 inter 2000 rise 2

listen redis
  bind 172.16.20.249:6379
  balance first
  option tcp-check
  tcp-check send AUTH\ p@55w0rd!\r\n
  tcp-check send PING\r\n
  tcp-check expect string +PONG
  tcp-check send info\ replication\r\n
  tcp-check expect string role:master
  tcp-check send QUIT\r\n
  tcp-check expect string +OK
  server overcloud-controller-0 172.16.20.150:6379 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.20.151:6379 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.20.152:6379 check fall 5 inter 2000 rise 2

listen swift_proxy_server
  bind 172.16.23.250:8080
  bind 172.16.21.250:8080
  server overcloud-controller-0 172.16.21.150:8080 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.21.151:8080 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.21.152:8080 check fall 5 inter 2000 rise 2

法律上の通知

Copyright © 2018 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.