検索

3.3. Red Hat OpenShift Service Mesh インストールのカスタマイズ

download PDF

デフォルトのサービスメッシュのカスタムリソースを変更するか、または新規のカスタムリソースを作成して、Red Hat OpenShift Service Mesh をカスタマイズできます。

前提条件

3.3.1. Red Hat OpenShift Service Mesh カスタムリソース

注記

istio-system プロジェクトは、サービスメッシュのドキュメント全体でサンプルとして使用されますが、必要に応じて他のプロジェクトを使用できます。

カスタムリソースにより、Red Hat OpenShift Service Mesh プロジェクトまたはクラスターで API を拡張することができます。サービスメッシュをデプロイすると、プロジェクトパラメーターを変更するために変更できるデフォルトの ServiceMeshControlPlane が作成されます。

Service Mesh Operator は、ServiceMeshControlPlane リソースタイプを追加して API を拡張します。これにより、プロジェクト内に ServiceMeshControlPlane オブジェクトを作成できます。ServiceMeshControlPlane オブジェクトを作成することで、Operator にサービスメッシュコントロールプレーンをプロジェクトにインストールするよう指示でき、ServiceMeshControlPlane オブジェクトで設定したパラメーターを使用して設定できます。

この例の ServiceMeshControlPlane の定義には、サポートされるすべてのパラメーターが含まれ、これにより Red Hat Enterprise Linux (RHEL) をベースとした Red Hat OpenShift Service Mesh 1.1.2 イメージがデプロイされます。

重要

3scale の Istio Adapter は、カスタムリソースファイルでデプロイされ、設定されます。また、稼働している 3scale アカウント (SaaS または On-Premises) が必要になります。

istio-installation.yaml の詳細例

  apiVersion: maistra.io/v1
  kind: ServiceMeshControlPlane
  metadata:
    name: full-install
  spec:

    istio:
      global:
        proxy:
          resources:
            requests:
              cpu: 100m
              memory: 128Mi
            limits:
              cpu: 500m
              memory: 128Mi

      gateways:
        istio-egressgateway:
          autoscaleEnabled: false
        istio-ingressgateway:
          autoscaleEnabled: false

      mixer:
        policy:
          autoscaleEnabled: false

        telemetry:
          autoscaleEnabled: false
          resources:
            requests:
              cpu: 100m
              memory: 1G
            limits:
              cpu: 500m
              memory: 4G

      pilot:
        autoscaleEnabled: false
        traceSampling: 100

      kiali:
        enabled: true

      grafana:
        enabled: true

      tracing:
        enabled: true
        jaeger:
          template: all-in-one

3.3.2. ServiceMeshControlPlane パラメーター

以下の例は ServiceMeshControlPlane パラメーターの使用を示し、表はサポートされているパラメーターに関する追加情報を示しています。

重要

CPU、メモリー、Pod の数などのパラメーターを使用して Red Hat OpenShift Service Mesh に設定するリソースは、OpenShift クラスターの設定をベースとしています。現在のクラスター設定で利用可能なリソースに基づいて、これらのパラメーターを設定します。

3.3.2.1. Istio グローバルの例

以下の例は、ServiceMeshControlPlane の Istio グローバルパラメーターと適切な値を持つ利用可能なパラメーターの説明を示しています。

注記

3scale Istio Adapter が機能するようするには、disablePolicyChecksfalse である必要があります。

グローバルパラメーターの例

  istio:
    global:
      tag: 1.1.0
      hub: registry.redhat.io/openshift-service-mesh/
      proxy:
        resources:
          requests:
            cpu: 10m
            memory: 128Mi
          limits:
      mtls:
        enabled: false
      disablePolicyChecks: true
      policyCheckFailOpen: false
      imagePullSecrets:
        - MyPullSecret

表3.1 グローバルパラメーター
パラメーター説明デフォルト値

disablePolicyChecks

このパラメーターは、ポリシーチェックを有効/無効にします。

true/false

true

policyCheckFailOpen

このパラメーターは、Mixer ポリシーサービスに到達できない場合にトラフィックを Envoy サイドカーコンテナーに通過させることができるかどうかを指定します。

true/false

false

tag

Operator が Istio イメージをプルするために使用するタグ。

有効なコンテナーイメージタグです。

1.1.0

hub

Operator が Istio イメージをプルするために使用するハブ。

有効なイメージリポジトリーです。

maistra/ または registry.redhat.io/openshift-service-mesh/

mtls

このパラメーターは、デフォルトでサービス間での Mutual Transport Layer Security (mTLS) の有効化/無効化を制御します。

true/false

false

imagePullSecrets

