1.24. Service Mesh コントロールプレーン設定の参照

デフォルトの ServiceMeshControlPlane (SMCP) リソースを変更するか、完全にカスタムの SMCP リソースを作成して Red Hat OpenShift Service Mesh をカスタマイズできます。このリファレンスセクションでは、SMCP リソースで利用可能な設定オプションを説明します。

1.24.1. Service Mesh コントロールプレーンのパラメーター

以下の表は、ServiceMeshControlPlane リソースのトップレベルのパラメーターを一覧表示しています。

表1.31 ServiceMeshControlPlane リソースパラメーター

名前説明

apiVersion

APIVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。ServiceMeshControlPlane バージョン 2.0 の値は maistra.io/v2 です。

ServiceMeshControlPlane バージョン 2.0 の値は maistra.io/v2 です。

kind

kind はこのオブジェクトが表す REST リソースを表す文字列の値です。

ServiceMeshControlPlane で唯一有効な値は、ServiceMeshControlPlane です。

metadata

この ServiceMeshControlPlane インスタンスに関するメタデータ。Service Mesh コントロールプレーンインストールの名前を指定して作業を追跡できます (basic など)。

string

spec

この ServiceMeshControlPlane の必要な状態の仕様です。これには、Service Mesh コントロールプレーンを設定するすべてのコンポーネントの設定オプションが含まれます。

詳細は、表 2 を参照してください。

status

この ServiceMeshControlPlane と Service Mesh コントロールプレーンを設定するコンポーネントの現在のステータスです。

詳細は、表 3 を参照してください。

以下の表は、ServiceMeshControlPlane リソースの仕様を一覧表示しています。これらのパラメーターを変更すると、Red Hat OpenShift Service Mesh コンポーネントが設定されます。

表1.32 ServiceMeshControlPlane リソース仕様

名前説明設定可能なパラメーター

addons

addons パラメーターを使用して、可視化やメトリクスストレージなど、コアの Service Mesh コントロールプレーンコンポーネント以外の追加機能を設定します。

3scalegrafanajaegerkiali、および prometheus

cluster

cluster パラメーターは、クラスターの一般的な設定 (クラスター名、ネットワーク名、マルチクラスター、メッシュ拡張など) の設定を行います。

meshExpansionmultiClustername、および network

gateways

gateways パラメーターを使用して、メッシュの ingress および egress ゲートウェイを設定します。

enabledadditionalEgressadditionalIngressegressingress、および openshiftRoute

general

general パラメーターは、その他の場所には適合しない一般的な Service Mesh コントロールプレーンの設定を表します。

logging および validationMessages

policy

policy パラメーターを使用して、Service Mesh コントロールプレーンのポリシーチェックを設定します。ポリシーチェックを有効にするには、spec.policy.enabledtrue に設定します。

mixer remote、または typetypeIstiodMixer または None に設定できます。

profiles

profiles パラメーターを使用して、デフォルト値に使用するために ServiceMeshControlPlane プロファイルを選択します。

default

proxy

proxy パラメーターを使用してサイドカーのデフォルト動作を設定します。

accessLoggingadminPortconcurrency、および envoyMetricsService

runtime

ランタイム パラメーターを使用して、Service Mesh コントロールプレーンコンポーネントを設定します。

components、および defaults

security

security パラメーターを使用すると、Service Mesh コントロールプレーンのセキュリティーの各種機能を設定できます。

certificateAuthoritycontrolPlaneidentitydataPlane および trust

techPreview

techPreview パラメーターを使用すると、テクノロジープレビュー機能への早期アクセスが可能になります。

該当なし

telemetry

spec.mixer.telemetry.enabledtrue に設定されている場合、telemetry は有効にされます。

mixerremote、および typetypeIstiodMixer または None に設定できます。

tracing

tracing パラメーターを使用して、メッシュの分散トレースを有効にします。

samplingtypetypeJaeger または None に設定できます。

version

version パラメーターは、インストールする Service Mesh コントロールプレーンの Maistra バージョンを指定します。空のバージョンで ServiceMeshControlPlane を作成する場合、受付 Webhook はバージョンを現行バージョンに設定します。空のバージョンの新規の ServiceMeshControlPlanesv2.0 に設定されます。空のバージョンの既存の ServiceMeshControlPlanes はそれらの設定を保持します。

string

ControlPlaneStatus は Service Mesh の現在の状態を表します。

表1.33 ServiceMeshControlPlane リソース ControlPlaneStatus

名前説明

annotations

annotations パラメーターは、通常は ServiceMeshControlPlane によってデプロイされるコンポーネントの数などの追加の余分なステータス情報を保存します。これらのステータスは、JSONPath 式でオブジェクトのカウントを許可しないコマンドラインツールの oc で使用されます。

設定不可

conditions

オブジェクトの現在の状態として観察される最新の状態を表します。Reconcile は、Operator がデプロイされるコンポーネントの実際の状態の調整を ServiceMeshControlPlane リソースの設定を使用して完了したかどうかを示します。Installed は、Service Mesh コントロールプレーンがインストールされているかどうかを示します。Ready は、すべての Service Mesh コントロールプレーンコンポーネントの準備ができているかどうかを示します。

string

コンポーネント

デプロイされた各 Service Mesh コントロールプレーンコンポーネントのステータスを表示します。

string

appliedSpec

すべてのプロファイルが適用された後に生成される設定の仕様です。

ControlPlaneSpec

appliedValues

チャートの生成に使用される生成される values.yaml です。

ControlPlaneSpec

chartVersion

このリソースに対して最後に処理されたチャートのバージョンです。

string

observedGeneration

直近の調整時にコントローラーによって観察される生成です。ステータスの情報は、オブジェクトの特定の生成に関連するものです。status.conditions は、 status.observedGeneration フィールドが metadata.generation に一致しない場合は最新の状態ではありません。

integer

operatorVersion

このリソースを最後に処理した Operator のバージョンです。

string

readiness

コンポーネントおよび所有リソースの準備状態 ( readiness) のステータス

string

この例の ServiceMeshControlPlane の定義には、サポート対象のパラメーターがすべて含まれます。

ServiceMeshControlPlane リソースの例

apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
  name: basic
spec:
  version: v2.5
  proxy:
    runtime:
      container:
        resources:
          requests:
            cpu: 100m
            memory: 128Mi
          limits:
            cpu: 500m
            memory: 128Mi
  tracing:
    type: Jaeger
  gateways:
    ingress: # istio-ingressgateway
      service:
        type: ClusterIP
        ports:
        - name: status-port
          port: 15020
        - name: http2
          port: 80
          targetPort: 8080
        - name: https
          port: 443
          targetPort: 8443
      meshExpansionPorts: []
    egress: # istio-egressgateway
      service:
        type: ClusterIP
        ports:
        - name: status-port
          port: 15020
        - name: http2
          port: 80
          targetPort: 8080
        - name: https
          port: 443
          targetPort: 8443
    additionalIngress:
      some-other-ingress-gateway: {}
    additionalEgress:
      some-other-egress-gateway: {}

  policy:
    type: Mixer
    mixer: # only applies if policy.type: Mixer
      enableChecks: true
      failOpen: false

  telemetry:
    type: Istiod # or Mixer
    mixer: # only applies if telemetry.type: Mixer, for v1 telemetry
      sessionAffinity: false
      batching:
        maxEntries: 100
        maxTime: 1s
      adapters:
        kubernetesenv: true
        stdio:
          enabled: true
          outputAsJSON: true
  addons:
    grafana:
      enabled: true
      install:
        config:
          env: {}
          envSecrets: {}
        persistence:
          enabled: true
          storageClassName: ""
          accessMode: ReadWriteOnce
          capacity:
            requests:
              storage: 5Gi
        service:
          ingress:
            contextPath: /grafana
            tls:
              termination: reencrypt
    kiali:
      name: kiali
      enabled: true
      install: # install kiali CR if not present
        dashboard:
          viewOnly: false
          enableGrafana: true
          enableTracing: true
          enablePrometheus: true
      service:
        ingress:
          contextPath: /kiali
    jaeger:
      name: jaeger
      install:
        storage:
          type: Elasticsearch # or Memory
          memory:
            maxTraces: 100000
          elasticsearch:
            nodeCount: 3
            storage: {}
            redundancyPolicy: SingleRedundancy
            indexCleaner: {}
        ingress: {} # jaeger ingress configuration
  runtime:
    components:
      pilot:
        deployment:
          replicas: 2
        pod:
          affinity: {}
        container:
          resources:
            requests:
              cpu: 100m
              memory: 128Mi
            limits:
              cpu: 500m
              memory: 128Mi
      grafana:
        deployment: {}
        pod: {}
      kiali:
        deployment: {}
        pod: {}

1.24.2. 仕様パラメーター

1.24.2.1. 一般的なパラメーター

以下の例は、ServiceMeshControlPlane オブジェクトの spec.general パラメーターと適切な値を持つ利用可能なパラメーターの説明を示しています。

一般的なパラメーターの例

apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
  name: basic
spec:
  general:
    logging:
      componentLevels: {}
          # misc: error
      logAsJSON: false
    validationMessages: true

表1.34 Istio の一般的なパラメーター

パラメーター説明デフォルト値
logging:

Service Mesh コントロールプレーンコンポーネントのロギングを設定するために使用します。

 

該当なし

logging:
 componentLevels:

コンポーネントのロギングレベルを指定するために使用します。

使用できる値は、tracedebuginfowarningerrorfatalpanic です。

該当なし

logging:
 logAsJSON:

JSON ロギングを有効または無効にします。

true/false

該当なし

validationMessages:

istio.io リソースの status フィールドへの検証メッセージを有効または無効にするのに使用します。これは、リソースで設定エラーを検出するのに役立ちます。

true/false

該当なし

1.24.2.2. プロファイルパラメーター

ServiceMeshControlPlane オブジェクトプロファイルを使用すると、再利用可能な設定を作成できます。profile 設定を設定しない場合は、Red Hat OpenShift Service Mesh は default プロファイルを使用します。

