Helm Charts をはじめよう (Prometheus Operator を使用したモニタリング)
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
このドキュメントでは、Prometheus Operator (kube-prometheus-stack) を使用して Kubernetes 上で Scalar 製品の監視を開始する方法について説明します。ここでは、テスト用の Mac または Linux 環境がすでにあることを前提としています。このドキュメントでは Minikube を使用し ますが、これから説明する手順はどの Kubernetes クラスターでも機能するはずです。
私たちが作るもの
次のように、次のコンポーネントを Kubernetes クラスターにデプロイします。
+--------------------------------------------------------------------------------------------------+
| +------------------------------------------------------+ +-----------------+ |
| | kube-prometheus-stack | | Scalar 製品 | |
| | | | | |
| | +--------------+ +--------------+ +--------------+ | -----(監視)----> | +-----------+ | |
| | | Prometheus | | Alertmanager | | Grafana | | | | ScalarDB | | |
| | +-------+------+ +------+-------+ +------+-------+ | | +-----------+ | |
| | | | | | | +-----------+ | |
| | +----------------+-----------------+ | | | ScalarDL | | |
| | | | | +-----------+ | |
| +--------------------------+---------------------------+ +-----------------+ |
| | |
| | Kubernetes |
+----------------------------+---------------------------------------------------------------------+
| <- localhost (127.0.0.1) に公開するか、ロードバランサーなどを使用してアクセスします
|
(HTTP 経由でダッシュボードにアクセスする)
|
+----+----+
| ブラウザ |
+---------+
ステップ1. Kubernetes クラスターを開始する
まず、Kubernetes クラスターを準備する必要があります。minikube 環境を使用する場合は、Scalar Helm Charts をはじめようを参照してください。すでに Kubernetes クラスターを開始している場合は、この手順をスキップできます。
ステップ2. カスタム値ファイルを準備する
-
kube-prometheus-stackのサンプルファイル scalar-prometheus-custom-values.yaml を保存します。 -
次のように
scalar-prometheus-custom-values.yamlにカスタム値を追加します。- 設定
prometheus.service.typeをLoadBalancerに設定します。alertmanager.service.typeをLoadBalancerに設定します。grafana.service.typeをLoadBalancerに設定します。grafana.service.portを3000に設定します。
- 例
alertmanager:
service:
type: LoadBalancer
...
grafana:
service:
type: LoadBalancer
port: 3000
...
prometheus:
service:
type: LoadBalancer
... - 注記:
-
Helm Chart を使用して Prometheus Operator デプロイメントをカスタマイズする場合は、Scalar 製品を監視するために次の構成を設定する必要があります。
- Prometheus Operator が Scalar 製品の
ServiceMonitorおよびPrometheusRuleを検出できるように、serviceMonitorSelectorNilUsesHelmValuesおよびruleSelectorNilUsesHelmValuesをfalse(デフォルトではtrue) に設定します。
- Prometheus Operator が Scalar 製品の
-
Scalar Manager を使用する場合は、Scalar Manager が CPU およびメモリリソースを収集できるように次の構成を設定する必要があります。
kubeStateMetrics.enabled、nodeExporter.enabled、およびkubelet.enabledをtrueに設定します。
-
Scalar Manager を使用する場合は、Scalar Manager が Grafana を組み込みきるように次の構成を設定する必要があります。
grafana.ini.security.allow_embeddingおよびgrafana.ini.auth.anonymous.enabledをtrueに設定します。grafana.ini.auth.anonymous.org_nameを使用中の組織に設定します。Scalar のサンプルを使う場合では、Main Org.に設定します。grafana.ini.auth.anonymous.org_roleをEditorに設定します。
-
- 設定
ステップ3. kube-prometheus-stack をデプロイする
-
prometheus-communityhelm リポジトリを追加します。helm repo add prometheus-community https://prometheus-community.github.io/helm-charts -
Kubernetes 上に名前空間
monitoringを作成します。kubectl create namespace monitoring -
kube-prometheus-stackをデプロイします。helm install scalar-monitoring prometheus-community/kube-prometheus-stack -n monitoring -f scalar-prometheus-custom-values.yaml
ステップ4. Helm Chart を使用して Scalar 製品をデプロイ (またはアップグレード)
- 注記:
- 最低限の手順を説明します。ScalarDB および ScalarDL のデプロイメントについて詳しく知りたい場合は、以下のドキュメントを参照してください。
-
Scalar 製品の Prometheus 監視を有効にするには、カスタム値ファイルで次の構成に
trueを設定します。- 構成
*.prometheusRule.enabled*.grafanaDashboard.enabled*.serviceMonitor.enabled
- サンプル設定ファイル
- ScalarDB (scalardb-custom-values.yaml)
envoy:
prometheusRule:
enabled: true
grafanaDashboard:
enabled: true
serviceMonitor:
enabled: true
scalardb:
prometheusRule:
enabled: true
grafanaDashboard:
enabled: true
serviceMonitor:
enabled: true - ScalarDL Ledger (scalardl-ledger-custom-values.yaml)
envoy:
prometheusRule:
enabled: true
grafanaDashboard:
enabled: true
serviceMonitor:
enabled: true
ledger:
prometheusRule:
enabled: true
grafanaDashboard:
enabled: true
serviceMonitor:
enabled: true - ScalarDL Auditor (scalardl-auditor-custom-values.yaml)
envoy:
prometheusRule:
enabled: true
grafanaDashboard:
enabled: true
serviceMonitor:
enabled: true
auditor:
prometheusRule:
enabled: true
grafanaDashboard:
enabled: true
serviceMonitor:
enabled: true
- ScalarDB (scalardb-custom-values.yaml)
- 構成
-
上記のカスタム値ファイルを含む Helm Charts を使用して、Scalar 製品をデプロイ (またはアップグレード) します。
- 例
- ScalarDB
helm install scalardb scalar-labs/scalardb -f ./scalardb-custom-values.yamlhelm upgrade scalardb scalar-labs/scalardb -f ./scalardb-custom-values.yaml - ScalarDL Ledger
helm install scalardl-ledger scalar-labs/scalardl -f ./scalardl-ledger-custom-values.yamlhelm upgrade scalardl-ledger scalar-labs/scalardl -f ./scalardl-ledger-custom-values.yaml - ScalarDL Auditor
helm install scalardl-auditor scalar-labs/scalardl-audit -f ./scalardl-auditor-custom-values.yamlhelm upgrade scalardl-auditor scalar-labs/scalardl-audit -f ./scalardl-auditor-custom-values.yaml
- ScalarDB
- 例
ステップ5. ダッシュボードにアクセスする
minikube を使用する場合
-
各サービスリソースを
localhost (127.0.0.1)として公開するには、別のターミナルを開き、minikube tunnelコマンドを実行します。minikube tunnelminikube tunnelコマンドを実行すると、各サービスリソースの EXTERNAL-IP が127.0.0.1として表示されます。kubectl get svc -n monitoring scalar-monitoring-kube-pro-prometheus scalar-monitoring-kube-pro-alertmanager scalar-monitoring-grafana【コマンド実行結果】
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
scalar-monitoring-kube-pro-prometheus LoadBalancer 10.98.11.12 127.0.0.1 9090:30550/TCP 26m
scalar-monitoring-kube-pro-alertmanager LoadBalancer 10.98.151.66 127.0.0.1 9093:31684/TCP 26m
scalar-monitoring-grafana LoadBalancer 10.103.19.4 127.0.0.1 3000:31948/TCP 26m -
各ダッシュボードにアクセスします。
- Prometheus
http://localhost:9090/ - Alertmanager
http://localhost:9093/ - Grafana
http://localhost:3000/- 注記:
- Grafana のユーザーとパスワードは以下で確認できます。
- ユーザー
kubectl get secrets scalar-monitoring-grafana -n monitoring -o jsonpath='{.data.admin-user}' | base64 -d - パスワード
kubectl get secrets scalar-monitoring-grafana -n monitoring -o jsonpath='{.data.admin-password}' | base64 -d
- ユーザー
- Grafana のユーザーとパスワードは以下で確認できます。
- 注記:
- Prometheus
minikube 以外の Kubernetes を使用する場合
minikube 以外の Kubernetes クラスターを使用する場合は、各 Kubernetes クラスターの方式に従って LoadBalancer サービスにアクセスする必要があります。たとえば、クラウドサービスによって提供されるロードバランサーや kubectl port-forward コマンドを使用します。
ステップ6. すべてのリソースを削除する
Kubernetes クラスターでのモニタリングテストが完了したら、すべてのリ ソースを削除します。
-
minikube tunnelコマンドを終了します。(minikubeを使用する場合)Ctrl + C -
kube-prometheus-stackをアンインストールします。helm uninstall scalar-monitoring -n monitoring -
minikube を削除します。(オプション / minikube を使用する場合)
minikube delete --all- 注記:
- ScalarDB または ScalarDL をデプロイする場合は、minikube を削除する前にそれらを削除する必要があります。
- 注記: