Kubernetes クラスターが複数のクラウドプロバイダーにまたがって実行されている場合、モニタリングは断片化しがちです。各クラスターには独自の Prometheus サーバー、Grafana インスタンス、AlertManager の設定が必要となり、クラスター横断でのクエリや統一されたアラート機能の実現が困難になります。Managed Service for Prometheus と ACK One の登録済みクラスターは、実行場所に関わらず、すべての Kubernetes クラスターに対して単一のモニタリングスタックを提供することで、この問題を解決します。
ACK One を介して外部クラスター (Tencent Cloud 上のクラスターなど) を登録し、軽量な Prometheus エージェントをインストールすることで、統一されたメトリック収集、Grafana ダッシュボード、アラート管理により、すべてのクラスターを 1 か所からモニタリングできます。
仕組み
外部 Kubernetes クラスター (Tencent Cloud 上で実行されているものなど) を ACK One の登録済みクラスターとして登録します。
各登録済みクラスターに軽量な Prometheus エージェント (
ack-arms-prometheus) をインストールします。エージェントはメトリックを収集し、リモートライトを介して Managed Service for Prometheus に送信します。
単一の Managed Service for Prometheus インスタンスを介して、すべてのクラスターからのメトリックに対してクエリ、可視化、アラート設定を行います。
Managed Service for Prometheus とセルフマネージド Prometheus の比較
複数のクラウドプロバイダーにまたがってセルフマネージド Prometheus を実行すると、いくつかの運用上の課題が生じます:
シングルプロセスアーキテクチャ:オープンソースの Prometheus は、水平スケーリングのないシングルプロセスとして実行されます。トラフィックスパイク時には、メトリック収集がボトルネックになります。
ストレージの制限:組み込みの時系列データベース (TSDB) は、データがシングルノードに保存されるローカル SSD ストレージを使用するため、データ損失のリスクがあります。
断片化されたモニタリング:各クラスターには、独自の Prometheus サーバー、Grafana インスタンス、AlertManager が必要です。クラスター横断クエリには、Thanos などの追加コンポーネントが必要です。
高いメンテナンスオーバーヘッド:収集、ストレージ、可視化、アラート機能といったモニタリングスタックのすべてのレイヤーを構築・維持するには、多大なエンジニアリング工数が必要です。
Managed Service for Prometheus は、組み込みの高可用性、無制限のクラウドストレージ、クラスター横断クエリ機能を備えたフルホステッドのモニタリングスタックで、これらの課題に対処します。
パフォーマンス比較
| 機能 | Managed Service for Prometheus | セルフマネージド Prometheus |
|---|---|---|
| 高可用性 | 収集とストレージのための複数レプリカによる水平スケーリング | シングルプロセス、水平スケーリングなし |
| ストレージ容量 | 無制限のクラウドベースのストレージ | ローカルディスクによる制限 |
| 収集スループット (シングルレプリカ:2 コア CPU、4 GB メモリ) | 600 万データポイント | 100 万データポイント |
| クエリパフォーマンス (6 億タイムポイント) | 8〜10 秒 | 180 秒 |
| 可視化 | 事前設定済みダッシュボードを備えた組み込み Grafana | 手動での Grafana デプロイメントとダッシュボード設定 |
| アラート機能 | テンプレートとエスカレーションポリシーを備えた統合アラート管理 | 手動での AlertManager プラグインインストール |
| 高度な機能 | 事前集約、ダウンサンプリング、GlobalView | 利用不可 |
リソース効率
Prometheus エージェントは軽量です。2 コア、4 GB メモリのクラスターで最大 600 万のメトリックを収集できます。エージェントはオートスケーリングをサポートし、最適化されたサービス検出モジュールを使用することで、オープンソースの Prometheus と比較して Kubernetes API サーバーへの負荷を軽減します。
料金
| ティア | 説明 |
|---|---|
| 無料 | 標準的な Kubernetes モニタリングのニーズをカバーする基本メトリック収集を無料で提供 |
| 従量課金 | 小規模クラスターに適しています。詳細については、「従量課金 |
| サブスクリプション | 大規模クラスター向け。従量課金と比較してモニタリングコストを約 67% 削減 |
集約されたマルチクラスタークエリ
Managed Service for Prometheus は、複数の Prometheus インスタンスとセルフマネージド Prometheus クラスターにまたがる仮想集約インスタンスを提供します。この集約インスタンスは、追加のコンポーネントをデプロイすることなく、すぐに利用できます。
この集約インスタンスを使用すると、次のことが可能になります:
統一されたクラスター横断クエリの実行:各リージョンに Prometheus Server や Thanos コンポーネントをデプロイする必要はありません。代わりにリモートライトを介してデータをレポートします。
一元化された Grafana データソースの使用:リージョンごとに個別のデータソースアドレスを設定する必要がありません。
クエリの弾力的なスケーリング:いつでもクエリワークロードの水平および垂直スケーリングが可能です。
組み込みの Grafana 統合
Managed Service for Grafana は、Managed Service for Prometheus および Simple Log Service とデフォルトで統合されているクラウドネイティブの可視化プラットフォームです。
| 機能 | 説明 |
|---|---|
| 事前統合されたデータソース | エラスティックコンピューティングやデータベースサービスなどの Alibaba Cloud サービスがデフォルトで接続されています。サードパーティおよびカスタムデータソースもサポートされています |
| マネージドインフラストラクチャ | サービスレベルアグリーメント (SLA) 保証と高可用性を備えた排他的インスタンスにより、Grafana を自分でメンテナンスする必要がなくなります |
| アクセス制御 | Alibaba Cloud シングルサインオン (SSO) とセルフマネージドアカウントシステムにより、データソースとダッシュボードの詳細な管理が可能 |
| 統一ダッシュボード | すべてのデータソースにまたがる単一のダッシュボードシステムで、運用を効率化 |
| 統一アラート機能 | データソースを横断する統合アラートシステムを構築し、アラート管理の効率を向上 |
アラート管理の統合
Managed Service for Prometheus は、デフォルトでアラート管理と統合されています。アラート管理は以下を提供します:
事前構築済みのアラートテンプレート:一般的な Kubernetes コアメトリックが含まれています。PromQL を記述することなくアラートを設定できます。
複数の通知チャネル:メール、SMS、電話、DingTalk。
アラート処理:重複排除、圧縮、ノイズ除去、サイレンシングにより、アラートストームを削減します。
エスカレーションポリシー:アラートが未処理のままである場合、自動的に連絡先に再通知します。
イベント処理フローは、カスタムアラート処理ロジック向けです。
グローバルアラートルール:すべてのリージョンにわたってテンプレートと通知ポリシーを適用します。
ビジュアル設定ウィザード:アラート条件のリアルタイムプレビューが可能です。
チュートリアル:マルチクラウドモニタリングの設定
このチュートリアルでは、Tencent Kubernetes Engine (TKE) クラスターを ACK One に登録し、Managed Service for Prometheus を介してモニタリングする手順を説明します。同じプロセスが他のクラウドプロバイダー上のクラスターにも適用されます。
前提条件
開始する前に、以下を確認してください:
外部クラスターがインターネットまたは内部ネットワークを介して Alibaba Cloud に接続できること
接続要件については、「登録済みクラスターに関するよくある質問」をご参照ください。
ステップ 1:ACK One 登録済みクラスターの作成
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、[Kubernetes クラスターの作成] をクリックします。
[ACK One 登録済みクラスター] タブをクリックし、必須パラメーターを設定してから、[クラスターの作成] をクリックします。パラメーターの詳細については、「外部 Kubernetes クラスターの登録」をご参照ください。
作成後、登録済みクラスターが [クラスター] ページに表示されます。

ステップ 2:外部クラスターの登録
ご利用の TKE クラスターを、ステップ 1 で作成した ACK One 登録済みクラスターに登録します。
ACK コンソールの [クラスター] ページで、ステップ 1 で作成した登録済みクラスターを見つけ、[操作] 列の [詳細] をクリックします。
[接続情報] タブをクリックします。必要に応じて [一時的な Kubeconfig の取得] または [長期的な Kubeconfig の取得] をクリックします。[内部アクセス] または [パブリックアクセス] タブで、[コピー] をクリックしてクラスター認証情報をコピーします。
Tencent Cloud TKE コンソールにログインします。[クラスター] ページで、ご利用の TKE クラスターの名前をクリックします。右上隅で、[YAML でリソースを作成] をクリックします。クラスター認証情報をエディターに貼り付け、[OK] をクリックします。
TKE の [クラスター] ページで、Deployment と ack-cluster-agent の実行ステータスを確認します。両方が実行中であれば、インストールは成功です。
ACK コンソールに戻ります。[クラスター] ページで、登録済みクラスターのステータスが [実行中] であることを確認します。[実行中] ステータスは、TKE クラスターが正常に登録されたことを示します。
ステップ 3:Prometheus エージェントのインストール
登録済みクラスターに ack-arms-prometheus エージェントをインストールします。詳細な手順については、「登録済みクラスターで Managed Service for Prometheus を有効にする」をご参照ください。
ステップ 4:モニタリングダッシュボードの表示
Managed Service for Prometheus には、Deployment や DaemonSet ダッシュボードなど、事前設定済みの Grafana ダッシュボードが含まれています。
ARMS コンソールにログインします。左側のナビゲーションウィンドウで、[Managed Service for Prometheus] > [インスタンス] を選択します。
ステップ 1 で作成した登録済みクラスターに関連付けられている Prometheus インスタンスをクリックします。
左側のナビゲーションウィンドウで、[ダッシュボード] をクリックします。任意のダッシュボード名をクリックして、そのメトリックを表示します。
ステップ 5:アラートの設定と表示
Managed Service for Prometheus は、Kubernetes のコアメトリックを自動的にモニタリングし、組み込みのアラートテンプレートが含まれています。一般的なアラートルールに PromQL は不要です。
ARMS コンソールにログインします。左側のナビゲーションウィンドウで、[Managed Service for Prometheus] > [インスタンス] を選択します。
ステップ 1 で作成した登録済みクラスターに関連付けられている Prometheus インスタンスをクリックします。
左側のナビゲーションウィンドウで、[アラートルール] をクリックします。[Prometheus アラートルール] ページで、要件に基づいてアラートルールを確認し、カスタマイズします。
はじめに
ACK One 登録済みクラスター:ACK One 登録済みクラスターをアクティベートするには、「外部 Kubernetes クラスターの登録」をご参照ください。
Managed Service for Prometheus:サブスクリプション料金は、従量課金と比較して少なくとも 67% 節約できます。料金の詳細については、「従量課金」をご参照ください。