3.10. カスタムリソース
こちらは、サポートされなくなった Red Hat OpenShift Service Mesh リリースのドキュメントです。
Service Mesh バージョン 1.0 および 1.1 コントロールプレーンはサポートされなくなりました。Service Mesh コントロールプレーンのアップグレードの詳細は、Service Mesh の アップグレード を参照してください。
特定の Red Hat OpenShift Service Mesh リリースのサポートステータスは、製品ライフサイクルページ を参照してください。
デフォルトの Service Mesh のカスタムリソースを変更するか、新規のカスタムリソースを作成して、Red Hat OpenShift Service Mesh をカスタマイズできます。
3.10.1. 前提条件
-
cluster-admin
ロールを持つアカウントがある。 - Red Hat OpenShift Service Mesh をインストールする準備 プロセスを完了している。
- Operator がインストール済みである。
3.10.2. Red Hat OpenShift Service Mesh カスタムリソース
istio-system
プロジェクトは、Service Mesh のドキュメント全体でサンプルとして使用されますが、必要に応じて他のプロジェクトを使用できます。
カスタムリソース により、Red Hat OpenShift Service Mesh プロジェクトまたはクラスターで API を拡張できます。Service Mesh をデプロイすると、プロジェクトパラメーターを変更するために変更できるデフォルトの ServiceMeshControlPlane
が作成されます。
Service Mesh Operator は、ServiceMeshControlPlane
リソースタイプを追加して API を拡張します。これにより、プロジェクト内に ServiceMeshControlPlane
オブジェクトを作成できます。ServiceMeshControlPlane
オブジェクトを作成することで、Operator に Service Mesh コントロールプレーンをプロジェクトにインストールするよう指示でき、ServiceMeshControlPlane
オブジェクトで設定したパラメーターを使用して設定できます。
この例の ServiceMeshControlPlane
の定義には、サポートされるすべてのパラメーターが含まれ、これにより Red Hat Enterprise Linux (RHEL) をベースとした Red Hat OpenShift Service Mesh 1.1.18.2 イメージがデプロイされます。
3scale の Istio Adapter は、カスタムリソースファイルでデプロイされ、設定されます。また、稼働している 3scale アカウント (SaaS または On-Premises) が必要になります。
istio-installation.yaml の詳細例
apiVersion: maistra.io/v1 kind: ServiceMeshControlPlane metadata: name: basic-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 ior_enabled: 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.10.3. ServiceMeshControlPlane パラメーター
以下の例は ServiceMeshControlPlane
パラメーターの使用を示し、表はサポートされているパラメーターに関する追加情報を示しています。
CPU、メモリー、Pod の数などのパラメーターを使用して Red Hat OpenShift Service Mesh に設定するリソースは、OpenShift Container Platform クラスターの設定をベースとしています。現在のクラスター設定で利用可能なリソースに基づいて、これらのパラメーターを設定します。
3.10.3.1. Istio グローバルの例
以下の例は、ServiceMeshControlPlane
の Istio グローバルパラメーターと適切な値を持つ利用可能なパラメーターの説明を示しています。
3scale Istio Adapter が機能するようするには、disablePolicyChecks
は false
である必要があります。
グローバルパラメーターの例
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
パラメーター | 説明 | 値 | デフォルト値 |
---|---|---|---|
| このパラメーターは、ポリシーチェックを有効/無効にします。 |
|
|
| このパラメーターは、Mixer ポリシーサービスに到達できない場合にトラフィックを Envoy サイドカーコンテナーに通過させることができるかどうかを指定します。 |
|
|
| Operator が Istio イメージをプルするために使用するタグ。 | 有効なコンテナーイメージタグです。 |
|
| Operator が Istio イメージをプルするために使用するハブ。 | 有効なイメージリポジトリーです。 |
|
| このパラメーターは、デフォルトでサービス間での Mutual Transport Layer Security (mTLS) の有効化/無効化を制御します。 |
|
|
| Istio イメージを提供するレジストリーへのアクセスがセキュアな場合は、ここに imagePullSecret を一覧表示します。 | redhat-registry-pullsecret または quay-pullsecret | なし |
これらのパラメーターは、グローバルパラメーターのプロキシーサブセットに固有のものです。
タイプ | パラメーター | 説明 | 値 | デフォルト値 |
---|---|---|---|---|
|
| Envoy プロキシー用に要求される CPU リソースの量。 | ご使用の環境設定に基づき、コアまたはミリコア (例: 200m、0.5、1) で指定される CPU リソース。 |
|
| Envoy プロキシー用に要求されるメモリー量。 | ご使用の環境設定に基づく、利用可能なバイト単位のメモリー (例: 200Ki、50Mi、5Gi)。 |
| |
|
| Envoy プロキシー用に要求される CPU リソースの最大量。 | ご使用の環境設定に基づき、コアまたはミリコア (例: 200m、0.5、1) で指定される CPU リソース。 |
|
| 使用が許可されているメモリー Envoy プロキシーの最大量。 | ご使用の環境設定に基づく、利用可能なバイト単位のメモリー (例: 200Ki、50Mi、5Gi)。 |
|
3.10.3.2. Istio ゲートウェイの設定
以下の例は、ServiceMeshControlPlane
の Istio ゲートウェイパラメーターと適切な値を持つ利用可能なパラメーターの説明を示しています。
ゲートウェイパラメーターの例
gateways: egress: enabled: true runtime: deployment: autoScaling: enabled: true maxReplicas: 5 minReplicas: 1 enabled: true ingress: enabled: true runtime: deployment: autoScaling: enabled: true maxReplicas: 5 minReplicas: 1
パラメーター | 説明 | 値 | デフォルト値 |
---|---|---|---|
| このパラメーターは、自動スケーリングを有効/無効にします。 |
|
|
|
| ご使用の環境設定に基づく、有効な割り当て可能な Pod 数。 |
|
|
| ご使用の環境設定に基づく、有効な割り当て可能な Pod 数。 |
|
| このパラメーターは、自動スケーリングを有効/無効にします。 |
|
|
|
| ご使用の環境設定に基づく、有効な割り当て可能な Pod 数。 |
|
|
| ご使用の環境設定に基づく、有効な割り当て可能な Pod 数。 |
|
クラスター管理者は、サブドメインを有効にする方法について、ワイルドカードルートの使用 を参照できます。
3.10.3.3. Istio Mixer 設定
以下の例は、ServiceMeshControlPlane
の Mixer パラメーターと適切な値を持つ利用可能なパラメーターの説明を示しています。
mixer パラメーターの例
mixer: enabled: true policy: autoscaleEnabled: false telemetry: autoscaleEnabled: false resources: requests: cpu: 10m memory: 128Mi limits:
パラメーター | 説明 | 値 | デフォルト値 |
---|---|---|---|
| このパラメーターは、Mixer を有効/無効にします。 |
|
|
| このパラメーターは、自動スケーリングを有効/無効にします。小規模な環境では、このパラメーターを無効にします。 |
|
|
|
| ご使用の環境設定に基づく、有効な割り当て可能な Pod 数。 |
|
|
| ご使用の環境設定に基づく、有効な割り当て可能な Pod 数。 |
|
タイプ | パラメーター | 説明 | 値 | デフォルト |
---|---|---|---|---|
|
| Mixer Telemetry に要求される CPU リソースのパーセンテージ。 | ご使用の環境設定に基づく、ミリコア単位の CPU リソース。 |
|
| Mixer Telemetry に要求されるメモリー量。 | ご使用の環境設定に基づく、利用可能なバイト単位のメモリー (例: 200Ki、50Mi、5Gi)。 |
| |
|
| 使用を許可された CPU リソース Mixer Telemetry の最大パーセンテージ。 | ご使用の環境設定に基づく、ミリコア単位の CPU リソース。 |
|
| 使用を許可されているメモリー Mixer Telemetry の最大量です。 | ご使用の環境設定に基づく、利用可能なバイト単位のメモリー (例: 200Ki、50Mi、5Gi)。 |
|
3.10.3.4. Istio Pilot 設定
Pilot を、リソース割り当てのスケジュールまたはその制限を設定するように設定できます。以下の例は、ServiceMeshControlPlane
の Pilot パラメーターと適切な値を持つ利用可能なパラメーターの説明を示しています。
pilot パラメーターの例
spec: runtime: components: pilot: deployment: autoScaling: enabled: true minReplicas: 1 maxReplicas: 5 targetCPUUtilizationPercentage: 85 pod: tolerations: - key: node.kubernetes.io/unreachable operator: Exists effect: NoExecute tolerationSeconds: 60 affinity: podAntiAffinity: requiredDuringScheduling: - key: istio topologyKey: kubernetes.io/hostname operator: In values: - pilot container: resources: limits: cpu: 100m memory: 128M
パラメーター | 説明 | 値 | デフォルト値 |
---|---|---|---|
| Pilot に要求される CPU リソースのパーセンテージ。 | ご使用の環境設定に基づく、ミリコア単位の CPU リソース。 |
|
| Pilot に要求されるメモリー量。 | ご使用の環境設定に基づく、利用可能なバイト単位のメモリー (例: 200Ki、50Mi、5Gi)。 |
|
| このパラメーターは、自動スケーリングを有効/無効にします。小規模な環境では、このパラメーターを無効にします。 |
|
|
| この値は、無作為のサンプリングの発生頻度を制御します。注: 開発またはテストの場合はこの値を増やします。 | 有効なパーセンテージ。 |
|
3.10.4. 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
パラメーター | 説明 | 値 | デフォルト値 |
---|---|---|---|
enabled | このパラメーターは、Kiali を有効/無効にします。Kiali はデフォルトで有効です。 |
|
|
dashboard viewOnlyMode | このパラメーターは、Kiali コンソールの表示専用 (view-only) モードを有効/無効にします。表示専用モードを有効にすると、ユーザーはコンソールを使用して Service Mesh を変更できなくなります。 |
|
|
ingress enabled | このパラメーターは、Kiali の Ingress を有効/無効にします。 |
|
|
3.10.4.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.10.4.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.10.5. Jaeger の設定
Service Mesh Operator は ServiceMeshControlPlane
リソースを作成する際に、分散トレースのリソースも作成できます。Service Mesh は分散トレースに Jaeger を使用します。
Jaeger 設定は、以下の 2 つの方法のいずれかで指定できます。
-
ServiceMeshControlPlane
リソースで Jaeger を設定します。この方法にはいくつかの制限があります。 -
Jaeger をカスタム
Jaeger
リソースに設定し、ServiceMeshControlPlane
リソースでその Jaeger インスタンスを参照します。name
の値に一致する Jaeger リソースが存在する場合、コントロールプレーンは既存のインストールを使用します。この方法では、Jaeger 設定を完全にカスタマイズできます。
ServiceMeshControlPlane
で指定されるデフォルトの Jaeger パラメーターは以下のとおりです。
デフォルトの all-in-one
Jaeger パラメーター
apiVersion: maistra.io/v1 kind: ServiceMeshControlPlane spec: version: v1.1 istio: tracing: enabled: true jaeger: template: all-in-one
パラメーター | 説明 | 値 | デフォルト値 |
---|---|---|---|
tracing: enabled: |
このパラメーターは、Service Mesh Operator によるトレースのインストールおよびデプロイを有効/無効にします。Jaeger のインストールはデフォルトで有効にされます。既存の Jaeger デプロイメントを使用するには、この値を |
|
|
jaeger: template: | このパラメーターは、使用する Jaeger デプロイメントストラテジーを指定します。 |
|
|
ServiceMeshControlPlane
リソースのデフォルトのテンプレートは、インメモリーストレージを使用する all-in-one
のデプロイメントストラテジーです。実稼働環境では、サポートされている唯一のストレージオプションが Elasticsearch であるため、実稼働環境内に Service Mesh をデプロイする際には、production-elasticsearch
テンプレートを要求するように ServiceMeshControlPlane
を設定する必要があります。
3.10.5.1. Elasticsearch の設定
デフォルトの Jaeger デプロイメントストラテジーでは、all-in-one
テンプレートを使用するため、最小のリソースでインストールを完了できます。ただし、all-in-one
テンプレートはインメモリーストレージを使用するので、開発、デモまたはテスト目的での使用を推奨しています。実稼働環境には使用しないでください。
実稼働環境で Service Mesh および Jaeger をデプロイする場合は、テンプレートを production-elasticsearch
テンプレートに変更する必要があります。これは Jaeger のストレージのニーズに対応するために Elasticsearch を使用します。
Elasticsearch はメモリー集約型アプリケーションです。デフォルトの OpenShift Container Platform インストールで指定されたノードの初期セットは、Elasticsearch クラスターをサポートするのに十分な大きさではない場合があります。デフォルトの Elasticsearch 設定は、ユースケースと OpenShift Container Platform インストール用に必要とするリソースに一致するように変更する必要があります。resources ブロックを有効な CPU 値およびメモリー値で変更することにより、各コンポーネントの CPU およびメモリーの制限の両方を調整することができます。推奨容量 (以上) のメモリーを使用して実行する場合は、追加のノードをクラスターに追加する必要があります。OpenShift Container Platform インストールに必要となるリソースを超えていないことを確認してください。
Elasticsearch を使用したデフォルトの "production" 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"
パラメーター | 説明 | 値 | デフォルト値 | 例 |
---|---|---|---|---|
tracing: enabled: | このパラメーターは、Service Mesh でトレースを有効/無効にします。Jaeger がデフォルトでインストールされます。 |
|
| |
ingress: enabled: | このパラメーターは、Jaeger の Ingress を有効/無効にします。 |
|
| |
jaeger: template: | このパラメーターは、使用する Jaeger デプロイメントストラテジーを指定します。 |
|
| |
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 を割り当てることを推奨します。 |
手順
-
cluster-admin
ロールを持つユーザーとして OpenShift Container Platform Web コンソールにログインします。 -
Operators
Installed Operators に移動します。 - Red Hat OpenShift Service Mesh Operator をクリックします。
- Istio Service Mesh Control Plane タブをクリックします。
-
コントロールプレーンのファイル名 (
basic-install
など) をクリックします。 - YAML タブをクリックします。
-
Jaeger パラメーターを編集し、デフォルトの
all-in-one
テンプレートをproduction-elasticsearch
テンプレートのパラメーターに置き換え、ユースケースに合わせて変更します。インデントが正しいことを確認します。 - Save をクリックします。
- Reload をクリックします。OpenShift Container Platform は Jaeger を再デプロイし、指定されたパラメーターに基づいて Elasticsearch リソースを作成します。
3.10.5.2. 既存の Jaeger インスタンスへの接続
SMCP が既存の Jaeger インスタンスに接続できるようにするには、以下が true である必要があります。
-
Jaeger インスタンスは、コントロールプレーンと同じ namespace にデプロイされます (例:
istio-system
namespace)。 - サービス間でのセキュアな通信を有効にするには、Jaeger インスタンスとの通信のセキュリティーを保護する oauth-proxy を有効にし、シークレットが Jaeger インスタンスにマウントされ、Kiali がこれと通信できるようにする必要があります。
-
カスタムまたは既存の Jaeger インスタンスを使用するには、
spec.istio.tracing.enabled
を "false" に設定し、Jaeger インスタンスのデプロイメントを無効にします。 -
spec.istio.global.tracer.zipkin.address を jaeger-collector
を jaeger-collector サービスのホスト名およびポートに設定して、正しい jaeger-collector エンドポイントを Mixer に指定します。通常、サービスのホスト名は<jaeger-instance-name>-collector.<namespace>.svc.cluster.local
です。 -
spec.istio.kiali.jaegerInClusterURL
を jaeger-query サービスのホスト名に設定し、トレースを収集するために正しい jaeger-query エンドポイントを Kiali に指定します。ポートは、デフォルトで 443 を使用するため、通常は不要です。通常、サービスのホスト名は<jaeger-instance-name>-query.<namespace>.svc.cluster.local
です。 Jaeger インスタンスのダッシュボード URL を Kiali に指定し、Kiali コンソールから Jaeger にアクセスできるようにします。Jaeger Operator によって作成される OpenShift ルートから URL を取得できます。Jaeger リソースが
external-jaeger
で、istio-system
プロジェクトにある場合は、以下のコマンドを使用してルートを取得できます。$ oc get route -n istio-system external-jaeger
出力例
NAME HOST/PORT PATH SERVICES [...] external-jaeger external-jaeger-istio-system.apps.test external-jaeger-query [...]
HOST/PORT
の値は、Jaeger ダッシュボードの外部アクセス可能な URL です。
例: Jaeger リソース
apiVersion: jaegertracing.io/v1 kind: "Jaeger" metadata: name: "external-jaeger" # Deploy to the Control Plane Namespace namespace: istio-system spec: # Set Up Authentication ingress: enabled: true security: oauth-proxy openshift: # This limits user access to the Jaeger instance to users who have access # to the control plane namespace. Make sure to set the correct namespace here sar: '{"namespace": "istio-system", "resource": "pods", "verb": "get"}' htpasswdFile: /etc/proxy/htpasswd/auth volumeMounts: - name: secret-htpasswd mountPath: /etc/proxy/htpasswd volumes: - name: secret-htpasswd secret: secretName: htpasswd
以下の ServiceMeshControlPlane
の例では、Jaeger Operator および Jaeger リソースのサンプルを使用して Jaeger をデプロイしていることを前提としています。
外部 Jaeger を使用した ServiceMeshControlPlane
の例
apiVersion: maistra.io/v1 kind: ServiceMeshControlPlane metadata: name: external-jaeger namespace: istio-system spec: version: v1.1 istio: tracing: # Disable Jaeger deployment by service mesh operator enabled: false global: tracer: zipkin: # Set Endpoint for Trace Collection address: external-jaeger-collector.istio-system.svc.cluster.local:9411 kiali: # Set Jaeger dashboard URL dashboard: jaegerURL: https://external-jaeger-istio-system.apps.test # Set Endpoint for Trace Querying jaegerInClusterURL: external-jaeger-query.istio-system.svc.cluster.local
3.10.5.3. Elasticsearch の設定
デフォルトの Jaeger デプロイメントストラテジーでは、all-in-one
テンプレートを使用するため、最小のリソースでインストールを完了できます。ただし、all-in-one
テンプレートはインメモリーストレージを使用するので、開発、デモまたはテスト目的での使用を推奨しています。実稼働環境には使用しないでください。
実稼働環境で Service Mesh および Jaeger をデプロイする場合は、テンプレートを production-elasticsearch
テンプレートに変更する必要があります。これは Jaeger のストレージのニーズに対応するために Elasticsearch を使用します。
Elasticsearch はメモリー集約型アプリケーションです。デフォルトの OpenShift Container Platform インストールで指定されたノードの初期セットは、Elasticsearch クラスターをサポートするのに十分な大きさではない場合があります。デフォルトの Elasticsearch 設定は、ユースケースと OpenShift Container Platform インストール用に必要とするリソースに一致するように変更する必要があります。resources ブロックを有効な CPU 値およびメモリー値で変更することにより、各コンポーネントの CPU およびメモリーの制限の両方を調整することができます。推奨容量 (以上) のメモリーを使用して実行する場合は、追加のノードをクラスターに追加する必要があります。OpenShift Container Platform インストールに必要となるリソースを超えていないことを確認してください。
Elasticsearch を使用したデフォルトの "production" 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"
パラメーター | 説明 | 値 | デフォルト値 | 例 |
---|---|---|---|---|
tracing: enabled: | このパラメーターは、Service Mesh でトレースを有効/無効にします。Jaeger がデフォルトでインストールされます。 |
|
| |
ingress: enabled: | このパラメーターは、Jaeger の Ingress を有効/無効にします。 |
|
| |
jaeger: template: | このパラメーターは、使用する Jaeger デプロイメントストラテジーを指定します。 |
|
| |
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 を割り当てることを推奨します。 |
手順
-
cluster-admin
ロールを持つユーザーとして OpenShift Container Platform Web コンソールにログインします。 -
Operators
Installed Operators に移動します。 - Red Hat OpenShift Service Mesh Operator をクリックします。
- Istio Service Mesh Control Plane タブをクリックします。
-
コントロールプレーンのファイル名 (
basic-install
など) をクリックします。 - YAML タブをクリックします。
-
Jaeger パラメーターを編集し、デフォルトの
all-in-one
テンプレートをproduction-elasticsearch
テンプレートのパラメーターに置き換え、ユースケースに合わせて変更します。インデントが正しいことを確認します。 - Save をクリックします。
- Reload をクリックします。OpenShift Container Platform は Jaeger を再デプロイし、指定されたパラメーターに基づいて Elasticsearch リソースを作成します。
3.10.5.4. Elasticsearch インデックスクリーナージョブの設定
Service Mesh Operator は ServiceMeshControlPlane
を作成した際に Jaeger のカスタムリソース (CR) も作成します。次に、Red Hat OpenShift 分散トレースプラットフォーム (Jaeger) Operator は Jaeger インスタンスの作成時にこの CR を使用します。
Elasticsearch ストレージを使用する場合は、デフォルトでジョブが作成され、古いトレースをストレージからクリーンアップします。このジョブのオプションを設定するには、Jaeger カスタムリソース (CR) を編集して、ユースケースに合わせてカスタマイズします。関連するオプションを以下に示します。
apiVersion: jaegertracing.io/v1 kind: Jaeger spec: strategy: production storage: type: elasticsearch esIndexCleaner: enabled: false numberOfDays: 7 schedule: "55 23 * * *"
パラメーター | 値 | 説明 |
---|---|---|
enabled | true/ false | インデックスクリーナージョブを有効または無効にします。 |
numberOfDays | 整数値 | インデックスの削除を待機する日数。 |
schedule | "55 23 * * *" | 実行するジョブの cron 式 |
Elasticsearch を OpenShift Container Platform で設定する方法の詳細は、Elasticsearch ログストアの設定 を参照してください。
3.10.6. 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 # ...
パラメーター | 説明 | 値 | デフォルト値 |
---|---|---|---|
| 3scale アダプターを使用するかどうか |
|
|
| gRPC サーバーのリッスンアドレスを設定します。 | 有効なポート番号 |
|
| ログ出力の最小レベルを設定します。 |
|
|
| ログが JSON としてフォーマットされるかどうかを制御します。 |
|
|
| ログに gRPC 情報を含むかどうかを制御します。 |
|
|
| 3scale システムおよびバックエンドメトリクスが収集され、Prometheus に報告されるかどうかを制御します。 |
|
|
|
3scale | 有効なポート番号 |
|
| キャッシュから期限切れのアイテムを消去するまで待機する時間 (秒単位)。 | 時間 (秒単位) |
|
| キャッシュ要素の更新を試行する場合の期限 | 時間 (秒単位) |
|
|
キャッシュにいつでも保存できるアイテムの最大数。キャッシュを無効にするには | 有効な数字 |
|
| キャッシュ更新ループ時に到達できないホストが再試行される回数 | 有効な数字 |
|
|
|
|
|
| 3scale システムおよびバックエンドへの要求を終了するまで待機する秒数を設定します。 | 時間 (秒単位) |
|
| 接続を閉じるまでの最大秒数 (+/-10% のジッター) を設定します。 | 時間 (秒単位) | 60 |
| true の場合は、認可要求のインメモリー apisonator キャッシュの作成を試行します。 |
|
|
| バックエンドキャッシュが有効な場合は、3scale に対してキャッシュをフラッシュする間隔を秒単位で設定します。 | 時間 (秒単位) | 15 |
| バックエンドキャッシュが承認データを取得できない場合は常に、要求を拒否する (クローズする) か、許可する (オープンする) かどうか。 |
|
|