このトピックでは、Kubernetes クラスターの可観測性の現状、マルチクラウド Kubernetes クラスターの可観測性に関する課題、およびこれらの課題に対するソリューションについて説明します。また、Alibaba Cloud Managed Service for Prometheus と ACK One 登録済みクラスターを使用してマルチクラウド Kubernetes クラスターを管理および監視する方法の例も示します。
Kubernetes クラスター可観測性の現状
コンテナ管理およびオーケストレーションツールとして、Kubernetes はクラウドコンピューティング業界で共通の技術基盤となっています。同時に、Prometheus は、さまざまなソリューションの反復で実証された後、Kubernetes クラスターモニタリングの標準ソリューションとして機能しています。
Prometheus は、監視システム層、アプリケーション層、およびビジネス層からメトリクスを収集して保存します。さらに、Prometheus は Grafana を使用してメトリクスを表示し、アラートイベントを送信します。Prometheus と Grafana の組み合わせにより、Kubernetes クラスターの監視メトリクスの収集、保存、表示、およびアラート設定が可能になり、問題の特定と原因の分析に役立ち、クラウドネイティブアプリケーションを保護します。クラウドコンピューティング業界では、Kubernetes クラスターモニタリングの標準ソリューションとなっています。
Kubernetes クラスターを管理するには、次のいずれかのソリューションを使用できます。
ソリューション 1:監視システムを構築する
Prometheus と Grafana を使用して、本番環境用の監視システムを構築できます。初期段階では、多大な人件費を投資し、監視システムの各部分間の連携に重点を置く必要があります。たとえば、アラートの重複排除を含む、メトリクスの収集、メトリクスの保存、メトリクスの表示、ダッシュボード、およびアラートを監視する必要があります。後期段階では、膨大な O&M コストが発生します。
ソリューション 2:クラウドサービスベンダーが提供する監視サービスを使用する
Managed Service for Prometheus など、クラウドサービスベンダーが提供する監視サービスを使用できます。Managed Service for Prometheus は、サブスクリプションと従量課金の 2 つの課金方法をサポートしています。これにより、監視システムのセットアップにかかる初期費用が削減され、技術的な O&M サポートが提供されるため、O&M コストが削減されます。
マルチクラウド Kubernetes クラスターの可観測性に関する課題
企業は、クラウド上でますます多様化し、複雑化するサービスをデプロイしています。シナリオによっては、Kubernetes クラスターがクラウドサービスまたはリージョンをまたいで使用される場合があり、マルチクラウド Kubernetes クラスターの O&M の課題に対処する必要があります。
マルチクラウド Kubernetes クラスターを監視するには、次のいずれかのソリューションを使用できます。
ソリューション 1:セルフマネージド Prometheus システムと Grafana に基づいて監視システムを構築する
このソリューションを使用する場合、次の課題に直面します。
セルフビルドの監視システムを構築するには、初期段階で収集、保存、表示、アラートなどの機能モジュールを統合する必要があります。後期段階では、より多くの O&M 担当者を割り当てる必要があるため、O&M コストが増加します。
オープンソース Prometheus の時系列データベース(TSDB)は SSD ストレージを使用します。データは単一サイトに個別に保存されるため、データ損失が発生する可能性があります。
オープンソース Prometheus の収集機能にはボトルネックが存在します。単一部品操作のため、オープンソース Prometheus は自動スケーリングをサポートしていません。ピーク時には、監視メトリクスの収集によってパフォーマンスのボトルネックが発生する可能性があります。
ソリューション 2:クラウドサービスベンダーが提供する Prometheus サービスを使用する
このソリューションを使用する場合、次の課題に直面します。
複数のクラウドサービスベンダー:クラウドサービスベンダーごとに、提供される監視機能とアクセス方法が異なります。これにより、学習コストが増加します。
分散管理:異なる Prometheus サービスを一元管理することはできません。これにより、非効率的で混沌とした管理と O&M ワークロードの重複が発生する可能性があります。また、ビジネス上の問題をできるだけ早く特定できない場合もあります。
上記のソリューションでは、分散したメトリクスをクエリまたは分析したり、メトリクスのアラートを一元的に設定したりすることはできません。
Managed Service for Prometheus のメリット
上記の課題に対処するため、ACK One 登録済みクラスターは、サードパーティのクラウドサービスベンダーの Kubernetes クラスターに対して一元管理機能を提供します。これにより、マルチクラウド Kubernetes クラスターを一元管理できます。Managed Service for Prometheus は、メトリクス収集、Grafana 表示、およびアラート機能を備えた完全な Kubernetes クラスター監視システムを提供します。Managed Service for Prometheus は、従量課金制とサブスクリプション課金制をサポートしており、Kubernetes クラスターの監視効率を向上させ、ユーザーが作成した監視サービスの O&M コストを削減します。
ACK One 登録済みクラスターと Managed Service for Prometheus の組み合わせは、上記の課題に対処し、シンプルかつ効率的にマルチクラウド Kubernetes クラスターを監視するのに役立ちます。Managed Service for Prometheus と ACK One 登録済みクラスターには、次のメリットがあります。
強力な機能:Managed Service for Prometheus と ACK One 登録済みクラスターの組み合わせは、分散管理、監視システム構築の難しさ、低い O&M 効率、メトリクスを共同でクエリできないこと、分散アラートなど、マルチクラウド Kubernetes クラスターモニタリングに存在する問題を解決できます。低い O&M コストで効率を向上させながら、マルチクラウド Kubernetes クラスターモニタリングの一元管理、設定、クエリ、およびアラートを実装できます。このようにして、O&M チームは反復作業を行うことなくビジネスに集中できます。
低コスト:Managed Service for Prometheus は、Kubernetes クラスターの基本的な監視要件を満たすために、基本メトリクス収集を無料で提供します。小規模な Kubernetes クラスターの場合、従量課金制を使用して最小限のコストでビジネスを監視できます。Managed Service for Prometheus の従量課金制については、「従量課金制」をご参照ください。大規模な Kubernetes クラスターの場合、サブスクリプション課金制を使用できます。従量課金制と比較して、サブスクリプション課金制は、大規模クラスターの監視コストを約 67% 効果的に削減できます。
リソース使用量の削減:Managed Service for Prometheus を使用する場合、Kubernetes クラスターに軽量エージェントをデプロイするだけで済みます。エージェントは自動スケーリング機能を提供します。Kubernetes クラスターに 2 コアと 4 GB のメモリがある場合、600 万個のメトリクスを収集できます。オープンソース Prometheus のサービスディスカバリモジュールが Kubernetes クラスターの API サーバーに与える負荷を軽減するために、Managed Service for Prometheus はサービスディスカバリモジュールを最適化しています。これにより、リソース使用量が最小限に抑えられ、Kubernetes クラスターからの監視メトリクスの収集が最大化され、ビジネスが保護されます。オープンソース Prometheus のサービスディスカバリモジュールは、クラスター内の APIServer に高い負荷をかけます。Managed Service for Prometheus は、APIServer への負荷を軽減し、リソース使用量を最小限に抑え、コンテナクラスター監視メトリクスの収集を最大化し、ビジネスを保護するように最適化されています。
メリット 1:パフォーマンスの向上
項目 | Managed Service for Prometheus | セルフマネージド Prometheus システム |
高可用性 | Managed Service for Prometheus は高可用性を提供し、水平スケーリングをサポートしています。収集コンポーネントとストレージコンポーネントに複数のレプリカをデプロイできます。 | セルフマネージド Prometheus システムは低可用性を提供し、水平スケーリングをサポートしていません。一度に実行できるプロセスは 1 つだけです。 |
データストレージ | クラウドベースのストレージは、無制限のストレージ容量を備えています。 | ストレージ容量は限られています。 |
データの可視化 | Grafana は Application Real-Time Monitoring Service (ARMS) コンソールに組み込まれており、一般的な監視テンプレートをすぐに使用できます。 | Grafana をデプロイし、ダッシュボードを自分で設定する必要があります。 |
アラート | Managed Service for Prometheus は ARMS のアラート管理サブサービスと統合されており、アラートの効率と精度が向上します。 | AlertManager プラグインを自分でインストールする必要があります。 |
単一レプリカの収集パフォーマンス(2 コア CPU、4 GB メモリ) | 600 万データポイント | 100 万データポイント |
データクエリパフォーマンス(6 億タイムポイント) | 8 ~ 10 秒 | 180 秒 |
その他の機能 | Managed Service for Prometheus は、事前集計、ダウンサンプリング、および GlobalView 機能を提供します。 | サポートされていません |
メリット 2:Prometheus マルチクラスタークエリの集計
ARMS は、複数の Prometheus インスタンスまたはセルフマネージド Prometheus クラスターの仮想集計インスタンスを提供します。仮想集計インスタンスは、Prometheus メトリクスのクエリ、Grafana データソースの管理、およびアラートの一元管理に使用できます。
オープンソース Prometheus の分散データを管理するために、Managed Service for Prometheus では、Grafana で複数のデータソースアドレスを設定できます。そうでない場合、データソースが分離されているため、世界中のさまざまなリージョンにあるアプリケーションの実行状況を全体的な視点から分析することは困難です。
各リージョンに Prometheus サーバーをデプロイしたり、多数の Thanos コンポーネントをデプロイしたりする必要はありません。Remote Write を使用して Managed Service for Prometheus にデータをレポートするだけで済みます。
Managed Service for Prometheus は、グローバルで分散された、安定した高パフォーマンスのクエリ機能を提供します。多数のクエリに対して、いつでも水平および垂直スケーリングを実装できます。
集計された Prometheus マルチクラスタークエリは、すぐに実装できます。Managed Service for Prometheus 以外にコンポーネントをデプロイする必要はありません。これにより、O&M コストを削減できます。
メリット 3:軽量インストール
オープンソース Prometheus と比較して、Managed Service for Prometheus は簡単にデプロイできます。Kubernetes クラスターに軽量エージェントをインストールするだけで済みます。バックエンドストレージをホストして、ビジネスのクラスターリソース使用量を節約できます。
メリット 4:Managed Service for Grafana の統合
Alibaba Cloud Managed Service for Grafana は、メンテナンスフリーのクイックスタートアップ機能を提供するクラウドネイティブ O&M データ可視化プラットフォームです。Managed Service for Grafana には、次のメリットがあります。
デフォルトでは、Managed Service for Prometheus や Simple Log Service など、さまざまな Alibaba Cloud サービスのデータソースが統合されています。サードパーティのデータソースまたはユーザーが作成したデータソースがサポートされています。これにより、統合 O&M ダッシュボードを迅速に構築できます。
Managed Service for Grafana は、専用のインスタンス、サービスレベル契約(SLA)保証、および信頼性の高い O&M を提供します。Managed Service for Grafana は、低いメンテナンスコストで監視システムの高可用性と弾力性を保証します。
Managed Service for Grafana は、Alibaba Cloud シングルサインオン(SSO)とセルフマネージドアカウントシステムをサポートしており、データセキュリティを損なうことなく、データソースとダッシュボードのきめ細かい管理を実装できます。
Managed Service for Grafana は、次の問題を解決できます。
データ集計の難しさ:さまざまなクラウドサービスの監視データを集計して統合することは難しいため、O&M の難易度が上がります。
O&M の難しさ:さまざまなクラウドサービスの監視チャートのコアメトリクスを繰り返し設定する必要があります。
アラート管理の難しさ:さまざまなクラウドサービスのアラートルールは分散しており、管理が困難です。
Managed Service for Grafana は、次の機能を提供できます。
デフォルトの統合:Managed Service for Grafana は、エラスティックコンピューティングサービスやデータベースサービスなど、主要な Alibaba Cloud サービスとデフォルトで統合されています。
統合ダッシュボード:データソース全体で統合ダッシュボードシステムが確立され、可視化された O&M が最適化されます。
統合アラート:統合アラートシステムを簡単に構築して、アラート管理の効率を向上させることができます。
メリット 5:アラート管理の統合
デフォルトでは、Managed Service for Prometheus はアラート管理と統合されています。アラート管理には、次の機能があります。
グローバリゼーション
アラートルールテンプレートをグローバル化して、グローバルイベントのアラートを設定できます。
簡単な設定を行うことで、連絡先と通知ポリシーをグローバル化できます。
管理効率の高いイベント収集
アラート管理を Alibaba Cloud の一般的な監視サービスと統合できます。また、アラート管理をサードパーティの監視サービスと統合して一元管理することもできます。
アラート管理は、安定したアラートイベント処理機能を提供します。24 時間 365 日アラートイベントを処理できます。
アラート管理は、多数のアラートイベントを処理するための低レイテンシを保証します。
タイムリーで正確なアラート通知
通知ポリシーを設定し、アラートイベントを圧縮できます。これにより、O&M ワークロードが削減されます。
アラートの緊急度に基づいて、1 つ以上の通知方法を選択できます。たとえば、メール、SMS、電話、または DingTalk で連絡先にアラート通知を送信して、アラートを処理するように連絡先に通知できます。
エスカレーションポリシーを設定して、アラートが長時間処理されない場合に連絡先に複数回通知を送信できます。
効率的なアラート管理
連絡先は DingTalk を使用していつでもアラートを処理できます。
アラートは共通の形式を使用するため、連絡先はアラートをより適切に分析できます。
複数の連絡先が DingTalk を介して連携してアラートを処理できます。
アラートイベントの再処理
イベント処理フローを使用して、簡単なプロシージャを調整し、アラートソースから報告されたアラートイベントを処理できます。これは、さまざまなシナリオでのイベント処理に関する特定の要件を満たします。
アラートソースから報告されたアラートの重複排除、圧縮、ノイズ除去、およびサイレンシングを実行できます。これにより、アラートが収束し、アラートストームが軽減されます。
アラート設定管理
アラート管理は、Kubernetes クラスターの一般的なコアメトリクスを含む監視テンプレートを提供します。また、アラート管理は、アラートテンプレートを自動的に生成して送信するアラートテンプレート機能も提供します。このようにして、一度に複数のアラートを設定できます。
アラート管理は、視覚化されたアラート設定ウィザードとプレビューを提供します。アラート条件とイベントをリアルタイムで表示し、正確に設定できます。
アラート統計を表示し、アラート処理結果をリアルタイムで分析し、アラート処理効率を向上させ、ビジネスステータスを監視できます。
例:マルチクラウド Kubernetes クラスター Managed Service for Prometheus を監視する
前提条件
クラスターは、インターネットまたは内部ネットワークを介して Alibaba Cloud に接続されています。詳細については、「登録済みクラスターに関する FAQ」をご参照ください。
ステップ 1:ACK One 登録済みクラスターを作成する
ACK コンソール にログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、[Kubernetes クラスターの作成] をクリックします。
[クラスター] ページの右上隅にある [Kubernetes クラスターの作成] をクリックします。
表示されるページで、[ACK One 登録済みクラスター] タブをクリックし、必要なパラメータを設定して、[クラスターの作成] をクリックします。詳細については、「外部 Kubernetes クラスターを登録する」をご参照ください。
[クラスター] ページで登録済みクラスターを表示できます。

