1.4. ディスカバリーセレクターによる Service Mesh のスコープ設定


Service Mesh には、次の基準を満たすワークロードが含まれます。

  • コントロールプレーンがワークロードを検出した。
  • ワークロードには Envoy プロキシーサイドカーが挿入されている。

デフォルトでは、コントロールプレーンはクラスター全体のすべての namespace でワークロードを検出し、次の結果が得られます。

  • 各プロキシーインスタンスは、メッシュに登録されていないワークロードなど、すべての namespace の設定を受信する。
  • 適切な Pod または namespacde インジェクションラベルを持つワークロードはすべて、プロキシーサイドカーを受信する。

共有クラスターでは、Service Mesh のスコープを特定の namespace のみに制限する必要がある場合があります。このアプローチは、複数のサービスメッシュが同じクラスター内で実行される場合に特に便利です。

1.4.1. ディスカバリーセレクターについて

ディスカバリーセレクターを使用すると、メッシュ管理者はコントロールプレーンがアクセスできる namespace を制御できます。管理者は、Kubernetes ラベルセレクターを使用して、コントロールプレーンに表示される namespace の基準を設定し、指定された基準に一致しない namespace を除外します。

注記

Istiod は常に、すべての namespace に対して OpenShift へのウォッチを開きます。ただし、ディスカバリーセレクターは、非常に初期の処理段階で選択されなかったオブジェクトを無視し、コストを最小限に抑えます。

discoverySelectors フィールドは、namespace のラベルに適用される Kubernetes セレクターの配列を受け入れます。さまざまなユースケースに合わせて各セレクターを設定できます。

  • カスタムラベル名と値。たとえば、すべての namespace を istio-discovery=enabled というラベルで設定します。
  • OR ロジックを使用したセットベースのセレクターを使用した namespace ラベルのリスト。たとえば、istio-discovery=enabled または リージョン=us-east1 を使用して namespace を設定します。
  • namespaces の包含と除外。たとえば、istio-discovery=enabled かつラベル app=helloworld を使用して namespace を設定します。
注記

ディスカバリーセレクターはセキュリティー境界としては機能しません。discoverySelector フィールドを設定した場合でも、Istiod はすべての namespace に引き続きアクセスできます。

1.4.2. ディスカバリーセレクターを使用してサービスメッシュのスコープを設定する

サービスメッシュに含める namespace がわかっている場合は、インストール中またはインストール後に、Istio リソースの meshConfig.discoverySelectors セクションに必要なセレクターを追加して、discoverySelectors を設定します。たとえば、istio-discovery=enabled というラベルの付いた namespace のみを検出するように Istio を設定します。

前提条件

  • OpenShift Service Mesh Operator がインストールされている。
  • Istio CNI リソースが作成されている。

手順

  1. Istio コントロールプレーンを含む namespace にラベルを追加します (例: istio-system システムの namespace)。

    $ oc label namespace istio-system istio-discovery=enabled
  2. Istio コントロールプレーンリソースを変更して、同じラベルの discoverySelectors セクションを含めます。

    kind: Istio
    apiVersion: sailoperator.io/v1alpha1
    metadata:
      name: default
    spec:
      namespace: istio-system
      values:
        meshConfig:
          discoverySelectors:
            - matchLabels:
                istio-discovery: enabled
  3. Istio CR を適用します。

    $ oc apply -f istio.yaml
  4. サービスメッシュの一部となるワークロードを含むすべての namespace に、discoverySelector ラベルと、必要に応じて適切な Istio インジェクションラベルの両方があることを確認します。
注記

ディスカバリーセレクターは、1 つのサービスメッシュのスコープを絞り込む場合に役立ちます。また、単一のクラスター内に複数の Istio コントロールプレーンをデプロイすると、それぞれのコントロールプレーンが対象とする範囲を制限するために欠かせない機能です。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.