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

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

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

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

表1.32 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 など)。

文字列

spec

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

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

status

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

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

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

表1.33 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 はそれらの設定を保持します。

文字列

ControlPlaneStatus はサービスメッシュの現在の状態を表します。

表1.34 ServiceMeshControlPlane リソース ControlPlaneStatus

名前説明タイプ

annotations

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

設定不可

conditions

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

文字列

コンポーネント

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

文字列

appliedSpec

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

ControlPlaneSpec

appliedValues

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

ControlPlaneSpec

chartVersion

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

文字列

observedGeneration

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

整数

operatorVersion

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

文字列

readiness

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

文字列

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

ServiceMeshControlPlane リソースの例

apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
  name: basic
spec:
  version: v2.2
  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: {}