1.8. ServiceMeshControlPlane の作成


1.8.1. About ServiceMeshControlPlane

コントロールプレーンには、Istiod、Ingress および Egress Gateway、Kiali や Jaeger などのその他コンポーネントが含まれます。コントロールプレーンは、Service Mesh Operator やデータプレーンアプリケーションおよびサービスとは別の namespace にデプロイする必要があります。Red Hat OpenShift Service on AWS Web コンソールを使用するか、oc クライアントツールを使用してコマンドラインから ServiceMeshControlPlane (SMCP) の基本的なインストールをデプロイできます。

注記

この基本インストールは、デフォルトの Red Hat OpenShift Service on AWS 設定に基づいて設定されており、本番環境での使用を目的として設計されていません。このデフォルトのインストールを使用してインストールを確認し、環境に合わせて ServiceMeshControlPlane 設定を設定します。

Red Hat OpenShift Service on AWS で使用するためにコントロールプレーンをデプロイしている場合は、新しいプロジェクトの追加と Pod の開始を説明している Red Hat ナレッジベースの記事 OpenShift service mesh operator Istio basic not starting due to authentication errors を参照してください。

1.8.1.1. Web コンソールからの Service Mesh コントロールプレーンのデプロイ

Web コンソールを使用して基本的な ServiceMeshControlPlane をデプロイできます。この例では、istio-system が Service Mesh コントロールプレーンプロジェクトの名前となります。

前提条件

  • Red Hat OpenShift Service Mesh Operator がインストールされている。
  • Red Hat OpenShift Service on AWS Web コンソールに、dedicated-admin ロールを持つユーザーとしてログインしている。

手順

  1. cluster-admin ロールを持つユーザーとして Red Hat OpenShift Service on AWS Web コンソールにログインします。(Red Hat OpenShift Dedicated を使用する場合) dedicated-admin ロールがあるアカウント。
  2. istio-system という名前のプロジェクトを作成します。

    1. Home Projects に移動します。
    2. Create Project をクリックします。
    3. Name フィールドに istio-system と入力します。ServiceMeshControlPlane リソースは、マイクロサービスおよび Operator とは別に、istio-system プロジェクトにインストールする必要があります。
    4. Create をクリックします。
  3. Operators Installed Operators に移動します。
  4. Red Hat OpenShift Service Mesh Operator をクリックした後に、Istio Service Mesh Control Plane をクリックします。
  5. Istio Service Mesh Control Plane タブで Create ServiceMeshControlPlane をクリックします。

    1. 製品の最新バージョンで使用できる機能を利用するには、デフォルトの Service Mesh コントロールプレーンバージョンを受け入れます。コントロールプレーンのバージョンは、Operator のバージョンに関係なく利用可能な機能を判別します。
    2. Red Hat OpenShift Service on AWS に必要な spec.security.identity.type.ThirdParty フィールドを追加します。
    3. Create をクリックします。

    Operator は、設定パラメーターに基づいて Pod、サービス、Service Mesh コントロールプレーンのコンポーネントを作成します。ServiceMeshControlPlane 設定は後で設定できます。

検証

  • Istio Service Mesh Control Plane タブをクリックしてコントロールプレーンが正常にインストールされることを確認します。

    1. 新規コントロールプレーンの名前をクリックします。
    2. Resources タブをクリックして、Red Hat OpenShift Service Mesh コントロールプレーンリソース (Operator が作成し、設定したもの) を表示します。

1.8.1.2. CLI を使用した Service Mesh コントロールプレーンのデプロイ

コマンドラインから基本的な ServiceMeshControlPlane をデプロイできます。

前提条件

  • Red Hat OpenShift Service Mesh Operator がインストールされている。
  • OpenShift CLI (oc) へのアクセスがある。
  • Red Hat OpenShift Service on AWS に、dedicated-admin ロールを持つユーザーとしてログインしている。

