Hitachi

Hitachi Microservices Platform - Paxos Commit Transaction Orchestrator ユーザーズガイド


6.4.12 Prometheusの要件

このKubernetesアプリケーションは、HMP-PCTOとして提供します。次の表に示す要件を満たすように作成します。

表6‒48 Prometheusの要件

項目

要件

ワークロードリソース

Deploymentリソースとしてください。

ネームスペース

任意の名称を指定できます。ただし、「6.4.9 Filebeatの要件」〜「6.4.15 Logstashの要件」では同一のネームスペースを指定してください。

ラベル

.metadata.labelには次に示すキーを設定します。
  • キー名:app.kubernetes.io/instance

    値:<リリース名>

  • キー名:app.kubernetes.io/managed-by

    値:Helm

  • キー名:app.kubernetes.io/name

    値:prometheus

    備考:チャート名

  • キー名:app.kubernetes.io/version

    値:V.R.S※1

    備考:バージョン

  • キー名:helm.sh/chart

    値:prometheus-V.R.S※2

    備考:<チャート名>-<バージョン>

.spec.selector.matchLabels、および.spec.template.metadata.labelsには次に示すキーを設定します。
  • キー名:app.kubernetes.io/instance

    値:<リリース名>

    備考:

  • キー名:app.kubernetes.io/name

    値:prometheus

    備考:チャート名

アノテーション

規定しません。

初期化コンテナ構成

Dependency-Checkerコンテナ(「5.3.9 Dependency-Checkerコンテナイメージ」を参照してください)

コンテナ構成

  • Prometheusコンテナ

レプリカ数

「1」

再起動ポリシー

コンテナ障害時は必ず再起動(オートヒーリング)してください(Kubernetesのデフォルト設定)。

アップデートストラテジー

ローリングアップデートとしてください(Kubernetesのデフォルト設定)。

Podセキュリティコンテキスト

規定しません。

アクセス制御

Podに対するロールベースアクセス制御(RBAC)で、次に示すとおり対象リソースへのアクセス許可を定義してください。

<デプロイ依存関係チェック機能用ロール>

  • APIグループ

    空(コアグループ)、apps

  • リソース

    pods、replicasets、deployments、statefulsets、daemonsets

  • アクセス許可

    get、list

上記アクセス許可を定義するためのKubernetesリソースはRoleリソース、RoleBindingリソース、ServiceAccountリソースを使用してください。

<メトリクス収集用ロール>

  • APIグループ

    空(コアグループ)

  • リソース

    pods、nodes、nodes/proxy、services、endpoints

  • アクセス許可

    get、watch、list

上記アクセス許可を定義するためのKubernetesリソースはClusterRoleリソース、ClusterRoleBindingリソース、ServiceAccountリソースを使用してください。

ServiceAccountリソースのトークンの自動マウント(automountServiceAccountTokenフィールド)を「有効(true)」にしてください(Kubernetesのデフォルト設定)。

Podの割り当てノードの制御

規定しません。

永続化ボリューム

規定しません。

Podライフサイクル設定

terminationGracePeriodSecondsを次のとおり設定してください。

  • 安全な停止待機秒数(terminationGracePeriodSeconds)

    推奨値「300」

注※1

V.R.Sは使用するPrometheusのバージョンに合わせて読み替えてください。

注※2

V.R.Sは使用するHMP-PCTOのバージョンに合わせて読み替えてください。

コンテナごとの要件を次に示します。

表6‒49 PrometheusのDependency-Checkerコンテナの要件

項目

要件

コマンド

次に示すコマンド引数(args)を設定します。

  • 第1引数(リトライ回数)

    推奨値「30」

  • 第2引数(リトライ間隔秒数)

    推奨値「10」

  • 第3引数(接続タイムアウト秒数)

    推奨値「10」

  • 第4引数(応答タイムアウト秒数)

    推奨値「10」

  • 第5引数以降(ターゲットKubernetesオブジェクト群)

    <対象Kubernetesアプリケーション>

    Elasticsearch

    例を次に示します。

    (例)

    my-namespace/statefulsets/elasticsearch-master

(エントリポイントはDependency-Checkerコンテナイメージで「HMP-PCTOのデプロイ依存関係チェックスクリプト(dependency_check.sh)」を設定済みです)

ネットワーク設定

設定しません(デフォルト)。

コンフィグ設定

設定しません(デフォルト)。

コンテナセキュリティコンテキスト

設定しません(デフォルト)。

コンテナライフサイクル設定

設定しません(デフォルト)。

CPU/メモリリソース制限

設定しません(デフォルト)。

表6‒50 Prometheusコンテナの要件

項目

要件

コマンド

次に示すコマンド引数(args)を設定します。

  • --config.file

    「/etc/prometheus/prometheus.yml」

    Prometheusの設定ファイルを配置したパス名を設定します。ConfigMapで定義したprometheus.ymlは、/etc/prometheus/に配置されます。

  • --storage.tsdb.retention.time

    PrometheusのHelmチャートパラメタのprometheus.storage.retentionTimeの設定値

    パラメタの詳細については、「(1) Helmチャートのパラメタ」を参照してください。

ネットワーク設定

デプロイしたノードのIPで、次のポートを公開してください(Serviceリソース)。

PrometheusのWeb UIアクセス用ポート番号
  • プロトコル

    TCP

  • 公開ポート

    デプロイしたノード上のほかと被らないポート番号

  • コンテナポート

    9090

コンフィグ設定

規定しません。

コンテナセキュリティコンテキスト

規定しません。

コンテナライフサイクル設定

Liveness Probeを次のとおり設定してください。
  • 初回Probe実行待機秒数(initialDelaySeconds)

    推奨値「30」

  • Probe実行間隔秒数(periodSeconds)

    推奨値「15」

  • Probe最大失敗回数(failureThreshold)

    推奨値「3」

  • Probeタイムアウト秒数(timeoutSeconds)

    推奨値「10」

  • Probe失敗後の成功判定最小回数(successThreshold)

    推奨値「1」

Readiness Probeを次のとおり設定してください。
  • 初回Probe実行待機秒数(initialDelaySeconds)

    推奨値「30」

  • Probe実行間隔秒数(periodSeconds)

    推奨値「5」

  • Probe最大失敗回数(failureThreshold)

    推奨値「3」

  • Probeタイムアウト秒数(timeoutSeconds)

    推奨値「4」

  • Probe失敗後の成功判定最小回数(successThreshold)

    推奨値「1」

CPU/メモリリソース制限

実稼働を通して、環境に合わせた設定を実施してください。

Helmチャートのディレクトリ/ファイル構成を次の表に示します。

表6‒51 PrometheusのHelmチャートのディレクトリ/ファイル構成

ディレクトリ/ファイル

説明

templates/

Helmチャートのtemplate配置用ディレクトリ

includes/

HelmチャートのConfigMapオブジェクトの設定内容外部化ファイル配置用ディレクトリ

config-map-data.yaml

ConfigMapオブジェクトの設定内容外部化ファイル

prometheus.yml.tpl

ConfigMapオブジェクトの設定内容外部化ファイル

config-map.yaml

ConfigMapオブジェクトのマニフェスト

deployment.yaml

Deploymentオブジェクトのマニフェスト

service.yaml

Serviceオブジェクトのマニフェスト

serviceaccount.yaml

ServiceAccountオブジェクトのマニフェスト

Chart.yaml

Chart.yaml

values.yaml

values.yaml

values.schema.json

values.yamlの設定値のバリデーション用ファイル