milvus-logo
LFAI
フロントページへ
  • 管理ガイド

Kubernetes上でのモニタリングサービスのデプロイ

このトピックでは、Prometheusを使用してKubernetes上のMilvusクラスタに監視サービスをデプロイする方法について説明します。

Prometheusでメトリクスを監視する

メトリクスは、システムの実行状態に関する情報を提供する指標です。例えば、メトリクスを使用すると、Milvusのデータノードで消費されるメモリやCPUリソースの量を把握できます。Milvusクラスタ内のコンポーネントのパフォーマンスとステータスを把握することで、十分な情報を得ることができるため、より適切な意思決定を行い、よりタイムリーにリソースの割り当てを調整することができます。

一般的に、メトリクスはPrometheusのような時系列データベース(TSDB)に保存され、タイムスタンプとともに記録されます。Milvusのサービスを監視する場合、Prometheusを使用して、エクスポータによって設定されたエンドポイントからデータを引き出すことができます。その後、Prometheusは各Milvusコンポーネントのメトリクスをhttp://<component-host>:9091/metrics

しかし、1つのコンポーネントに対して複数のレプリカが存在する場合があり、Prometheusの手動設定が複雑になりすぎます。そこで、Kubernetesの拡張機能であるPrometheus Operatorを使用することで、Prometheusモニタリングインスタンスを自動化し、効率的に管理することができます。Prometheus Operatorを使用すると、メトリックターゲットとサービスプロバイダーを手動で追加する手間が省けます。

ServiceMonitorカスタムリソース定義(CRD)を使用すると、動的なサービスセットを監視する方法を宣言的に定義できます。また、ラベル選択を使用して、必要な構成で監視するサービスを選択できます。Prometheus Operatorを使用すると、メトリクスを公開する方法を指定する規約を導入できます。新しいサービスは、手動で再設定することなく、設定した規約に従って自動的に検出されます。

次の図は、Prometheus のワークフローを表しています。

Prometheus_architecture Prometheus_architecture

前提条件

このチュートリアルでは、kube-prometheusを使用することで、各監視およびアラートコンポーネントをインストールして手動で設定する手間を省きます。

Kube-prometheusは、Kubernetesマニフェスト、Grafanaダッシュボード、およびドキュメントとスクリプトを組み合わせたPrometheusルールを収集します。

監視サービスをデプロイする前に、kube-prometheus manifestsディレクトリ内の設定を使用して監視スタックを作成する必要があります。

$ git clone https://github.com/prometheus-operator/kube-prometheus.git
$ cd kube-prometheus
$ kubectl apply --server-side -f manifests/setup
$ kubectl wait \
        --for condition=Established \
        --all CustomResourceDefinition \
        --namespace=monitoring
$ kubectl apply -f manifests/
デフォルトのprometheus-k8s clusterroleではmilvusのメトリクスを取得できないため、パッチを適用する必要があります:
kubectl patch clusterrole prometheus-k8s --type=json -p='[{"op": "add", "path": "/rules/-", "value": {"apiGroups": [""], "resources": ["pods", "services", "endpoints"], "verbs": ["get", "watch", "list"]}}]'

スタックを削除するには、kubectl delete --ignore-not-found=true -f manifests/ -f manifests/setup を実行します。

Kubernetesに監視サービスをデプロイする

1.ダッシュボードにアクセスする

Prometheus サービスをポート9090 に、Grafana サービスをポート3000 に転送する。

$ kubectl --namespace monitoring --address 0.0.0.0 port-forward svc/prometheus-k8s 9090
$ kubectl --namespace monitoring --address 0.0.0.0 port-forward svc/grafana 3000

2.ServiceMonitorを有効にする

Milvus HelmではServiceMonitorはデフォルトでは有効になっていません。KubernetesクラスタにPrometheus Operatorをインストールした後、パラメータmetrics.serviceMonitor.enabled=true を追加することで有効にできます。

$ helm upgrade my-release milvus/milvus --set metrics.serviceMonitor.enabled=true --reuse-values

インストールが完了したら、kubectl を使用して ServiceMonitor リソースを確認します。

$ kubectl get servicemonitor
NAME                           AGE
my-release-milvus              54s

次のステップ

翻訳DeepL

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
フィードバック

このページは役に立ちましたか ?