このトピックでは、コンテナクラスターの可観測性の現状、マルチクラウドコンテナクラスターのモニタリングにおける課題と解決策について説明します。また、Alibaba Cloud の Managed Service for Prometheus と ACK One の登録済みクラスターを使用して、マルチクラウドコンテナクラスターを統一的に管理・監視する方法を事例で紹介します。
コンテナクラスターの可観測性
Kubernetes (K8s) がコンテナオーケストレーションの事実上の業界標準になるにつれて、Prometheus はコンテナクラスターモニタリングの標準となりました。
Prometheus は、システム、アプリケーション、ビジネスの各レイヤーでメトリックを効果的に監視できます。これらのメトリックを収集・保存し、Grafana と組み合わせることで、可視化とアラート機能を提供します。Prometheus と Grafana の組み合わせは、メトリックの収集、保存、可視化、アラート機能の完全なソリューションを提供します。これにより、企業は問題を特定して解決し、クラウドネイティブアプリケーションの信頼性を確保でき、コンテナクラスターの標準的なモニタリングソリューションとなっています。
コンテナクラスターの管理と運用には、次の 2 つのオプションがあります。
オプション 1:セルフマネージドのモニタリングシステムの構築
このアプローチでは、Prometheus と Grafana を使用して本番環境に対応したモニタリングシステムを構築・維持する必要があります。メトリックの収集、保存、可視化の設定、効果的なダッシュボードの作成、誤検知アラートのフィルタリングを含むアラートルールの設定など、多大な人的リソースを初期投資として必要とします。また、このアプローチは継続的な運用コストも高くなります。
オプション 2:クラウドモニタリングプロダクトの使用
Alibaba Cloud は、サブスクリプションと従量課金の両方の課金モデルで利用可能な Managed Service for Prometheus を提供しています。このサービスは、独自のアラートシステムを構築する際の初期コストを削減し、継続的なテクニカルサポートを提供することで、運用コストを大幅に削減します。
マルチクラウドコンテナクラスターの可観測性における課題
ビジネスが拡大し、クラウドサービスが多様化するにつれて、複数のリージョンやクラウドプロバイダーにまたがるコンテナクラスターを利用することが多くなっています。この単一クラスターからマルチクラウドへの移行は、モニタリングに新たな課題をもたらします。
マルチクラウドおよびハイブリッドコンテナクラスターを監視するには、次の 2 つのオプションのいずれかを選択できます。
オプション 1:セルフマネージドの Prometheus と Grafana システムの使用
このオプションを選択した場合、以下の課題に直面します。
-
完全なモニタリングシステムを構築するには、収集、保存、可視化、アラート機能のコンポーネントを統合する必要があります。この統合には、専門担当者による継続的なメンテナンスが必要となり、運用コストが増加します。
-
オープンソースの Prometheus の時系列データベース (TSDB) は、ローカル SSD を使用してシングルノードにデータを保存します。これにより、単一障害点が発生し、データ損失のリスクが生じます。
-
オープンソースの Prometheus には収集制限があり、auto scaling 機能を持たない単一プロセスとして実行されます。これにより、ピークトラフィック時にメトリック収集のパフォーマンスボトルネックが発生する可能性があります。
オプション 2:クラウドプロバイダーの Prometheus プロダクトの使用
このオプションを選択した場合、以下の課題に直面します。
-
異なるクラウドプロバイダーの Prometheus サービスは機能や使用方法が異なり、習得に多大な学習コストがかかります。
-
複数のモニタリングプロダクトを使用すると、管理が断片化し、運用タスクが重複し、ビジネスクリティカルな問題の特定が遅れます。
どちらのオプションを選択しても、メトリックが散在するという共通の問題に直面します。これにより、統一されたクエリ、統合された分析と可視化、および一元化されたアラート機能の実行が困難になります。
Managed Service for Prometheus のメリット
これらの課題に対処するため、ACK One の登録済みクラスターは、Alibaba Cloud 以外のコンテナクラスターの一元管理を可能にします。Alibaba Cloud の Managed Service for Prometheus は、メトリック収集、Grafana による可視化、アラート機能を含む完全なコンテナ監視システムを提供します。従量課金とサブスクリプションの両方の課金オプションにより、モニタリング効率を向上させ、セルフマネージドシステムに伴う運用コストを劇的に削減します。
ACK One の登録済みクラスターと Managed Service for Prometheus を組み合わせることで、マルチクラウドコンテナのモニタリングがシンプルかつ効率的になり、次の主要なメリットが得られます。
-
強力な機能:このソリューションは、断片化された管理、複雑なシステム設定、低い運用効率、統一されたクエリとアラート機能の実行不能など、マルチクラウドモニタリングの一般的な課題を解決します。散在するコンテナクラスターの管理、構成、クエリ、アラート機能を一元化することで、効率を大幅に向上させ、運用コストと反復的なタスクを削減し、チームがコアビジネス目標に集中できるようにします。
-
コスト効率:Alibaba Cloud の Managed Service for Prometheus は、コンテナクラスターの基本的なモニタリング要件を満たす基本メトリックの無料収集を提供します。小規模なコンテナクラスターの場合、従量課金方法を使用できます。これにより、サービスが効果的に監視され、モニタリングコストが最小限に抑えられます。Alibaba Cloud Managed Service for Prometheus の従量課金方法に関する詳細な課金情報については、「従量課金」をご参照ください。大規模なクラスターの場合、サブスクリプション課金方法を使用できます。従量課金方法と比較して、サブスクリプション課金方法はコストを約 67% 削減でき、大規模クラスターのモニタリングコストを大幅に削減します。
-
低いリソースフットプリント:Managed Service for Prometheus は、クラスターに軽量エージェントをデプロイするだけで済みます。エージェントは auto scaling をサポートしており、2 vCPU と 4 GB のメモリを持つ単一インスタンスで 600 万のメトリック系列を収集できます。オープンソースの Prometheus のサービス検出モジュールは、クラスターの API サーバーに大きな負荷をかける可能性があります。Managed Service for Prometheus は、API サーバーへの負荷を軽減するように最適化されています。これにより、リソース消費を最小限に抑えながら、メトリック収集を最大化してビジネスを保護します。
メリット 1:パフォーマンスの向上
|
項目 |
Managed Service for Prometheus |
セルフマネージド Prometheus |
|
高可用性 |
収集およびストレージコンポーネントの複数レプリカをサポートし、高可用性のための水平スケーリングが可能です。 |
単一プロセスとして実行され、水平スケーリングができず、可用性が低いです。 |
|
データストレージ |
クラウドベースのストレージで容量は無制限です。 |
ローカルストレージ容量によって制限されます。 |
|
データの可視化 |
一般的なモニタリングシナリオ向けのすぐに使えるテンプレートを備えた組み込みの Grafana インスタンスが含まれています。 |
Grafana をデプロイし、ダッシュボードを個別に構成する必要があります。 |
|
アラート管理 |
Application Real-Time Monitoring Service (ARMS) のアラートセンターと統合され、効率と精度が向上します。 |
AlertManager プラグインを手動で統合する必要があります。 |
|
単一レプリカの収集パフォーマンス (2 vCPU、4 GB) |
600 万メトリック系列 |
100 万メトリック系列 |
|
データクエリパフォーマンス (6 億サンプル) |
8〜10 秒 |
180 秒 |
|
その他の機能 |
事前集計、ダウンサンプリング、グローバルビューなどの機能をサポートします。 |
サポートされていません |
メリット 2:マルチクラスター集約クエリ
このサービスは、複数の Alibaba Cloud Prometheus インスタンスまたはセルフマネージド Prometheus クラスターからのデータを統合する仮想集約インスタンスを提供します。このインスタンスを使用すると、Prometheus メトリックに対して統一されたクエリを実行し、単一の Grafana データソースを使用し、統一されたアラート機能を構成できます。
-
これにより、オープンソースの Prometheus におけるデータ散在の問題が解決されます。Grafana で複数のデータソースアドレスを構成する必要がなくなり、異なるソースからのデータを効率的に統合して、異なるリージョンにまたがるアプリケーションの健全性を包括的に把握できます。
-
各リージョンに Prometheus サーバーをデプロイする必要はありません。Remote Write 機能を使用して、データを Alibaba Cloud Managed Service for Prometheus に送信するだけです。また、Thanos の多数のコンポーネントをデプロイすることなく、グローバルビュー機能を使用することもできます。
-
グローバルクエリは、分散型でパフォーマンスが最適化されたクエリエンジンに基づいています。大規模なクエリ量に対応するための水平および垂直スケーリングをサポートし、優れたクエリパフォーマンスと安定性を提供します。
-
この機能はすぐに使えます。Alibaba Cloud Managed Service for Prometheus を使用すると、追加のコンポーネントをデプロイする必要がなく、運用コストが大幅に削減されます。
メリット 3:軽量インストール
オープンソースの Prometheus とは異なり、Managed Service for Prometheus は、コンテナクラスターに軽量エージェントをインストールするだけで済みます。バックエンドストレージはフルマネージドであり、ビジネスコンテナクラスターのリソースを節約します。
メリット 4:統合された Grafana サービス
Alibaba Cloud Grafana サービスは、運用データを可視化するためのクラウドネイティブプラットフォームです。メンテナンスフリーで迅速に開始できる Grafana 環境を提供し、次のメリットがあります。
-
デフォルトで、Managed Service for Prometheus や Simple Log Service (SLS) など、さまざまな Alibaba Cloud データソースと統合されています。また、サードパーティまたはセルフマネージドのデータソースもサポートしており、統一された運用ダッシュボードを迅速に作成できます。
-
高いサービスレベルアグリーメント (SLA) を備えた専用型インスタンスを提供し、高可用性で弾力性のあるモニタリングシステムを確保し、運用の信頼性を高め、メンテナンスコストを削減します。
-
Alibaba Cloud アカウントのシングルサインオン (SSO) およびセルフマネージドアカウントシステムと統合されています。この統合により、データセキュリティを確保しながら、データソースとダッシュボードの詳細な管理が可能になります。
-
以下の問題の解決に役立ちます。
-
さまざまなクラウドサービスからのモニタリングデータを集約・統一することが困難で、運用の複雑さが増します。
-
さまざまなクラウドサービスのコアメトリックチャートを繰り返し構成する必要があります。
-
さまざまなクラウドサービスのアラートルールが散在しており、統一的に管理することが困難です。
-
-
以下の機能を提供します。
-
デフォルト統合:エラスティックコンピューティングやデータベースサービスなど、Alibaba Cloud のコアサービスとデフォルトで統合されています。
-
統一ダッシュボード:データソースを横断する統一ダッシュボードシステムを確立し、より詳細な可視化運用を実現します。
-
統一アラート機能:統合されたアラートシステムを簡単に構築し、アラート管理の効率を向上させることができます。
-
メリット 5:統合されたアラートシステム
デフォルトで、Alibaba Cloud Managed Service for Prometheus は Alibaba Cloud の統一アラートシステムと統合されています。このシステムには次の特徴があります。
-
グローバリゼーション
-
グローバルアラートルールテンプレートを使用すると、グローバルイベントのアラートを 1 か所から構成できます。
-
グローバルな連絡先と通知ポリシーを一度構成するだけで、世界中で有効になります。
-
-
イベント統合による効率的な管理
-
アラート管理は、一般的な Alibaba Cloud モニタリングツールとのワンクリック統合をデフォルトでサポートし、より多くのツールを手動で接続して一元的にメンテナンスできます。
-
安定したイベント統合モジュールは、24 時間 365 日無停止のイベント処理サービスを提供します。
-
このモジュールは、大量のイベントデータを処理する際の低遅延を保証します。
-
-
連絡先へのタイムリーで正確なアラート通知
-
通知ルールを構成して、アラート通知を送信する前にイベントを統合し、運用チームの通知疲れを軽減できます。
-
アラートの重大度に基づいて、メール、SMS、電話、DingTalk などの異なる通知方法を選択して、連絡先にアラートの処理を通知できます。
-
エスカレーションポリシーを使用して、未処理のアラートに対して繰り返しリマインダーを送信し、タイムリーな解決を保証できます。
-
-
迅速なアラート管理
-
連絡先は DingTalk を通じていつでもアラートを処理できます。
-
汎用的なアラートフォーマットにより、連絡先はアラートをより良く分析できます。
-
複数の連絡先が DingTalk を通じて協力してアラートを処理できます。
-
-
アラートイベントの再処理
-
イベント処理フローを使用して、簡単なワークフローを作成し、あらゆるソースからのアラートイベントを再処理して、さまざまなデータ処理要件を満たすことができます。
-
イベント管理は、あらゆるソースからのアラートイベントの重複排除、圧縮、ノイズリダクション、サイレンシングをサポートします。これにより、アラートストームを削減できます。
-
-
アラート構成管理
-
このシステムは、コンテナクラスターの一般的なコアメトリック用の監視テンプレートと、アラートテンプレートを生成・配布して迅速なバッチ構成を可能にするアラートテンプレート機能を提供します。
-
このシステムは、GUI ベースの構成ウィザードとプレビュー機能を提供します。アラート条件に一致するイベントをリアルタイムで表示し、詳細な構成を実行できます。
-
-
アラート統計を表示し、処理状況をリアルタイムで分析して、アラート解決効率を向上させ、ビジネス運用を監視できます。
例:マルチクラウドコンテナクラスターを Managed Service for Prometheus に接続
前提条件
クラスターは、インターネットまたは内部ネットワークを使用して接続できます。詳細については、「登録済みクラスターに関するよくある質問」をご参照ください。
ステップ 1:ACK One 登録済みクラスターの作成
ACK コンソールにログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
クラスターリスト ページで、Kubernetes クラスターの作成 をクリックします。
-
ACK One 登録済みクラスター タブで、パラメーターを構成します。パラメーターの詳細については、「ACK One 登録済みクラスターの作成」をご参照ください。
-
ページの右側で、クラスターの作成 をクリックしてクラスターを作成します。クラスターリスト ページで作成した registCluster クラスターを表示できます。クラスターが作成されると、test-external-cluster1 などの新しく登録されたクラスターが [クラスター] リストに表示されます。クラスタータイプは 外部 Kubernetes クラスター で、ステータスは 接続待機中 です。
ステップ 2:マルチクラウドクラスターの追加
このセクションでは、Tencent Kubernetes Engine (TKE) クラスターを例に、TKE クラスターを ACK One 登録済みクラスターに追加し、Managed Service for Prometheus を使用してメトリックをスクレイプおよび表示する方法を説明します。
-
ACKコンソールの クラスターリスト ページで、「ステップ 1:ACK One 登録済みクラスターの作成」で作成した registCluster クラスターを見つけ、Operation 列の 詳細 をクリックします。
-
接続情報 タブをクリックします。一時 KubeConfig の取得 または 長期 KubeConfig の取得 をクリックします。表示されるダイアログボックスで、内部アクセス または パブリックアクセス タブを選択し、コピー をクリックしてクラスターアクセス認証情報をコピーします。
-
Tencent Cloud Container Service コンソールにログインします。クラスター ページで、ターゲットクラスターの名前をクリックします。右上隅で、[YAML からリソースを作成] をクリックします。コピーしたパブリックアクセスのクラスター接続認証情報をエディターに貼り付け、Finish をクリックしてエージェントをインストールします。その後、Tencent Cloud の クラスター ページで、ack-cluster-agent デプロイメントのステータスを確認します。デプロイメントが実行中であれば、エージェントは正常にインストールされています。
-
Alibaba Cloud の ACKコンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] を選択します。クラスターリスト ページで、「ステップ 1:ACK One 登録済みクラスターの作成」で作成した registCluster 登録済みクラスターのステータスを確認します。ステータスが [実行中] であれば、クラスターは追加されています。
ステップ 3:Prometheus コンポーネントのインストール
詳細については、「Alibaba Cloud Prometheus インスタンスを登録済みクラスターに接続する」をご参照ください。
ステップ 4:モニタリングデータの表示
Managed Service for Prometheus は、デプロイメントや DaemonSet のダッシュボードなど、モニタリングデータを表示するためのデフォルトの Grafana ダッシュボードを提供します。ダッシュボードからモニタリングデータを表示するには、次の手順を実行します。
ARMS コンソールにログインします。左側のナビゲーションウィンドウで、。
-
「ステップ 1:ACK One 登録済みクラスターの作成」で作成した registCluster クラスターに対応する Prometheus インスタンスをクリックします。
-
左側のナビゲーションウィンドウで、ダッシュボードリスト をクリックします。ダッシュボードリスト ページで、ダッシュボード名をクリックして詳細なメトリックを表示します。
ステップ 5:アラートの表示
Managed Service for Prometheus は、デフォルトで主要なコンテナクラスターメトリックのモニタリングを有効にし、重要なメトリックを見逃さないようにします。また、PromQL クエリを記述することなく、必要に応じて有効にできるコアメトリック用のさまざまなアラートテンプレートも含まれています。Managed Service for Prometheus でアラートを表示するには、次の手順を実行します。
ARMS コンソールにログインします。左側のナビゲーションウィンドウで、。
-
「ステップ 1:ACK One 登録済みクラスターの作成」で作成した registCluster クラスターに対応する Prometheus インスタンスをクリックします。
-
左側のナビゲーションウィンドウで、Alarm Rules をクリックします。Alarm Rules ページで、アラートの詳細を表示できます。
サービスの有効化
-
ACK One 登録済みクラスター:登録済みクラスターを有効化する方法については、「登録済みクラスターの有効化」をご参照ください。
-
Managed Service for Prometheus:このサービスは サブスクリプション 課金モデルを提供しており、従量課金モデルと比較して少なくとも 67% のコストを節約できます。