第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/v1alpha1
kind: Istio
metadata:
  name: default
spec:
  version: v1.22.3
  namespace: istio-system
  updateStrategy:
    type: InPlace
  values:
    pilot:
      resources:
        requests:
          cpu: 100m
          memory: 1024Mi

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

$ oc explain istios.spec.values

コントロールプレーンのカナリア更新をサポートするために、OpenShift Service Mesh には、複数の Istio バージョンのサポートが含まれています。インストールするバージョンに接頭辞 v を付けて spec.version を設定することで、バージョンを選択できます。このフィールドを変更するだけで、新しいバージョンに更新できます。

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. 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/v1alpha1
kind: IstioCNI
metadata:
  name: default
spec:
  version: v1.22.3
  namespace: istio-cni
  values:
    cni:
      cniConfDir: /etc/cni/net.d
      excludeNamespaces:
      - kube-system

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.