環境は、API プロキシを実行するための分離コンテキストまたは「サンドボックス」を提供します。 1 つの組織に複数の環境を作成できます。
次のコードは、複数の環境が定義されているオーバーライド構成の例を示しています。環境 prod と test のホスト エイリアスが異なることに注意してください。
namespace: my-namespace org: my-organization ... envs: - name: test serviceAccountPaths: synchronizer: "your_keypath/synchronizer-manager-service-account.json udca: "your_keypath/analytic-agent-service-account.json - name: prod serviceAccountPaths: synchronizer: "your_keypath/synchronizer-manager-service-account.json udca: "your_keypath/analytic-agent-service-account.json ...
routingRules
を環境にマッピングする virtualhosts
プロパティを追加します。
virtualhosts: - name: default hostAliases: ["api.example.com"] sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.pem routingRules: - env: test
virtualhosts: - name: external hostAliases: ["apiprod.example.com"] sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.pem routingRules: - env: prod
/foo1
というベースパスを持つプロキシが環境 test にデプロイされていると仮定します。そのプロキシは次のように呼び出すことができます。
curl -k https://api.example.com/foo1
この呼び出しが Ingress に到着すると、Ingress は呼び出しリクエストを処理する test
環境の Message Processor(MP)に呼び出しを送信します。
同様に、foo1
が prod
環境にもデプロイされている場合は、ホスト エイリアス apiprod.mydomain.net
に対して次のようなプロキシ リクエストを発行できます。
curl -k https://apiprod.example.com/foo1
この呼び出しは、Ingress によって当該ホストの MP にルーティングされます。
アンチパターン: すべてのプロキシを 1 つのハイブリッド環境にデプロイする。
ベスト プラクティス: 複数の環境を作成し、各環境に限られた数のプロキシをデプロイします。特定の API プロキシのベースパスをルーティングする環境を指定するルーティング ルールを作成できます。詳細については、仮想ホストの構成をご覧ください。
プロキシ デプロイメントの数を制限する
ハイブリッドの場合、複数の環境で同じ仮想ホストを共有できるということは、特定の環境へのプロキシ デプロイメントの管理方法を慎重に検討する必要があることを意味します。ハイブリッドでは、複数の環境を作成して、それぞれに限られた数のプロキシをデプロイするベスト プラクティスをおすすめします。
環境にはプロキシをいくつデプロイすべきですか?この質問に対する答えは環境によって異なります。次の表で、各環境にデプロイするプロキシの数を制限することが推奨される理由と、プロキシ デプロイメントの管理で考慮すべきことに関する一般的なガイダンスを提供します。
考慮すべき課題 | 説明 |
---|---|
Message Processor の起動時間 | Message Processor(MP)が起動するまでの時間とその MP にデプロイされるプロキシの数には直接的な相関関係があります。自動スケーリング Kubernetes 環境では、起動時間の増加が問題になることがあります。MP にデプロイされるプロキシが多いほど、その MP のスケーリングや再作成が必要な場合の MP の起動時間が長くなります。 |
スケーリングのパフォーマンス | 1 つの環境に複数のプロキシがデプロイされ、プロキシの 1 つが大量のトラフィックを受信するために頻繁に自動スケーリングされる場合は、その環境内のすべてのプロキシが一緒にスケーリングされます。複数のプロキシをスケーリングする際、高トラフィックのプロキシが 1 つでもあると、パフォーマンスが低下することがあります。 |
ノイジー ネイバー | 同じ環境に複数のプロキシがデプロイされた状態で、プロキシが 1 つでもクラッシュすると、MP の再起動中にその環境内のすべてのプロキシが停止します。環境にデプロイするプロキシの数を制限することにより、1 つのプロキシがクラッシュした場合の影響を最小限に抑えられます。 |
環境設定リファレンス
環境設定要素の完全なリストについては、構成プロパティのリファレンスの envs をご覧ください。
環境の操作
構成の詳細については、以下のトピックをご覧ください。