第2章 OpenShift Service Mesh について


Red Hat OpenShift Service Mesh は 2 つの部分で構成されています。

  • Red Hat OpenShift Service Mesh リソース
  • Red Hat が提供する Kiali

Red Hat が提供する Kali は、次の 3 つの部分で構成されています。

  • Red Hat が提供する Kiali Operator
  • Kiali Server
  • OpenShift Service Mesh Console (OSSMC) プラグイン

OpenShift Service Mesh は以下と統合されます。

  • 以下のような可観測性コンポーネント

    • OpenShift Monitoring
    • Red Hat OpenShift 分散トレースプラットフォーム
    • Red Hat OpenShift distributed tracing data collection Operator
  • cert-manager
  • Argo rollouts

2.1. Red Hat OpenShift Service Mesh リソース

Red Hat OpenShift Service Mesh Operator は Istio コントロールプレーンのライフサイクルを管理します。新しい設定スキーマを作成する代わりに、OpenShift Service Mesh Operator API は Istio の Helm チャート API を中心に構築されます。

注記
  • Red Hat OpenShift Service Mesh API は Istio の Helm チャート API 上に構築されていますが、Helm チャートはサポートされていません。
  • Istio の Helm チャートによって公開されるすべてのインストールおよび設定オプションは、Red Hat OpenShift Service Mesh カスタムリソース定義 (CRD) フィールドを通じて利用できます。

2.1.1. Istio リソース

Istio リソースは、Istio コントロールプレーンを管理するために使用されます。Istio コントロールプレーンはクラスター全体で動作し、クラスター全体へのアクセスを必要とするため、これはクラスター全体のリソースです。

コントロールプレーン Pod を実行する namespace を選択するには、spec.namespace フィールドを使用できます。

注記

spec.namespace フィールドは不変です。コントロールプレーンを別の namespace に移動するには、Istio リソースを削除し、別の spec.namespace で再作成する必要があります。

spec.values フィールドを通じて、すべての Istio カスタムリソース定義 (CRD) オプションにアクセスできます。

Istio リソース CRD の例

apiVersion: sailoperator.io/v1
kind: Istio
metadata:
  name: default
spec:
  version: v1.22.3
  namespace: istio-system
  updateStrategy:
    type: InPlace
  values:
    pilot:
      resources:
        requests:
          cpu: 100m
          memory: 1024Mi
Copy to Clipboard Toggle word wrap

すべてのカスタマイズオプションを表示するには、次のコマンドを実行します。

$ oc explain istios.spec.values
Copy to Clipboard Toggle word wrap

OpenShift Service Mesh は、コントロールプレーンのカナリア更新を実行するために、複数の Istio バージョンをサポートしています。フルバージョンを使用するか、v<x>.<y>-latest エイリアスを使用して特定のマイナーバージョンの最新バージョンを自動的に選択することにより、version フィールドを新しいバージョンに設定できます。たとえば、v1.23-latest を設定すると、Operator が Istio 1.23 の最新バージョンを維持するようになります。

OpenShift Service Mesh は、コントロールプレーンに対して 2 つの異なる更新ストラテジーをサポートしています。

InPlace
OpenShift Service Mesh Operator は、既存のコントロールプレーンリソースを新しいバージョンのものにすぐに置き換えます。
RevisionBased
ワークロードを移行して更新を完了できる 2 番目のコントロールプレーンを作成して Istio のカナリア更新メカニズムを使用します。

Istio リソースを作成した後、OpenShift Service Mesh は updateStrategy に基づいてリソースのリビジョン名を生成し、対応する IstioRevision を作成します。

2.1.2. IstioRevision リソース

IstioRevision は、クラスター全体のリソースであり、OpenShift Service Mesh が提供する最も低レベルの API です。通常、これはユーザーによってではなく、Operator 自身によって作成されます。そのスキーマは Istio リソースのスキーマとよく似ていますが、クラスター内に存在するコントロールプレーンの状態を表すのではなく、そのコントロールプレーンのリビジョンを表します。