手順

  1. istio-system という名前のプロジェクトを作成します。

    $ oc new-project istio-system

    ServiceMeshControlPlane リソースは、マイクロサービスおよび Operator とは別に、istio-system プロジェクトにインストールする必要があります。

  2. 以下の例を使用して istio-installation.yaml という名前の ServiceMeshControlPlane ファイルを作成します。Service Mesh コントロールプレーンのバージョンは、Operator のバージョンに関係なく利用可能な機能を判別します。

    ServiceMeshControlPlane リソースの例

    apiVersion: maistra.io/v2
    kind: ServiceMeshControlPlane
    metadata:
      name: basic
      namespace: istio-system
    spec:
      version: v2.6
      security:
        identity:
          type: ThirdParty 1
      tracing:
        type: None
        sampling: 10000
      policy:
        type: Istiod
      addons:
        grafana:
          enabled: true
        kiali:
          enabled: true
        prometheus:
          enabled: true
      telemetry:
        type: Istiod

    1
    Red Hat OpenShift Service on AWS に必要な設定を指定します。
  3. 以下のコマンドを実行して Service Mesh コントロールプレーンをデプロイします。ここで、<istio_installation.yaml> にはファイルへの完全パスが含まれます。

    $ oc create -n istio-system -f <istio_installation.yaml>
  4. Pod のデプロイメントの進行状況を監視するには、次のコマンドを実行します。

    $ oc get pods -n istio-system -w

    以下のような出力が表示されるはずです。

    NAME                                   READY   STATUS    RESTARTS   AGE
    grafana-b4d59bd7-mrgbr                 2/2     Running   0          65m
    istio-egressgateway-678dc97b4c-wrjkp   1/1     Running   0          108s
    istio-ingressgateway-b45c9d54d-4qg6n   1/1     Running   0          108s
    istiod-basic-55d78bbbcd-j5556          1/1     Running   0          108s
    kiali-6476c7656c-x5msp                 1/1     Running   0          43m
    prometheus-58954b8d6b-m5std            2/2     Running   0          66m

1.8.1.3. CLI を使用した SMCP インストールの検証

コマンドラインから ServiceMeshControlPlane の作成を検証できます。

  1. 前提条件

    • Red Hat OpenShift Service Mesh Operator がインストールされている。
    • OpenShift CLI (oc) へのアクセスがある。
    • Red Hat OpenShift Service on AWS に、dedicated-admin ロールを持つユーザーとしてログインしている。

手順

  1. 次のコマンドを実行して、Service Mesh コントロールプレーンのインストールを確認します。istio-system は、Service Mesh コントロールプレーンをインストールした namespace です。

    $ oc get smcp -n istio-system

    STATUS 列が ComponentsReady の場合は、インストールが正常に終了しています。

    NAME    READY   STATUS            PROFILES      VERSION   AGE
    basic   10/10   ComponentsReady   ["default"]   2.6.4     66m

1.8.2. コントロールプレーンとクラスター全体のデプロイメントについて

クラスター全体のデプロイメントには、クラスター全体のリソースを監視する Service Mesh Control Plane が含まれます。クラスター全体のリソースのモニタリングは、コントロールプレーンがすべての namespace にわたって単一のクエリーを使用して Istio および Kubernetes リソースを監視するという点で、Istio の機能によく似ています。その結果、クラスター全体のデプロイメントにより、API サーバーに送信されるリクエストの数が減少します。

Red Hat OpenShift Service on AWS Web コンソールまたは CLI を使用して、クラスター全体のデプロイメント用に Service Mesh コントロールプレーンを設定できます。

1.8.2.1. Web コンソールを使用したクラスター全体のデプロイメント用のコントロールプレーンの設定

Red Hat OpenShift Service on AWS Web コンソールを使用して、クラスター全体のデプロイメント用に ServiceMeshControlPlane リソースを設定できます。この例では、istio-system が Service Mesh コントロールプレーンプロジェクトの名前となります。

前提条件

  • Red Hat OpenShift Service Mesh Operator がインストールされている。
  • Red Hat OpenShift Service on AWS に、dedicated-admin ロールを持つユーザーとしてログインしている。

手順

  1. istio-system という名前のプロジェクトを作成します。

    1. Home Projects に移動します。
    2. Create Project をクリックします。
    3. Name フィールドに istio-system と入力します。ServiceMeshControlPlane リソースは、マイクロサービスおよび Operator とは異なるプロジェクトにインストールする必要があります。

      これらの手順では、istio-system をサンプルとして使用します。Service Mesh コントロールプレーンは、サービスが含まれるプロジェクトから分離されている限り、任意のプロジェクトにデプロイできます。

    4. Create をクリックします。
  2. Operators Installed Operators に移動します。
  3. Red Hat OpenShift Service Mesh Operator をクリックした後に、Istio Service Mesh Control Plane をクリックします。
  4. Istio Service Mesh Control Plane タブで Create ServiceMeshControlPlane をクリックします。
  5. YAML view をクリックします。Service Mesh コントロールプレーンのバージョンは、Operator のバージョンに関係なく利用可能な機能を判別します。
  6. spec.mode フィールドを変更し、spec.security.identity.type.ThirdParty フィールドを追加します。

    ServiceMeshControlPlane リソースの例

    apiVersion: maistra.io/v2
    kind: ServiceMeshControlPlane
    metadata:
      name: basic
      namespace: istio-system
    spec:
      version: v2.6
      mode: ClusterWide 1
      security:
        identity:
          type: ThirdParty 2
      tracing:
        type: Jaeger
        sampling: 10000
      policy:
        type: Istiod
      addons:
        grafana:
          enabled: true
        jaeger:
          install:
            storage:
              type: Memory
        kiali:
          enabled: true
        prometheus:
          enabled: true
      telemetry:
        type: Istiod

    1
    リソースがクラスター全体のデプロイメント用であることを指定します。
    2
    Red Hat OpenShift Service on AWS に必要な設定を指定します。
  7. Create をクリックします。Operator は、設定パラメーターに基づいて Pod、サービス、Service Mesh コントロールプレーンのコンポーネントを作成します。ServiceMeshMemberRoll がデフォルト設定の一部として存在しない場合、Operator はそれも作成します。