Istio イメージを提供するレジストリーへのアクセスがセキュアな場合、ここに imagePullSecret を一覧表示します。

redhat-registry-pullsecret または quay-pullsecret

なし

これらのパラメーターは、グローバルパラメーターのプロキシーサブセットに固有のものです。

表3.2 プロキシーパラメーター
タイプパラメーター説明デフォルト値

リソース

cpu

Envoy プロキシー用に要求される CPU リソースの量。

ご使用の環境設定に基づき、コアまたはミリコア (例: 200m、0.5、1) で指定される CPU リソース。

10m

 

memory

Envoy プロキシー用に要求されるメモリー量。

ご使用の環境設定に基づく、利用可能なバイト単位のメモリー (例: 200Ki、50Mi、5Gi)。

1024Mi

制限

cpu

Envoy プロキシー用に要求される CPU リソースの最大量。

ご使用の環境設定に基づき、コアまたはミリコア (例: 200m、0.5、1) で指定される CPU リソース。

2000m

 

memory

使用が許可されているメモリー Envoy プロキシーの最大量。

ご使用の環境設定に基づく、利用可能なバイト単位のメモリー (例: 200Ki、50Mi、5Gi)。

128Mi

3.3.2.2. Istio ゲートウェイの設定

以下の例は、ServiceMeshControlPlane の Istio ゲートウェイパラメーターと適切な値を持つ利用可能なパラメーターの説明を示しています。

ゲートウェイパラメーターの例

  gateways:
       istio-egressgateway:
         autoscaleEnabled: false
         autoscaleMin: 1
         autoscaleMax: 5
       istio-ingressgateway:
         autoscaleEnabled: false
         autoscaleMin: 1
         autoscaleMax: 5

表3.3 Istio ゲートウェイパラメーター
タイプパラメーター説明デフォルト値

istio-egressgateway

autoscaleEnabled

このパラメーターは、自動スケーリングを有効/無効にします。

true/false

true

 

autoscaleMin

autoscaleEnabled 設定に基づいて Egress ゲートウェイにデプロイする Pod の最小数。

ご使用の環境設定に基づく、有効な割り当て可能な Pod 数。

1

 

autoscaleMax

autoscaleEnabled 設定に基づいて Egress ゲートウェイにデプロイする Pod の最大数。

ご使用の環境設定に基づく、有効な割り当て可能な Pod 数。

5

istio-ingressgateway

autoscaleEnabled

このパラメーターは、自動スケーリングを有効/無効にします。

true/false

true

 

autoscaleMin

autoscaleEnabled 設定に基づいて Ingress ゲートウェイにデプロイする Pod の最小数。

ご使用の環境設定に基づく、有効な割り当て可能な Pod 数。

1

 

autoscaleMax

autoscaleEnabled 設定に基づいて Ingress ゲートウェイにデプロイする Pod の最大数。

ご使用の環境設定に基づく、有効な割り当て可能な Pod 数。

5

3.3.2.3. Istio Mixer 設定

以下の例は、ServiceMeshControlPlane の Mixer パラメーターと適切な値を持つ利用可能なパラメーターの説明を示しています。

Mixer パラメーターの例

mixer:
  enabled: true
  policy:
    autoscaleEnabled: false
  telemetry:
    autoscaleEnabled: false
    resources:
    requests:
      cpu: 10m
      memory: 128Mi
      limits:

表3.4 Istio Mixer ポリシーパラメーター
パラメーター説明デフォルト値

enabled

このパラメーターは、Mixer を有効/無効にします。

true/false

true

autoscaleEnabled

このパラメーターは、自動スケーリングを有効/無効にします。小規模な環境では、このパラメーターを無効にします。

true/false

true

autoscaleMin

autoscaleEnabled 設定に基づいてデプロイする Pod の最小数。

ご使用の環境設定に基づく、有効な割り当て可能な Pod 数。

1

autoscaleMax

autoscaleEnabled 設定に基づいてデプロイする Pod の最大数。

ご使用の環境設定に基づく、有効な割り当て可能な Pod 数。

5

表3.5 Istio Mixer Telemetry パラメーター
タイプパラメーター説明デフォルト

リソース

cpu

Mixer Telemetry に要求される CPU リソースのパーセンテージ。

ご使用の環境設定に基づく、ミリコア単位の CPU リソース。

10m

 

memory

Mixer Telemetry に要求されるメモリー量。

ご使用の環境設定に基づく、利用可能なバイト単位のメモリー (例: 200Ki、50Mi、5Gi)。

128Mi

制限

cpu

使用を許可された CPU リソース Mixer Telemetry の最大パーセンテージ。