ステップ 2:ACK One 登録済みクラスターでマルチクラウド Kubernetes クラスターを管理する
この例では、Tencent Kubernetes Engine (TKE) を使用して、ACK One 登録済みクラスターで TKE クラスターを管理し、Managed Service for Prometheus でメトリクスをキャプチャして表示する方法について説明します。
ACKコンソール の [クラスター] ページで、ステップ 1:ACK One 登録済みクラスターを作成する で作成した登録済みクラスターを見つけ、[詳細] 列の [アクション] をクリックします。
[接続情報] タブをクリックします。次に、必要に応じて [一時的な Kubeconfig を取得する] または [長期 Kubeconfig を取得する] をクリックします。表示されるダイアログボックスで、[内部アクセス] または [パブリックアクセス] タブをクリックし、右側の [コピー] をクリックしてクラスター接続情報をコピーします。
Tencent Cloud TKE コンソールにログインします。[クラスター] ページで、TKE クラスターの名前をクリックします。ページの右上隅にある [YAML でリソースを作成] をクリックします。表示されるダイアログボックスで、前のステップでコピーしたクラスタークレデンシャルをエディターに貼り付けて、[OK] をクリックします。次に、[クラスター] ページで、Deployment と ack-cluster-agent の実行ステータスを確認します。Deployment と ack-cluster-agent が想定どおりに実行されている場合、インストールは成功です。
ACKコンソール にログインします。[クラスター] ページで、ステップ 1:ACK One 登録済みクラスターを作成する で作成した ACK One 登録済みクラスターのステータスを確認します。ACK One 登録済みクラスターが実行中状態の場合、TKE クラスターは管理されています。
ステップ 3:Prometheus エージェント (ack-arms-prometheus) をインストールする
詳細については、「登録済みクラスターで Managed Service for Prometheus を有効にする」をご参照ください。
ステップ 4:監視データを表示する
デフォルトでは、Managed Service for Prometheus は Grafana ダッシュボードと統合されており、Deployment ダッシュボードや DaemonSet ダッシュボードなどの監視データを表示できます。ダッシュボードで監視データを表示するには、次の手順を実行します。
Prometheus コンソール にログインします。左側のナビゲーションウィンドウで、[インスタンス] をクリックします。
ステップ 1:ACK One 登録済みクラスターを作成する で作成した ACK One 登録済みクラスターを監視する Prometheus インスタンスをクリックします。
左側のナビゲーションウィンドウで、[ダッシュボード] をクリックします。[ダッシュボード] ページで、ダッシュボードの名前をクリックして詳細なメトリクスを表示できます。
ステップ 5:アラートを表示する
デフォルトでは、Managed Service for Prometheus は Kubernetes クラスターのコアメトリクスの監視を有効にします。これにより、Managed Service for Prometheus を手動で有効にした場合に発生する可能性のあるエラーを防ぎます。さらに、Managed Service for Prometheus は、コアメトリクスを含むさまざまなアラートテンプレートと統合されています。PromQL コードを記述する必要なく、ビジネス要件に基づいてこれらのアラートテンプレートを使用できます。アラートを表示するには、次の手順を実行します。
Prometheus コンソール にログインします。左側のナビゲーションウィンドウで、[インスタンス] をクリックします。
ステップ 1:ACK One 登録済みクラスターを作成する で作成した ACK One 登録済みクラスターを監視する Prometheus インスタンスをクリックします。
左側のナビゲーションウィンドウで、[アラートルール] をクリックします。[Prometheus アラートルール] ページで、アラートを表示します。
アクティベーション
ACK One 登録済みクラスター:ACK One 登録済みクラスターをアクティブ化する方法については、「外部 Kubernetes クラスターを登録する」をご参照ください。
Managed Service for Prometheus:Managed Service for Prometheus は、サブスクリプション課金制を提供します。従量課金制と比較して、サブスクリプション課金制ではコストを少なくとも 67% 節約できます。