検証

  • コントロールプレーンが正しくインストールされていることを確認するには、次の手順を実行します。

    1. Istio Service Mesh Control Plane タブをクリックします。
    2. 新しい ServiceMeshControlPlane オブジェクトの名前をクリックします。
    3. Resources タブをクリックして、Red Hat OpenShift Service Mesh コントロールプレーンリソース (Operator が作成し、設定したもの) を表示します。

1.8.2.2. CLI を使用したクラスター全体のデプロイメント用のコントロールプレーンの設定

CLI を使用して、クラスター全体のデプロイメント用に ServiceMeshControlPlane リソースを設定できます。この例では、istio-system は Service Mesh コントロールプレーンの namespace の名前です。

前提条件

  • Red Hat OpenShift Service Mesh Operator がインストールされている。
  • OpenShift CLI (oc) にアクセスできる。
  • Red Hat OpenShift Service on AWS に、dedicated-admin ロールを持つユーザーとしてログインしている。

手順

  1. istio-system という名前のプロジェクトを作成します。

    $ oc new-project istio-system
  2. 以下の例を使用して istio-installation.yaml という名前の ServiceMeshControlPlane ファイルを作成します。

    ServiceMeshControlPlane リソースの例

    apiVersion: maistra.io/v2
    kind: ServiceMeshControlPlane
    metadata:
      name: basic
      namespace: istio-system
    spec:
      version: v2.6
      mode: ClusterWide 1
      security:
        identity:
          type: ThirdParty 2

    1
    リソースがクラスター全体のデプロイメント用であることを指定します。
    2
    Red Hat OpenShift Service on AWS に必要な設定を指定します。
  3. 次のコマンドを実行して、Service Mesh コントロールプレーンをデプロイします。

    $ oc create -n istio-system -f <istio_installation.yaml>

    ここでは、以下のようになります。

    <istio_installation.yaml>
    ファイルへの完全パスを指定します。

検証

  1. Pod のデプロイの進行状況を監視するには、次のコマンドを実行します。

    $ oc get pods -n istio-system -w

    次の例のような出力が表示されるはずです。

    出力例

    NAME                                   READY   STATUS    RESTARTS   AGE
    grafana-b4d59bd7-mrgbr                 2/2     Running   0          65m
    istio-egressgateway-678dc97b4c-wrjkp   1/1     Running   0          108s
    istio-ingressgateway-b45c9d54d-4qg6n   1/1     Running   0          108s
    istiod-basic-55d78bbbcd-j5556          1/1     Running   0          108s
    jaeger-67c75bd6dc-jv6k6                2/2     Running   0          65m
    kiali-6476c7656c-x5msp                 1/1     Running   0          43m
    prometheus-58954b8d6b-m5std            2/2     Running   0          66m

1.8.2.3. クラスター全体のメッシュのメンバーロールのカスタマイズ

クラスター全体モードでは、ServiceMeshControlPlane リソースを作成すると、ServiceMeshMemberRoll リソースも作成されます。ServiceMeshMemberRoll リソースは、作成後に変更できます。リソースを変更すると、Service Mesh オペレーターはそのリソースを変更しなくなります。Red Hat OpenShift Service on AWS Web コンソールを使用して ServiceMeshMemberRoll リソースを変更する場合は、変更を上書きするプロンプトを受け入れます。

または、ServiceMeshControlPlane リソースをデプロイする前に ServiceMeshMemberRoll リソースを作成することもできます。ServiceMeshControlPlane リソースを作成するとき、Service Mesh Operator は ServiceMeshMemberRoll を変更しません。

注記

ServiceMeshMemberRoll リソース名には、default という名前を付け、ServiceMeshControlPlane リソースと同じプロジェクト namespace に作成する必要があります。

メッシュに namespace を追加するには 2 つの方法があります。spec.members リストで名前を指定して namespace を追加することも、ラベルに基づいて namespace を含めるか除外するように一連の namespace ラベルセレクターを設定することもできます。