ご使用の環境設定に基づく、ミリコア単位の CPU リソース。

4800m

 

memory

使用を許可されているメモリー Mixer Telemetry の最大量です。

ご使用の環境設定に基づく、利用可能なバイト単位のメモリー (例: 200Ki、50Mi、5Gi)。

4G

3.3.2.4. Istio Pilot 設定

以下の例は、ServiceMeshControlPlane の Istio Pilot パラメーターと適切な値を持つ利用可能なパラメーターの説明を示しています。

Pilot パラメーターの例

  pilot:
    resources:
      requests:
        cpu: 100m
        memory: 128Mi
    autoscaleEnabled: false
    traceSampling: 100

表3.6 Istio Pilot パラメーター
パラメーター説明デフォルト値

cpu

Pilot に要求される CPU リソースのパーセンテージ。

ご使用の環境設定に基づく、ミリコア単位の CPU リソース。

10m

memory

Pilot に要求されるメモリー量。

ご使用の環境設定に基づく、利用可能なバイト単位のメモリー (例: 200Ki、50Mi、5Gi)。

128Mi

autoscaleEnabled

このパラメーターは、自動スケーリングを有効/無効にします。小規模な環境では、このパラメーターを無効にします。

true/false

true

traceSampling

この値は、無作為のサンプリングの発生頻度を制御します。注: 開発またはテストの場合はこの値を増やします。

有効なパーセンテージ。

1.0

3.3.3. Kiali の設定

Service Mesh Operator は ServiceMeshControlPlane を作成する際に、Kiali リソースも処理します。次に Kiali Operator は Kiali インスタンスの作成時にこのオブジェクトを使用します。

ServiceMeshControlPlane で指定されるデフォルトの Kiali パラメーターは以下のとおりです。

Kiali パラメーターの例

apiVersion: maistra.io/v1
kind: ServiceMeshControlPlane
spec:
    kiali:
      enabled: true
      dashboard:
        viewOnlyMode: false
      ingress:
        enabled: true

表3.7 Kiali パラメーター
パラメーター説明デフォルト値
enabled

このパラメーターは、Kiali を有効/無効にします。Kiali はデフォルトで有効です。

true/false

true

dashboard
   viewOnlyMode

このパラメーターは、Kiali コンソールの表示専用 (view-only) モードを有効/無効にします。表示専用モードを有効にすると、ユーザーはコンソールを使用してサービスメッシュを変更できなくなります。

true/false

false

ingress
   enabled

このパラメーターは、Kiali の Ingress を有効/無効にします。

true/false

true

3.3.3.1. Grafana の Kiali の設定

Kiali および Grafana を Red Hat OpenShift Service Mesh の一部としてインストールする場合、Operator はデフォルトで以下を設定します。

  • Grafana を Kiali の外部サービスとして有効化
  • Kiali コンソールの Grafana 認証
  • Kiali コンソールの Grafana URL

Kiali は Grafana URL を自動的に検出できます。ただし、Kiali で簡単に自動検出できないカスタムの Grafana インストールがある場合、ServiceMeshControlPlane リソースの URL の値を更新する必要があります。

追加の Grafana パラメーター

spec:
  kiali:
    enabled: true
    dashboard:
      viewOnlyMode: false
      grafanaURL:  "https://grafana-istio-system.127.0.0.1.nip.io"
    ingress:
      enabled: true

3.3.3.2. Jaeger についての Kiali の設定

Kiali および Jaeger を Red Hat OpenShift Service Mesh の一部としてインストールする場合、Operator はデフォルトで以下を設定します。

  • Jaeger を Kiali の外部サービスとして有効化
  • Kiali コンソールの Jaeger 認証
  • Kiali コンソールの Jaeger URL

Kiali は Jaeger URL を自動的に検出できます。ただし、Kiali で簡単に自動検出できないカスタムの Jaeger インストールがある場合、ServiceMeshControlPlane リソースの URL の値を更新する必要があります。

追加の Jaeger パラメーター

spec:
  kiali:
    enabled: true
    dashboard:
      viewOnlyMode: false
      jaegerURL: "http://jaeger-query-istio-system.127.0.0.1.nip.io"
    ingress:
      enabled: true

3.3.4. Jaeger の設定

Service Mesh Operator は ServiceMeshControlPlane リソースを作成する際に、Jaeger リソースも作成します。次に Jaeger Operator は Jaeger インスタンスの作成時にこのオブジェクトを使用します。

ServiceMeshControlPlane で指定されるデフォルトの Jaeger パラメーターは以下のとおりです。

デフォルトのall-in-one Jaeger パラメーター

  apiVersion: maistra.io/v1
  kind: ServiceMeshControlPlane
  spec:
    istio:
      tracing:
        enabled: true
        jaeger:
          template: all-in-one

