2.3.5. Ingress Controller のシャーディング


Ingress シャーディング (ルーターシャーディング とも呼ばれる) を使用すると、ルート、名前空間、またはその両方にラベルを追加することで、一連のルートを複数のルーターに分散させることができます。

Ingress Controller は、対応する一連のセレクターを使用して、指定されたラベルが含まれるルートのみを許可します。各 Ingress シャードは、特定の選択式を使用してフィルタリングされたルートで構成されます。

トラフィックがクラスターに送信される主要なメカニズムとして、Ingress Controller への要求が大きくなる可能性があります。クラスター管理者として、以下のコンポーネントにルートをシャーディングできます。

  • Ingress Controller またはルーターを複数のルートに分散し、変更に対する応答を高速化する。
  • 特定のルートに、他のルートとは異なる信頼性保証を割り当てる。
  • 特定の Ingress Controller に異なるポリシーを定義することを許可します。
  • 特定のルートのみが追加機能を使用することを許可します。
  • たとえば、異なるアドレスで異なるルートを公開し、内部ユーザーおよび外部ユーザーが異なるルートを認識できるようにします。
  • Blue-Green デプロイ時に、あるバージョンのアプリケーションから別のバージョンにトラフィックを転送する。

Ingress Controller がシャーディングされると、特定のルートがグループ内の 0 個以上の Ingress Controller に受け入れられます。ルートのステータスから、Ingress Controller がルートを許可したかどうかがわかります。Ingress Controller は、ルートがシャードに固有のものである場合にのみルートを許可します。

シャーディングを使用すると、ルートのサブセットを複数の Ingress Controller に分散できます。ルートのサブセットは、重複なし (従来 のシャーディング) にすることも、重複あり (オーバーラップ シャーディング) にすることもできます。

次の表に、3 つのシャーディング方法の概要を示します。

Expand
シャーディング方法説明

namespace セレクター

Ingress Controller に namespace セレクターを追加すると、namespace セレクターに一致するラベルを持つ namespace 内のすべてのルートが Ingress シャードに追加されます。namespace 内に作成されたすべてのルートを Ingress Controller で提供する場合は、この方法を検討してください。

ルートセレクター

Ingress Controller にルートセレクターを追加すると、ルートセレクターに一致するラベルを持つすべてのルートが Ingress シャードに追加されます。ルートのサブセットのみ、または namespace 内の特定のルートのみを Ingress Controller で提供する場合は、この方法を検討してください。

namespace およびルートセレクター

namespace セレクターとルートセレクター両方の方法で Ingress Controller のスコープを指定します。namespace セレクターとルートセレクター両方の方法の柔軟性が必要な場合は、この方法を検討してください。

2.3.5.1. 従来のシャーディングの例

従来のシャーディングを理解するには、キーの値が financeops に設定されたラベルセレクター spec.namespaceSelector.matchExpressions を持つ設定済みの Ingress Controller finops-router の例を参照してください。

finops-router の YAML 定義の例

apiVersion: operator.openshift.io/v1
kind: IngressController
metadata:
  name: finops-router
  namespace: openshift-ingress-operator
spec:
  namespaceSelector:
    matchExpressions:
    - key: name
      operator: In
      values:
      - finance
      - ops

キー値が dev に設定されたラベルセレクター spec.namespaceSelector.matchLabels.name を持つ、設定済みの Ingress Controller dev-router の例:

dev-router の YAML 定義の例

apiVersion: operator.openshift.io/v1
kind: IngressController
metadata:
  name: dev-router
  namespace: openshift-ingress-operator
spec:
  namespaceSelector:
    matchLabels:
      name: dev

すべてのアプリケーションルートが、それぞれ name:financename:opsname:dev などのラベルが付けられた別々の namespace にある場合は、設定によって 2 つの Ingress Controller 間でルートが効果的に分散されます。コンソール、認証、およびその他の目的の OpenShift Container Platform ルートは処理しないでください。

前のシナリオでは、シャーディングは重複するサブセットを持たないパーティション設定の特別なケースとなります。ルートは複数のルーターシャード間で分割されます。

警告

デフォルト の Ingress Controller は、namespaceSelector または routeSelector フィールドに除外対象のルートが含まれていない限り、引き続きすべてのルートを提供します。デフォルトの Ingress Controller からルートを除外する方法の詳細は、この Red Hat ナレッジベースのソリューション と「デフォルトの Ingress Controller のシャーディング」のセクションを参照してください。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る