注記

ServiceMeshMemberRoll リソースでメンバーがどのように指定されているかに関係なく、各 namespace に ServiceMeshMember リソースを作成してメッシュにメンバーを追加することもできます。

1.8.3. Kiali を使用した SMCP インストールの検証

Kiali コンソールを使用して、Service Mesh のインストールを検証できます。Kiali コンソールには、Service Mesh コンポーネントが適切にデプロイおよび設定されていることを検証する方法がいくつかあります。

  1. 前提条件

    • Red Hat OpenShift Service Mesh Operator がインストールされている。
    • OpenShift CLI (oc) へのアクセスがある。
    • Red Hat OpenShift Service on AWS に、dedicated-admin ロールを持つユーザーとしてログインしている。

手順

  1. Red Hat OpenShift Service on AWS Web コンソールで、Networking Routes に移動します。
  2. Routes ページで、Namespace メニューから Service Mesh コントロールプレーンプロジェクトを選択します (例: istio-system)。

    Location 列には、各ルートのリンク先アドレスが表示されます。

  3. 必要に応じて、フィルターを使用して Kiali コンソールのルートを見つけます。ルートの Location をクリックしてコンソールを起動します。
  4. Log In With OpenShift をクリックします。

    初回の Kiali コンソールへのログイン時に、表示するパーミッションを持つ Service Mesh 内のすべての namespace を表示する Overview ページが表示されます。概要 ページに複数の namespace が表示されている場合は、Kiali は最初に正常性または検証に問題がある namespace を表示します。

    図1.1 Kiali の概要ページ

    istio-system を示す Kiali の概要ページ

    各 namespace のタイルには、ラベルの数、Istio Config の状態、アプリケーション の状態と数、namespace の トラフィック が表示されます。コンソールのインストールを検証中で、namespace がまだメッシュに追加されていないと、istio-system 以外のデータは表示されない可能性があります。

  5. Kiali には、Service Mesh コントロールプレーンがインストールされている namespace 専用のダッシュボードが 4 つあります。これらのダッシュボードを表示するには、オプション メニューをクリックします kebab コントロールプレーン namespace のタイル (例: istio-system) で、次のいずれかのオプションを選択します。

    • Istio メッシュダッシュボード
    • Istio コントロールプレーンダッシュボード
    • Istio パフォーマンスダッシュボード
    • Istio Wasm Exetension ダッシュボード

      図1.2 Grafana Istio コントロールプレーンダッシュボード

      info サンプルプロジェクトのデータを表示する Istio コントロールプレーンダッシュボード

      Kiali は、Grafana ホームページ から入手できる追加の Grafana ダッシュボード 2 つもインストールします。

    • Istio ワークロードダッシュボード
    • Istio サービスダッシュボード
  6. Service Mesh コントロールプレーンノードを表示するには、グラフ ページをクリックし、メニューから ServiceMeshControlPlane をインストールした Namespace を選択します (例 :istio-system)。

    1. 必要に応じて、Display idle nodes をクリックします。
    2. グラフ ページの詳細は、グラフツアー リンクをクリックしてください。
    3. メッシュトポロジーを表示するには、namespace メニューの Service Mesh メンバーロールから追加の namespace を 1 つまたは複数選択します。
  7. istio-system namespace 内のアプリケーションのリストを表示するには、アプリケーション ページをクリックします。Kiali は、アプリケーションの状態を表示します。

    1. 情報アイコンの上にマウスをかざすと、詳細 列に記載されている追加情報が表示されます。
  8. istio-system namespace のワークロードのリストを表示するには、ワークロード ページをクリックします。Kiali は、ワークロードの状態を表示します。

    1. 情報アイコンの上にマウスをかざすと、詳細 列に記載されている追加情報が表示されます。
  9. istio-system namespace のサービスのリストを表示するには、サービス ページをクリックします。Kiali は、サービスと設定の状態を表示します。

    1. 情報アイコンの上にマウスをかざすと、詳細 列に記載されている追加情報が表示されます。
  10. istio-system namespace の Istio 設定オブジェクトのリストを表示するには、Istio Config ページをクリックします。Kiali は、設定の正常性を表示します。

    1. 設定エラーがある場合は、行をクリックすると、Kiali が設定ファイルを開き、エラーが強調表示されます。

1.8.4. 関連情報

Red Hat OpenShift Service Mesh はクラスター内で複数の独立したコントロールプレーンをサポートします。ServiceMeshControlPlane プロファイルを使用すると、再利用可能な設定を作成ができます。詳細は、コントロールプレーンプロファイルの作成 を参照してください。

1.8.5. 次のステップ

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.