表3.8 Jaeger パラメーター
パラメーター説明デフォルト値
tracing
   enabled

このパラメーターは、サービスメッシュでトレースを有効/無効にします。Jaeger がデフォルトでインストールされます。

true/false

true

jaeger
   template

このパラメーターは、使用する Jaeger デプロイメントストラテジーを指定します。

  • all-in-one: 開発、テスト、デモおよび概念実証用。
  • production-elasticsearch: 実稼働環境での使用。

all-in-one

注記

ServiceMeshControlPlane リソースのデフォルトのテンプレートは、インメモリーストレージを使用するall-in-one のデプロイメントストラテジーです。実稼働環境では、サポートされている唯一のストレージオプションが Elasticsearch であるため、実稼働環境内にサービスメッシュをデプロイする際には、production-elasticsearch テンプレートを要求するように ServiceMeshControlPlane を設定する必要があります。

3.3.4.1. Elasticsearch の設定

デフォルトの Jaeger デプロイメントストラテジーでは、all-in-one テンプレートを使用するため、最小のリソースでインストールを完了できます。ただし、all-in-one テンプレートはインメモリーストレージを使用するので、開発、デモまたはテスト目的での使用を推奨しています。実稼働環境には使用しないでください。

実稼働環境でサービスメッシュおよび Jaeger をデプロイする場合、テンプレートを production-elasticsearch テンプレートに変更する必要があります。これは Jaeger のストレージのニーズに対応するために Elasticsearch を使用します。

Elasticsearch はメモリー集約型アプリケーションです。デフォルトの OpenShift Container Platform インストールで指定されたノードの初期セットは、Elasticsearch クラスターをサポートするのに十分な大きさではない場合があります。デフォルトの Elasticsearch 設定は、ユースケースと OpenShift Container Platform インストール用に必要とするリソースに一致するように変更する必要があります。resources ブロックを有効な CPU 値およびメモリー値で変更することにより、各コンポーネントの CPU およびメモリーの制限の両方を調整することができます。推奨容量 (以上) のメモリーを使用して実行する場合は、追加のノードをクラスターに追加する必要があります。OpenShift Container Platform インストールに必要となるリソースを超えていないことを確認してください。

Elasticsearch を使用したデフォルトの「実稼働」Jaeger パラメーター

  apiVersion: maistra.io/v1
  kind: ServiceMeshControlPlane
  spec:
    istio:
      tracing:
      enabled: true
      ingress:
        enabled: true
      jaeger:
        template: production-elasticsearch
        elasticsearch:
          nodeCount: 3
          redundancyPolicy:
          resources:
            requests:
              cpu: "1"
              memory: "16Gi"
            limits:
              cpu: "1"
              memory: "16Gi"

表3.9 Elasticsearch パラメーター
パラメーター説明デフォルト値
tracing:
  enabled

このパラメーターは、サービスメッシュでトレースを有効/無効にします。Jaeger がデフォルトでインストールされます。

true/false

true

 
ingress:
  enabled

このパラメーターは、Jaeger の Ingress を有効/無効にします。

true/false

true

 
jaeger
   template

このパラメーターは、使用する Jaeger デプロイメントストラテジーを指定します。

all-in-one/production-elasticsearch

all-in-one

 
elasticsearch:
  nodeCount

作成する Elasticsearch ノードの数。

整数値。

1

概念実証 = 1、最小デプロイメント = 3

requests:
  cpu

ご使用の環境設定に基づく、要求に対する中央処理単位の数。

コアまたはミリコアで指定されます (例: 200m、0.5、1)。

1Gi

概念実証 = 500m、最小デプロイメント = 1

requests:
  memory

ご使用の環境設定に基づく、要求に使用できるメモリー。

バイト単位で指定されます (例: 200Ki、50Mi、5Gi)。

500m

概念実証 = 1Gi、最小デプロイメント = 16Gi*

limits:
  cpu

ご使用の環境設定に基づく、中央処理単位数の制限。

コアまたはミリコアで指定されます (例: 200m、0.5、1)。

 

概念実証 = 500m、最小デプロイメント = 1

limits:
  memory

ご使用の環境設定に基づく、利用可能なメモリー制限。

バイト単位で指定されます (例: 200Ki、50Mi、5Gi)。

 

概念実証 = 1Gi、最小デプロイメント = 16Gi*

* 各 Elasticsearch ノードはこれより低い値のメモリー設定でも動作しますが、これは実稼働環境でのデプロイメントには推奨されません。実稼働環境で使用する場合、デフォルトで各 Pod に割り当てる設定を 16Gi 未満にすることはできず、Pod ごとに最大 64Gi を割り当てることを推奨します。

