2.10. カスタムリソース
こちらは、サポートされなくなった Red Hat OpenShift Service Mesh リリースのドキュメントです。
Service Mesh バージョン 1.0 および 1.1 コントロールプレーンはサポートされなくなりました。Service Mesh コントロールプレーンのアップグレードは、Service Mesh の アップグレード を参照してください。
特定の Red Hat Service Mesh リリースのサポートステータスは、製品ライフサイクルページ を参照してください。
デフォルトの Service Mesh のカスタムリソースを変更するか、新規のカスタムリソースを作成して、Red Hat OpenShift Service Mesh をカスタマイズできます。
2.10.1. 前提条件
-
cluster-adminロールを持つアカウントがある。 - Red Hat OpenShift Service Mesh をインストールする準備 プロセスを完了している。
- Operator がインストール済みである。
2.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
2.10.3. ServiceMeshControlPlane パラメーター
以下の例は ServiceMeshControlPlane パラメーターの使用を示し、表はサポートされているパラメーターに関する追加情報を示しています。
CPU、メモリー、Pod の数などのパラメーターを使用して Red Hat OpenShift Service Mesh に設定するリソースは、Red Hat OpenShift Service on AWS クラスターの設定をベースとしています。現在のクラスター設定で利用可能なリソースに基づいて、これらのパラメーターを設定します。
2.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
表2.4 グローバルパラメーター
| パラメーター | 説明 | 値 | デフォルト値 |
|---|---|---|---|
|
| このパラメーターは、ポリシーチェックを有効/無効にします。 |
|
|
|
| このパラメーターは、Mixer ポリシーサービスに到達できない場合にトラフィックを Envoy サイドカーコンテナーに通過させることができるかどうかを指定します。 |
|
|
|
| Operator が Istio イメージをプルするために使用するタグ。 | 有効なコンテナーイメージタグです。 |
|
|
| Operator が Istio イメージをプルするために使用するハブ。 | 有効なイメージリポジトリーです。 |
|
|
| このパラメーターは、デフォルトでサービス間での Mutual Transport Layer Security (mTLS) の有効化/無効化を制御します。 |
|
|
|
| Istio イメージを提供するレジストリーへのアクセスがセキュアな場合は、ここに imagePullSecret を一覧表示します。 | redhat-registry-pullsecret または quay-pullsecret | なし |
これらのパラメーターは、グローバルパラメーターのプロキシーサブセットに固有のものです。
表2.5 プロキシーパラメーター
| タイプ | パラメーター | 説明 | 値 | デフォルト値 |
|---|---|---|---|---|
|
|
| Envoy プロキシー用に要求される CPU リソースの量。 | ご使用の環境設定に基づき、コアまたはミリコア (例: 200m、0.5、1) で指定される CPU リソース。 |
|
|
| Envoy プロキシー用に要求されるメモリー量。 | ご使用の環境設定に基づく、利用可能なバイト単位のメモリー (例: 200Ki、50Mi、5Gi)。 |
| |
|
|
| Envoy プロキシー用に要求される CPU リソースの最大量。 | ご使用の環境設定に基づき、コアまたはミリコア (例: 200m、0.5、1) で指定される CPU リソース。 |
|
|
| 使用が許可されているメモリー Envoy プロキシーの最大量。 | ご使用の環境設定に基づく、利用可能なバイト単位のメモリー (例: 200Ki、50Mi、5Gi)。 |
|
2.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
表2.6 Istio ゲートウェイパラメーター
| パラメーター | 説明 | 値 | デフォルト値 |
|---|---|---|---|
|
| このパラメーターは、自動スケーリングを有効/無効にします。 |
|
|
|
|
| ご使用の環境設定に基づく、有効な割り当て可能な Pod 数。 |
|
|
|
| ご使用の環境設定に基づく、有効な割り当て可能な Pod 数。 |
|
|
| このパラメーターは、自動スケーリングを有効/無効にします。 |
|
|
|
|
| ご使用の環境設定に基づく、有効な割り当て可能な Pod 数。 |
|
|
|
| ご使用の環境設定に基づく、有効な割り当て可能な Pod 数。 |
|
2.10.3.3. Istio Mixer 設定
以下の例は、ServiceMeshControlPlane の Mixer パラメーターと適切な値を持つ利用可能なパラメーターの説明を示しています。
Mixer パラメーターの例
mixer:
enabled: true
policy:
autoscaleEnabled: false
telemetry:
autoscaleEnabled: false
resources:
requests:
cpu: 10m
memory: 128Mi
limits:
表2.7 Istio Mixer ポリシーパラメーター
| パラメーター | 説明 | 値 | デフォルト値 |
|---|---|---|---|
|
| このパラメーターは、Mixer を有効/無効にします。 |
|
|
|
| このパラメーターは、自動スケーリングを有効/無効にします。小規模な環境では、このパラメーターを無効にします。 |
|
|
|
|
| ご使用の環境設定に基づく、有効な割り当て可能な Pod 数。 |
|
|
|
| ご使用の環境設定に基づく、有効な割り当て可能な Pod 数。 |
|
表2.8 Istio Mixer Telemetry パラメーター
| タイプ | パラメーター | 説明 | 値 | デフォルト |
|---|---|---|---|---|
|
|
| Mixer Telemetry に要求される CPU リソースのパーセンテージ。 | ご使用の環境設定に基づく、ミリコア単位の CPU リソース。 |
|
|
| Mixer Telemetry に要求されるメモリー量。 | ご使用の環境設定に基づく、利用可能なバイト単位のメモリー (例: 200Ki、50Mi、5Gi)。 |
| |
|
|
| 使用を許可された CPU リソース Mixer Telemetry の最大パーセンテージ。 | ご使用の環境設定に基づく、ミリコア単位の CPU リソース。 |
|
|
| 使用を許可されているメモリー Mixer Telemetry の最大量です。 | ご使用の環境設定に基づく、利用可能なバイト単位のメモリー (例: 200Ki、50Mi、5Gi)。 |
|
2.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
表2.9 Istio Pilot パラメーター
| パラメーター | 説明 | 値 | デフォルト値 |
|---|---|---|---|
|
| Pilot に要求される CPU リソースのパーセンテージ。 | ご使用の環境設定に基づく、ミリコア単位の CPU リソース。 |
|
|
| Pilot に要求されるメモリー量。 | ご使用の環境設定に基づく、利用可能なバイト単位のメモリー (例: 200Ki、50Mi、5Gi)。 |
|
|
| このパラメーターは、自動スケーリングを有効/無効にします。小規模な環境では、このパラメーターを無効にします。 |
|
|
|
| この値は、無作為のサンプリングの発生頻度を制御します。注: 開発またはテストの場合はこの値を増やします。 | 有効なパーセンテージ。 |
|
2.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
表2.10 Kiali パラメーター
| パラメーター | 説明 | 値 | デフォルト値 |
|---|---|---|---|
enabled | このパラメーターは、Kiali を有効/無効にします。Kiali はデフォルトで有効です。 |
|
|
dashboard viewOnlyMode | このパラメーターは、Kiali コンソールの表示専用 (view-only) モードを有効/無効にします。表示専用モードを有効にすると、ユーザーはコンソールを使用して Service Mesh を変更できなくなります。 |
|
|
ingress enabled | このパラメーターは、Kiali の Ingress を有効/無効にします。 |
|
|
2.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
2.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
2.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
表2.11 Jaeger パラメーター
| パラメーター | 説明 | 値 | デフォルト値 |
|---|---|---|---|
tracing: enabled: |
このパラメーターは、Service Mesh Operator によるトレースのインストールおよびデプロイを有効/無効にします。Jaeger のインストールはデフォルトで有効にされます。既存の Jaeger デプロイメントを使用するには、この値を |
|
|
jaeger: template: | このパラメーターは、使用する Jaeger デプロイメントストラテジーを指定します。 |
|
|
ServiceMeshControlPlane リソースのデフォルトのテンプレートは、インメモリーストレージを使用する all-in-one のデプロイメントストラテジーです。実稼働環境では、サポートされている唯一のストレージオプションが Elasticsearch であるため、実稼働環境内に Service Mesh をデプロイする際には、production-elasticsearch テンプレートを要求するように ServiceMeshControlPlane を設定する必要があります。
2.10.5.1. Elasticsearch の設定
デフォルトの Jaeger デプロイメントストラテジーでは、all-in-one テンプレートを使用するため、最小のリソースでインストールを完了できます。ただし、all-in-one テンプレートはインメモリーストレージを使用するので、開発、デモまたはテスト目的での使用を推奨しています。実稼働環境には使用しないでください。
実稼働環境で Service Mesh および Jaeger をデプロイする場合は、テンプレートを production-elasticsearch テンプレートに変更する必要があります。これは Jaeger のストレージのニーズに対応するために Elasticsearch を使用します。
Elasticsearch はメモリー集約型アプリケーションです。デフォルトの Red Hat OpenShift Service on AWS インストールで指定されたノードの初期セットは、Elasticsearch クラスターをサポートするのに十分な大きさではない場合があります。デフォルトの Elasticsearch 設定は、ユースケースと Red Hat OpenShift Service on AWS インストール用に必要とするリソースに一致するように変更する必要があります。resources ブロックを有効な CPU 値およびメモリー値で変更することにより、各コンポーネントの CPU およびメモリーの制限の両方を調整できます。推奨容量 (以上) のメモリーを使用して実行する場合は、追加のノードをクラスターに追加する必要があります。Red Hat OpenShift Service on AWS インストールに必要となるリソースを超えていないことを確認してください。
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"
表2.12 Elasticsearch パラメーター
| パラメーター | 説明 | 値 | デフォルト値 | 例 |
|---|---|---|---|---|
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ロールを持つユーザーとして Red Hat OpenShift Service on AWS 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 をクリックします。Red Hat OpenShift Service on AWS は Jaeger を再デプロイし、指定されたパラメーターに基づいて Elasticsearch リソースを作成します。
2.10.5.2. 既存の Jaeger インスタンスへの接続
SMCP が既存の Jaeger インスタンスに接続できるようにするには、以下が true である必要があります。
-
Jaeger インスタンスは、コントロールプレーンと同じ namespace にデプロイされます (例:
istio-systemnamespace)。 - サービス間でのセキュアな通信を有効にするには、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
2.10.5.3. Elasticsearch の設定
デフォルトの Jaeger デプロイメントストラテジーでは、all-in-one テンプレートを使用するため、最小のリソースでインストールを完了できます。ただし、all-in-one テンプレートはインメモリーストレージを使用するので、開発、デモまたはテスト目的での使用を推奨しています。実稼働環境には使用しないでください。
実稼働環境で Service Mesh および Jaeger をデプロイする場合は、テンプレートを production-elasticsearch テンプレートに変更する必要があります。これは Jaeger のストレージのニーズに対応するために Elasticsearch を使用します。
Elasticsearch はメモリー集約型アプリケーションです。デフォルトの Red Hat OpenShift Service on AWS インストールで指定されたノードの初期セットは、Elasticsearch クラスターをサポートするのに十分な大きさではない場合があります。デフォルトの Elasticsearch 設定は、ユースケースと Red Hat OpenShift Service on AWS インストール用に必要とするリソースに一致するように変更する必要があります。resources ブロックを有効な CPU 値およびメモリー値で変更することにより、各コンポーネントの CPU およびメモリーの制限の両方を調整できます。推奨容量 (以上) のメモリーを使用して実行する場合は、追加のノードをクラスターに追加する必要があります。Red Hat OpenShift Service on AWS インストールに必要となるリソースを超えていないことを確認してください。
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"
表2.13 Elasticsearch パラメーター
| パラメーター | 説明 | 値 | デフォルト値 | 例 |
|---|---|---|---|---|
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ロールを持つユーザーとして Red Hat OpenShift Service on AWS 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 をクリックします。Red Hat OpenShift Service on AWS は Jaeger を再デプロイし、指定されたパラメーターに基づいて Elasticsearch リソースを作成します。
2.10.5.4. Elasticsearch インデックスクリーナージョブの設定
Service Mesh Operator は ServiceMeshControlPlane を作成した際に Jaeger のカスタムリソース (CR) も作成します。次に、Red Hat OpenShift 分散トレースプラットフォーム 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 * * *"表2.14 Elasticsearch インデックスクリーナーのパラメーター
| パラメーター | 値 | 説明 |
|---|---|---|
| enabled | true/ false | インデックスクリーナージョブを有効または無効にします。 |
| numberOfDays | 整数値 | インデックスの削除を待機する日数。 |
| schedule | "55 23 * * *" | 実行するジョブの cron 式 |
2.10.6. 3scale の設定
以下の表では、ServiceMeshControlPlane リソースの 3scale Istio アダプターのパラメーターを説明しています。
3scale パラメーターの例
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
表2.15 3scale パラメーター
| パラメーター | 説明 | 値 | デフォルト値 |
|---|---|---|---|
|
| 3scale アダプターを使用するかどうか |
|
|
|
| gRPC サーバーのリッスンアドレスを設定します。 | 有効なポート番号 |
|
|
| ログ出力の最小レベルを設定します。 |
|
|
|
| ログが JSON としてフォーマットされるかどうかを制御します。 |
|
|
|
| ログに gRPC 情報を含むかどうかを制御します。 |
|
|
|
| 3scale システムおよびバックエンドメトリクスが収集され、Prometheus に報告されるかどうかを制御します。 |
|
|
|
|
3scale | 有効なポート番号 |
|
|
| キャッシュから期限切れのアイテムを消去するまで待機する時間 (秒単位)。 | 時間 (秒単位) |
|
|
| キャッシュ要素の更新を試行する場合の期限 | 時間 (秒単位) |
|
|
|
キャッシュにいつでも保存できるアイテムの最大数。キャッシュを無効にするには | 有効な数字 |
|
|
| キャッシュ更新ループ時に到達できないホストが再試行される回数 | 有効な数字 |
|
|
|
|
|
|
|
| 3scale システムおよびバックエンドへの要求を終了するまで待機する秒数を設定します。 | 時間 (秒単位) |
|
|
| 接続を閉じるまでの最大秒数 (+/-10% のジッター) を設定します。 | 時間 (秒単位) | 60 |
|
| true の場合は、承認要求のインメモリー apisonator キャッシュの作成を試行します。 |
|
|
|
| バックエンドキャッシュが有効な場合は、3scale に対してキャッシュをフラッシュする間隔を秒単位で設定します。 | 時間 (秒単位) | 15 |
|
| バックエンドキャッシュが承認データを取得できない場合は常に、要求を拒否する (クローズする) か、許可する (オープンする) かどうか。 |
|
|