3.2.21. Dynamic Configuration Manager の使用


HAProxy ルーターを Dynamic Configuration Manager を使用するように設定できます。

Dynamic Configuration Manager は、HAProxy リロードのダウンタイムなしに特定のタイプのルートをオンラインにします。これは、ルートおよびエンドポイントの addition|deletion|update など、ルートおよびエンドポイントのすべてのライフサイクルイベントを処理します。

ROUTER_HAPROXY_CONFIG_MANAGER 環境変数を true に設定して Dynamic Configuration Manager を有効にします。

$ oc set env dc/<router_name> ROUTER_HAPROXY_CONFIG_MANAGER='true'

Dynamic Configuration Manager が HAProxy を動的に設定できない場合、これは設定を再作成し、HAProxy プロセスをリロードします。これには、新規ルートにカスタムタイムアウトなどのカスタムアノテーションが含まれる場合や、ルートにカスタム TLS 設定が必要な場合などが含まれます。

動的な設定は、事前に割り当てられたルートおよびバックエンドサーバーのプールと共に HAProxy ソケットおよび設定 API を内部で使用します。ルートの事前に割り当てられたプールは、ルートのブループリントを使用して作成されます。ブループリントのデフォルトセットはセキュリティー保護のないルート、カスタム TLS 設定のないセキュリティー保護された edge ルート、および passthrough ルートをサポートします。

重要

re-encrypt ルートにはカスタム TLS 設定情報が必要であるため、Dynamic Configuration Manager でそれらを使用するには追加の設定が必要になります。

ROUTER_BLUEPRINT_ROUTE_NAMESPACE を設定し、オプションで ROUTER_BLUEPRINT_ROUTE_LABELS 環境変数を設定することで Dynamic Configuration Manager が使用できるブループリントを拡張します。

ブループリントルート namespace のすべてのルート、またはルートラベルに一致するルートは、ブループリントのデフォルトセットに似たカスタムブループリントとして処理されます。これには、re-encrypt ルートやカスタムアノテーションを使用するルート、またはカスタム TLS 設定のあるルートが含まれます。

以下の手順では、reencrypt-blueprintannotated-edge-blueprint、および annotated-unsecured-blueprint の 3 つのルートオブジェクトがあることを前提としています。各種のルートタイプオブジェクトについては、ルートタイプ を参照してください。

手順

  1. 新しいプロジェクトを作成します。

    $ oc new-project namespace_name
  2. 新規ルートを作成します。この方法では既存サービスを公開します。

    $ oc create route edge edge_route_name --key=/path/to/key.pem \
          --cert=/path/to/cert.pem --service=<service> --port=8443
  3. ルートにラベルを付けます。

    $ oc label route edge_route_name type=route_label_1
  4. ルートオブジェクト定義から 3 つの異なるルートを作成します。すべてにラベル type=route_label_1 が付けられます。

    $ oc create -f reencrypt-blueprint.yaml
    $ oc create -f annotated-edge-blueprint.yaml
    $ oc create -f annotated-unsecured-blueprint.json

    また、ブループリントルートとしての使用を防ぐラベルをルートから削除することもできます。たとえば、annotated-unsecured-blueprint をブループリントルートとして使用されることを防ぐには、以下を実行します。

    $ oc label route annotated-unsecured-blueprint type-
  5. ブループリントプールに用される新規のルーターを作成します。

    $ oc adm router
  6. 新規ルーターの環境変数を設定します。

    $ oc set env dc/router ROUTER_HAPROXY_CONFIG_MANAGER=true      \
                           ROUTER_BLUEPRINT_ROUTE_NAMESPACE=namespace_name  \
                           ROUTER_BLUEPRINT_ROUTE_LABELS="type=route_label_1"

    ラベル type=route_label_1 が設定された namespace またはプロジェクト namespace_name のすべてのルートはカスタムブループリントとして処理でき、使用できます。

    ブループリントは、namespace namespace_name で通常実行するようにルートを管理することによって、追加し、更新し、削除できることに注意してください。Dynamic Configuration Manager は、ルーターが routes および services の有無を監視するのと同様の方法で namespace namespace_name のルートへの変更の有無を監視します。

  7. 事前に割り当てられたルートおよびバックエンドサーバーのプールサイズは、ROUTER_BLUEPRINT_ROUTE_POOL_SIZE (デフォルトは 10)、および ROUTER_MAX_DYNAMIC_SERVERS (デフォルトは 5) 環境変数で制御できます。また、Dynamic Configuration Manager が加える変更をディスクにコミットする頻度、つまり HAProxy 設定が再作成され、HAProxy プロセスがリロードされるタイミングを制御することもできます。デフォルトは 1 時間 (3600 秒) または Dynamic Configuration Manager のプールスペースが不足するタイミングになります。COMMIT_INTERVAL 環境変数がこの設定を制御します。

    $ oc set env dc/router -c router ROUTER_BLUEPRINT_ROUTE_POOL_SIZE=20  \
          ROUTER_MAX_DYNAMIC_SERVERS=3 COMMIT_INTERVAL=6h

    この例では、各ブループリントルートのプールサイズを 20 に増やし、動的サーバーの数を 3 に減らし、またコミット期間を 6 時間に増やしています。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.