手順

  1. cluster-admin ロールを持つユーザーとして OpenShift Container Platform Web コンソールにログインします。
  2. Operators Installed Operators に移動します。
  3. Red Hat OpenShift Service Mesh Operator をクリックします。
  4. Istio Service Mesh Control Plane タブをクリックします。
  5. コントロールプレーンのファイル名 (basic-install など) をクリックします。
  6. YAML タブをクリックします。
  7. Jaeger パラメーターを編集し、デフォルトのall-in-one テンプレートを production-elasticsearch テンプレートのパラメーターに置き換え、ユースケースに合わせて変更します。インデントが正しいことを確認します。
  8. Save をクリックします。
  9. Reload をクリックします。OpenShift Container Platform は Jaeger を再デプロイし、指定されたパラメーターに基づいて Elasticsearch リソースを作成します。

Elasticsearch を OpenShift Container Platform で設定する方法については、「Elasticsearch の設定」を参照してください。

3.3.5. 3scale の設定

以下の例は、Red Hat OpenShift Service Mesh カスタムリソースの 3scale Istio Adapter パラメーターと、適切な値を持つ利用可能なパラメーターの説明を示しています。

3scale パラメーターの例

threeScale:
  enabled: false
  PARAM_THREESCALE_LISTEN_ADDR: 3333
  PARAM_THREESCALE_LOG_LEVEL: info
  PARAM_THREESCALE_LOG_JSON: true
  PARAM_THREESCALE_LOG_GRPC: false
  PARAM_THREESCALE_REPORT_METRICS: true
  PARAM_THREESCALE_METRICS_PORT: 8080
  PARAM_THREESCALE_CACHE_TTL_SECONDS: 300
  PARAM_THREESCALE_CACHE_REFRESH_SECONDS: 180
  PARAM_THREESCALE_CACHE_ENTRIES_MAX: 1000
  PARAM_THREESCALE_CACHE_REFRESH_RETRIES: 1
  PARAM_THREESCALE_ALLOW_INSECURE_CONN: false
  PARAM_THREESCALE_CLIENT_TIMEOUT_SECONDS: 10
  PARAM_THREESCALE_GRPC_CONN_MAX_SECONDS: 60

表3.10 3scale パラメーター
パラメーター説明デフォルト値

enabled

3scale アダプターを使用するかどうか

true/false

false

PARAM_THREESCALE_LISTEN_ADDR

gRPC サーバーのリッスンアドレスを設定します。

有効なポート番号

3333

PARAM_THREESCALE_LOG_LEVEL

ログ出力の最小レベルを設定します。

debuginfowarnerror、または none

info

PARAM_THREESCALE_LOG_JSON

ログが JSON としてフォーマットされるかどうかを制御します。

true/false

true

PARAM_THREESCALE_LOG_GRPC

ログに gRPC 情報を含むかどうかを制御します。

true/false

true

PARAM_THREESCALE_REPORT_METRICS

3scale システムおよびバックエンドメトリクスが収集され、Prometheus に報告されるかどうかを制御します。

true/false

true

PARAM_THREESCALE_METRICS_PORT

3scale /metrics エンドポイントをスクラップできるポートを設定します。

有効なポート番号

8080

PARAM_THREESCALE_CACHE_TTL_SECONDS

キャッシュから期限切れのアイテムを消去するまで待機する時間 (秒単位)。

時間 (秒単位)

300

PARAM_THREESCALE_CACHE_REFRESH_SECONDS

キャッシュ要素の更新を試行する場合の期限

時間 (秒単位)

180

PARAM_THREESCALE_CACHE_ENTRIES_MAX

キャッシュにいつでも保存できるアイテムの最大数。キャッシュを無効にするには 0 に設定します。

有効な数字

1000

PARAM_THREESCALE_CACHE_REFRESH_RETRIES

キャッシュ更新ループ時に到達できないホストが再試行される回数

有効な数字

1

PARAM_THREESCALE_ALLOW_INSECURE_CONN

3scale API 呼び出し時の証明書の検証を省略できるようにします。この有効化は推奨されていません。

true/false

false

PARAM_THREESCALE_CLIENT_TIMEOUT_SECONDS

3scale システムおよびバックエンドへの要求を終了するまで待機する秒数を設定します。

時間 (秒単位)

10

PARAM_THREESCALE_GRPC_CONN_MAX_SECONDS

接続を閉じるまでの最大秒数 (+/-10% のジッター) を設定します。

時間 (秒単位)

60

次のステップ

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.