3.3. カスタマイズされた HAProxy ルーターのデプロイ
3.3.1. 概要
デフォルトの HAProxy ルーターは多数のユーザーのニーズを対応することを目的としています。ただし、このルーターは HAProxy のすべての機能を公開している訳ではありません。そのため、ユーザーはそれぞれのニーズに合わせてルーターを変更する必要があります。
新機能をアプリケーションバックエンド内で実装したり、現在の操作を変更する必要がある場合があります。ルータープラグインはこのカスタマイズを行うために必要なすべての機能を提供します。
ルーター Pod はテンプレートファイルを使用して必要な HAProxy 設定ファイルを作成します。テンプレートファイルは golang テンプレート です。テンプレートを処理する際に、ルーターはルーターのデプロイメント設定、許可されたルートのセット、一部のヘルパー機能などの OpenShift Container Platform 情報にアクセスします。
ルーター Pod が起動し、リロードされるたびに、HAProxy 設定ファイルが作成され、HAProxy が起動します。HAProxy 設定マニュアル には HAProxy のすべての機能と有効な設定ファイルの作成方法が記載されています。
configMap を使用して新規テンプレートをルーター Pod に追加することができます。この方法により、ルーターデプロイメント設定を変更して、configMap をルーター Pod のボリュームとしてマウントできます。TEMPLATE_FILE
環境変数はルーター Pod のテンプレートファイルのフルパス名に設定されます。
OpenShift Container Platform のアップグレード後に、ルーターテンプレートのカスタマイズが引き続き機能する訳ではありません。
また、ルーターテンプレートのカスタマイズは、実行中のルーターのテンプレートバージョンに適用する必要があります。
または、カスタムルーターイメージをビルドし、ルーターの一部またはすべてをデプロイする際にこれを使用することができます。すべてのルーターが同じイメージを実行する必要はありません。これを実行するには、 haproxy-template.config ファイルを変更し、ルーターイメージを 再ビルド します。新しいイメージはクラスターの Docker リポジトリーにプッシュされ、ルーターのデプロイメント設定の image: フィールドが新しい名前で更新されます。クラスターが更新されたら、イメージを再ビルドし、プッシュする必要があります。
いずれの場合でも、ルーター Pod はテンプレートファイルを使用して起動します。