以下の例は、ServiceMeshControlPlane オブジェクトの spec.profiles パラメーターを示しています。

プロファイルパラメーターの例

apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
  name: basic
spec:
  profiles:
  - YourProfileName

プロファイルの作成に関する詳細は、コントロールプレーンプロファイルの作成 を参照してください。

セキュリティー設定の詳細な例は、Mutual Transport Layer Security (mTLS) を参照してください。

1.24.2.3. トレースパラメーター

以下の例は、ServiceMeshControlPlane オブジェクトの spec.tracing パラメーターと適切な値を持つ利用可能なパラメーターの説明を示しています。

トレースパラメーターの例

apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
  name: basic
spec:
  version: v2.5
  tracing:
    sampling: 100
    type: Jaeger

表1.35 Istio トレースパラメーター

パラメーター説明デフォルト値
tracing:
 sampling:

サンプリングレートは、Envoy プロキシーがトレースを生成する頻度を決定します。サンプリングレートを使用して、トレースシステムに報告される要求の割合を制御します。

0 から 10000 までの整数値で、インクリメントは 0.01% (0 から 100%) になります。たとえば、値を 10 に設定するとリクエストの 0.1% がサンプリングされ、値を 100 に設定するとリクエストの 1% がサンプリングされ、値を 500 に設定するとリクエストの 5% がサンプリングされ、10000 に設定するとリクエストの 100% がサンプリングされます。

10000 (トレースの 100%)

tracing:
 type:

現在、サポートされるトレーサーの唯一のタイプは Jaeger です。Jaeger はデフォルトで有効になっています。トレースを無効にするには、type パラメーターを None に設定します。

noneJaeger

Jaeger

1.24.2.4. バージョンパラメーター

Red Hat OpenShift Service Mesh Operator は、さまざまなバージョンの ServiceMeshControlPlane のインストールをサポートしています。version パラメーターは、インストールする Service Mesh コントロールプレーンのバージョンを指定します。SMCP の作成時にバージョンパラメーターを指定しないと、Operator は値を最新バージョン (2.5) に設定します。既存の ServiceMeshControlPlane オブジェクトは、Operator のアップグレード中にバージョン設定を保持します。

1.24.2.5. 3scale の設定

以下の表では、ServiceMeshControlPlane リソースの 3scale Istio アダプターのパラメーターを説明しています。

3scale パラメーターの例

apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
  name: basic
spec:
  addons:
    3Scale:
      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
      PARAM_USE_CACHED_BACKEND: false
      PARAM_BACKEND_CACHE_FLUSH_INTERVAL_SECONDS: 15
      PARAM_BACKEND_CACHE_POLICY_FAIL_CLOSED: true
# ...

表1.36 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

PARAM_USE_CACHE_BACKEND

true の場合は、認可要求のインメモリー apisonator キャッシュの作成を試行します。

true/false

false

PARAM_BACKEND_CACHE_FLUSH_INTERVAL_SECONDS

バックエンドキャッシュが有効な場合は、3scale に対してキャッシュをフラッシュする間隔を秒単位で設定します。

時間 (秒単位)

15

PARAM_BACKEND_CACHE_POLICY_FAIL_CLOSED

バックエンドキャッシュが承認データを取得できない場合は常に、要求を拒否する (クローズする) か、許可する (オープンする) かどうか。

true/false

true

1.24.3. ステータスパラメーター

status パラメーターは、Service Mesh の現在の状態を記述します。この情報は Operator によって生成され、読み取り専用です。

表1.37 Istio ステータスパラメーター

名前説明

observedGeneration

直近の調整時にコントローラーによって観察される生成です。ステータスの情報は、オブジェクトの特定の生成に関連するものです。status.conditions は、 status.observedGeneration フィールドが metadata.generation に一致しない場合は最新の状態ではありません。

integer

annotations

annotations パラメーターは、通常は ServiceMeshControlPlane オブジェクトによってデプロイされるコンポーネントの数などの追加の余分なステータス情報を保存します。これらのステータスは、JSONPath 式でオブジェクトのカウントを許可しないコマンドラインツールの oc で使用されます。

設定不可

readiness

コンポーネントおよび所有リソースの readiness ステータスです。

string

operatorVersion

このリソースを最後に処理した Operator のバージョンです。

string

コンポーネント

デプロイされた各 Service Mesh コントロールプレーンコンポーネントのステータスを表示します。

string

appliedSpec

すべてのプロファイルが適用された後に生成される設定の仕様です。

ControlPlaneSpec

conditions

オブジェクトの現在の状態として観察される最新の状態を表します。Reconciled は、Operator がデプロイされるコンポーネントの実際の状態の調整を ServiceMeshControlPlane リソースの設定を使用して完了したかどうかを示します。インストール 済みは、Service Mesh コントロールプレーンがインストールされていることを示します。Ready は、すべての Service Mesh コントロールプレーンコンポーネントの準備が整っていることを示します。

string

chartVersion

このリソースに対して最後に処理されたチャートのバージョンです。

string

appliedValues

チャートの生成に使用された、生成される values.yaml ファイル。

ControlPlaneSpec

1.24.4. 関連情報