クラスター内に存在するコントロールプレーンのリビジョンは、特定のバージョンとリビジョン名を持つ Istio のインスタンスであり、そのリビジョン名を使用して、メッシュにワークロードまたは namespace 全体を追加できます。たとえば、istio.io/rev=<REVISION_NAME> ラベルを使用します。

IstioIstioRevision リソースの関係は、Kubernetes のレプリカセットと Pod の関係に似ていると考えることができます。レプリカセットはユーザーが作成でき、Pod が自動的に作成され、コンテナーのインスタンス化がトリガーされます。

同様に、ユーザーは Istio リソースを作成し、OpenShift Service Mesh Operator に一致する IstioRevision リソースを作成するように指示します。これにより、Istio コントロールプレーンの作成がトリガーされます。これを行うには、OpenShift Service Mesh Operator は、関連するすべての設定を Istio リソースから IstioRevision リソースにコピーします。

2.1.3. IstioRevisionTag リソース

IstioRevisionTag リソースは、Istio コントロールプレーンリビジョンのエイリアスとして機能する stable リビジョンタグを表します。stable タグ prod では、istio.io/rev=prod ラベルを使用して、ワークロードにプロキシーを挿入できます。新しいリビジョン名でコントロールプレーンへのアップグレードを実行する場合、ワークロードと namespace のラベルを変更する代わりに、タグを更新して新しいリビジョンを参照できます。詳細は、Stable revision labels (Istio ドキュメント) を参照してください。

IstioRevisionTag リソースは OpenShift Service Mesh Operator で使用できます。したがって、IstioRevisionIstio リソースの両方を参照できます。Istio リソースを使用する場合、コントロールプレーンを更新すると、基盤となる IstioRevision リソースが変更され、OpenShift Service Mesh Operator によってリビジョンタグが自動的に更新されます。新しいプロキシーを再挿入するには、デプロイメントを再起動するだけです。

IstioRevisionTagspec:0 には、targetRef フィールドが 1 つあり、Istio または IstioRevision リソースを参照できます。IstioRevisionTag をデプロイした後、istio.io/rev=defaultistio-injection=enabled ラベルの両方を使用して、ワークロードにプロキシーを挿入できます。

istio-injection ラベルは、次の例の IstioRevisionTag リソースのように、名前が default のリビジョンおよびリビジョンタグにのみ使用できます。

IstioRevisionTag リソースの例

apiVersion: sailoperator.io/v1
kind: IstioRevisionTag
metadata:
  name: default
spec:
  targetRef:
    kind: Istio 
1

    name: prod  
2
Copy to Clipboard Toggle word wrap

1
この値は、Istio または IstioRevision のいずれかになります。
2
Istio または IstioRevision リソースの名前。

2.1.4. IstioCNI リソース

OpenShift Service Mesh Operator を使用する場合、Istio の Container Network Interface (CNI) プラグインのライフサイクルは別に管理されます。Istio の CNI プラグインをインストールするには、IstioCNI リソースを作成します。

IstioCNI リソースは、クラスターのすべてのノードで動作するデーモンセットをインストールするため、クラスター全体のリソースです。次の例に示すように、spec.version フィールドを設定することでバージョンを選択できます。CNI プラグインを更新するには、バージョンフィールドをインストールするバージョンに変更します。Istio リソースと同様に、istio-cni チャートで提供されるすべてのオプションを公開する values フィールドもあります。

IstioCNI リソースの例

apiVersion: sailoperator.io/v1
kind: IstioCNI
metadata:
  name: default
spec:
  version: v1.22.3
  namespace: istio-cni
  values:
    cni:
      cniConfDir: /etc/cni/net.d
      excludeNamespaces:
      - kube-system
Copy to Clipboard Toggle word wrap

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat