IBM Cloud Docs
Kubernetes クラスターのモニター

Kubernetes クラスターのモニター

このチュートリアルでは、IBM Cloud® Kubernetes Service サービスにメトリックを転送するように IBM Cloud® Monitoring クラスターを構成する方法を学習できます。 IBM Cloud、オンプレミス、およびその他のクラウド内のクラスターをモニターできます。

メトリクスを転送するようにクラスタを構成するには、 Kubernetes クラスタの各ワーカー・ノードに、監視エージェントを DaemonSet. モニタリング・エージェントでは、IBM Cloud Monitoring インスタンスでの認証のためにアクセス・キー (トークン) を使用します。 モニタリング・エージェントは、データ・コレクターとして機能します。 ワーカー・ノード CPUワーカー・ノード・メモリーの使用率、コンテナーの入出力 HTTP トラフィック、いくつかのインフラストラクチャー・コンポーネントに関するデータなどのメトリックを自動的に収集します。 さらに、Prometheus 対応のスクレーパーや StatsD ファサードを使用して、エージェントでカスタムのアプリケーション・メトリックを収集することもできます。

IBM Cloud
IBM Cloud

例えば、メトリックを IBM Cloud Monitoring インスタンスに転送するように Kubernetes クラスターを構成するには、 Helm またはスクリプトを使用してエージェントをデプロイできます。

Monitoring エージェントは、ホストごとに以下のタイプのシステム・メトリックを自動的に収集します。

  • System hosts metricsは、すべてのプロセスのパフォーマンスとリソース使用率を分析するために使用できる、CPU、メモリー、およびストレージの使用量メトリックに関する情報を提供します。

  • File and File System metricsは、システムで発生するファイル対話を分析するために使用できるファイルおよびファイル・システムに関する情報を提供します。 例えば、オープン・ファイル、送受信バイト数、または特定のファイル・システムの使用率に関する情報を見つけることができます。

  • Process metricsは、サーバーで実行されるプロセスに関する情報を提供します。 例えば、これらのメトリックを使用して、プロセスの数を調べたり、クライアントまたはサーバーの情報を取得したりすることができます。

  • Network metricsは、ネットワークに関する情報を提供します。 これらは、アプリケーション、コンテナー、およびサーバーの間で確立された接続に対する洞察を提供します。 例えば、送受信されているバイト数や、HTTP 要求、接続、および待ち時間の数に関する情報を見つけることができます。 また、SQL または MongoDB の場合、エージェントは、トラブルシューティング・モードで構成されているときに追加情報を収集します。

Monitoring エージェントは、Kubernetes クラスターごとに以下のタイプのメトリックを自動的に収集します。

  • State metrics: Kube 状態メトリックは、Kubernetes コンポーネント内で実行されるさまざまなオブジェクト (デプロイメント、ノード、ポッドなど) の正常性と状態について報告します。 デフォルトで収集されるメトリックのリストを確認するには、 Kubernetes Stateを参照してください。

  • Resource usage metrics: リソース使用状況メトリックは、クラスター内で実行されているワーカー (ノード) とポッドの CPU とメモリーの正常性と状態について報告します。 データは、名前空間、ワーカー、ポッド、ワークロード・オブジェクト (デプロイメント、daemonSet など) によって分析できます。

収集されたメトリックのリストについては、 オーケストレーションされた環境で使用可能なメトリック を参照してください。

Monitoring UI を使用すると、アドバイザータブ、探索タブ、およびダッシュボードタブでデータを分析できます。 メトリック・ビューおよびダッシュボードを使用してデータをモニターします。

データをモニターする際には、以下の情報を考慮してください。

  • エクスプローラータブでは、個々のメトリックをモニターできます。

  • アドバイザータブでは、Kubernetes またはホスト・レベルのメトリックをモニターできます。

    このタブは、Kubernetes またはホスト・レベルのメトリックをモニターするアクセス権限を持つチームに属するユーザーのみが使用できます。

  • *「ダッシュボード」*タブでは、事前定義されたダッシュボードまたはカスタム・ダッシュボードのパネルを使用してモニターし、ネットワーク・データ、アプリケーション・データ、トポロジー、サービス、ホスト、およびコンテナーに関する特殊な洞察を得ることができます。 パネルでは、メトリックまたはメトリックのグループがダッシュボードに表示されます。

メトリック・ビューおよびダッシュボードごとに、データの有効範囲、データの集約方法、およびデータに適用する時間とグループ・フィルターを定義できます。 詳しくは、パネルの管理を参照してください。

ダッシュボードをチームのデフォルトのエントリー・ポイントとして構成し、チームのエクスペリエンスを統一し、ユーザーが最も関連性の高い情報にすぐに集中できるようにすることができます。

詳しくは、 メトリックの表示 を参照してください。

目標

このチュートリアルでは、IBM Cloud® Kubernetes Service クラスターにメトリックを構成します。 具体的には、以下の操作を行います。

  • IBM Cloud Monitoring インスタンスをプロビジョンします。
  • メトリックを送信するようにクラスターにモニタリング・エージェントを構成します。
  • モニタリング UI を使用してクラスター・メトリックを分析します。

開始前に

チュートリアルを完了するために必要な IAM ポリシーのリスト
リソース アクセス・ポリシー有効範囲 役割 リージョン 情報
リソース・グループ デフォルト リソース・グループ ビューアー 米国南部 デフォルトのリソース・グループ内のサービス・インスタンスをユーザーが表示できるようにするためには、このポリシーが必要です。
IBM Cloud Monitoring サービス リソース・グループ エディター 米国南部 デフォルトのリソース・グループの IBM Cloud Monitoring サービスをユーザーがプロビジョンおよび管理するためにこのポリシーは必須です。
Kubernetes クラスター・インスタンス リソース エディター 米国南部 Kubernetes クラスターで機密事項やモニタリング・エージェントを構成するためにこのポリシーは必須です。

IBM Cloud® Kubernetes Service IAM ロールの詳細については 、「IAM ロールとアクション」 を参照してください。

IBM Cloud Monitoring インスタンスをプロビジョンする

この入門チュートリアルでは、米国南部リージョンで IBM Cloud Monitoring インスタンスをプロビジョンするための手順を説明します。 サポートされているリージョンについて詳しくは、リージョンを参照してください。

IBM Cloud Monitoring UI を使用して IBM Cloud のインスタンスをプロビジョンするには、以下のステップを実行します。

  1. IBM Cloud アカウントにログインします

    ユーザー ID とパスワードを使用してログインすると、IBM Cloud UI が開きます。

  2. **「カタログ」**をクリックします。 IBM Cloud で使用可能なサービスのリストが開きます。

  3. 表示されるサービスのリストをフィルタリングするには、**「ロギングとモニタリング」**カテゴリーを選択します。

  4. **「IBM Cloud Monitoring」**タイルをクリックします。

  5. ロケーションとサービス計画を選択します。

    デフォルトでは、**「ライト」**プランが設定されています。

    他のサービス・プランについて詳しくは、料金プランを参照してください。

  6. リソースを構成します。

    サービス・インスタンスの名前を入力します。

    リソース・グループを選択します。

    オプションでタグを追加します。

  7. 「作成」 をクリックします。

    インスタンスのプロビジョンが完了すると、*「プログラム識別情報」*ダッシュボードが開き、モニタリング・インスタンスの詳細が表示されます。

CLI を使用してインスタンスをプロビジョンするには、IBM Cloud CLI によるインスタンスのプロビジョニングを参照してください。

インスタンスにメトリックを送信するように Kubernetes クラスターを構成する

IBM Cloud Monitoring インスタンスにメトリックを送信するように Kubernetes クラスターを構成するには、クラスターのノードごとにモニタリング・エージェント・ポッドをインストールする必要があります。 モニタリング・エージェントは DaemonSet を使用してインストールされ、それによってエージェントのインスタンスがすべてのワーカー・ノードで確実に実行されます。 モニタリング・エージェントは、インストールされたポッドからメトリックを収集し、そのデータをインスタンスに転送します。

システム・メトリックを一式すべて取得するためには、モニタリング・エージェントが特権を付与された状況でなければなりません。

スクリプトを使用してエージェントをデプロイするには、コマンド・ラインから以下のステップを実行します。

  1. 端末を開きます。 次に、IBM Cloud にログインします。 次のコマンドを実行して、プロンプトに従います。

    ibmcloud login -a cloud.ibm.com
    

    クラスターを使用できるアカウントを選択します。

  2. クラスター環境をセットアップします。 以下のコマンドを実行します。

    最初に、環境変数を設定して Kubernetes 構成ファイルをダウンロードするためのコマンドを取得します。

    ibmcloud ks cluster config --cluster <cluster_name_or_ID>
    

    構成ファイルのダウンロードが完了すると、そのローカルの Kubernetes 構成ファイルのパスを環境変数として設定するために使用できるコマンドが表示されます。 KUBECONFIG 環境変数を設定するためのコマンドとしてターミナルに表示されたものを、コピーして貼り付けます。

    クラスターの作業を行うために IBM Cloud® Kubernetes Service CLI にログインするたびに、これらのコマンドを実行して、クラスターの構成ファイルのパスをセッション変数として設定する必要があります。 Kubernetes CLI はこの変数を使用して、IBM Cloud 内のクラスターと接続するために必要なローカル構成ファイルと証明書を検索します。

  3. アクセス・キーを取得します。 詳しくは、IBM Cloud UI を使用したアクセス・キーの取得を参照してください。

  4. コレクター・エンドポイントの取り込み URL を取得します。

  5. モニタリング・エージェントをデプロイします。 以下のコマンドを実行します。

    curl -sL https://raw.githubusercontent.com/draios/sysdig-cloud-scripts/master/agent_deploy/IBMCloud-Kubernetes-Service/install-agent-k8s.sh | bash -s -- -a ACCESS_KEY -c COLLECTOR_ENDPOINT -t TAG_DATA -ac 'sysdig_capture_enabled: false'
    

    説明

    • ACCESS_KEY は、先ほど取得したインスタンスの取り込みキーです。

    • COLLECTOR_ENDPOINT は、先ほど取得したモニタリング・インスタンスを使用できるリージョンの取り込み URL です。

    • TAG_DATA は、コンマで区切られた TAG_NAME:TAG_VALUE 形式のタグです。 1 つ以上のタグをモニタリング・エージェントに関連付けることができます。 例えば、role:serviceX,location:us-south などです。 後で、これらのタグを使用して、エージェントが実行されている環境のメトリックを識別できます。

    • sysdig_capture_enabledfalse に設定して、キャプチャー機能を無効にします。 デフォルトでは、true に設定されています。 詳しくは、キャプチャーの処理を参照してください。

  6. モニタリング・エージェントが正常に作成されたこと、およびその状況を確認します。 以下のコマンドを実行します。

    kubectl get pods -n ibm-observe
    

    1 つ以上の sysdig-agent ポッドが表示されたら、デプロイメントは成功です。 sysdig-agent ポッドの数は、クラスター内のワーカー・ノードの数と等しくなります。 すべてのポッドが Running 状態である必要があります。

モニター UI の起動

IBM Cloud コンソールからモニタリング UI を起動するには、以下の手順を実行します。

  1. IBM Cloud アカウントにログインします

    ユーザー ID とパスワードを使用してログインすると、IBM Cloud ダッシュボードが開きます。

  2. メニューメニュー・アイコンから、可観測性を選択します。

  3. **「モニタリング」**を選択します。 IBM Cloud で使用可能なインスタンスのリストが表示されます。

  4. インスタンスを見つけて、**「ダッシュボードを開く」**をクリックします。 Web UI が開きます。

情報が最初に収集され、モニタリングエージェントによって処理される間、クラスタエントリが表示されるまでに時間がかかる場合があります。

モニターできるインスタンスは、ブラウザーごとに 1 つのみです。 同じインスタンスについて複数のタブが表示される場合があります。

クラスターのモニター

アドバイザータブでは、ホストおよび Kubernetes クラスターの正常性、リスク、および容量をモニターおよびトラブルシューティングできます。

「アドバイザー」タブ
「アドバイザー」タブ

  • データは 10 分ごとに更新されます。
  • メトリックは、イベント数と重大度によって優先順位付けされます。
  • 詳しくは、 アドバイザーを参照してください。

アドバイザーセクションでは、クラスター別、ノード別、名前空間別、またはワークロード別に Kubernetes クラスターをモニターすることを選択できます。 各オプションには、リソースの正常性をモニターするために使用できる一連の事前定義ダッシュボードが用意されています。 ホストによるモニターを選択することもできます。

クラスターごとの Kubernetes クラスターのモニター

クラスターごとに Kubernetes クラスターをモニターすることを選択した場合は、ノードまたは名前空間ごとにデータを表示するために追加のフィルターを選択することも、以下のいずれかのダッシュボードを選択することもできます。

  • ワークロード状況 & パフォーマンス
  • 「ノード状況」&「パフォーマンス」
  • ポッドのライトサイジング & ワークロード・キャパシティーの最適化
  • クラスター容量の計画
  • クラスター/名前空間使用可能リソース
  • クラスターの概要
  • CPU 割り振りの最適化
  • メモリー割り振りの最適化

クラスターごとの Advisor 事前定義ダッシュボード
クラスターごとの Advisor 事前定義ダッシュボード

このビューの解釈方法について詳しくは、 クラスターの概要を参照してください。

ノードごとの Kubernetes クラスターのモニター

ノードごとに Kubernetes クラスターをモニターすることを選択した場合は、以下のいずれかのダッシュボードを選択できます。

  • 「ノード状況」&「パフォーマンス」
  • ポッドのスケジューリングのトラブルシューティング
  • ノードの概要
  • CPU 割り振りの最適化
  • メモリー割り振りの最適化

このビューの解釈方法について詳しくは、 ノード概要についてを参照してください。

名前空間による Kubernetes クラスターのモニター

名前空間ごとに Kubernetes クラスターをモニターすることを選択した場合は、ワークロードごとにデータを表示するために追加のフィルターを選択することも、以下のいずれかのダッシュボードを選択することもできます。

  • ワークロード状況 & パフォーマンス
  • ポッド状況 & パフォーマンス
  • ポッドのライトサイジング & ワークロード・キャパシティーの最適化
  • 名前空間の概要
  • ワークロードの CPU 使用率と割り振り
  • ワークロードのメモリー使用量と割り振り

このビューの解釈方法について詳しくは、 名前空間の概要を参照してください。

ワークロードによる Kubernetes クラスターのモニター

ワークロードによって Kubernetes クラスターをモニターすることを選択した場合は、以下のいずれかのダッシュボードを選択できます。

  • コンテナー・リソース使用量 & トラブルシューティング
  • ポッド状況 & パフォーマンス
  • ポッドのライトサイジング & ワークロード・キャパシティーの最適化
  • ワークロード状況 & パフォーマンス
  • デプロイメントの概要
  • ポッドの概要
  • ワークロードの CPU 使用率と割り振り
  • ワークロードのメモリー使用量と割り振り

このビューの解釈方法について詳しくは、 ワークロードの概要を参照してください。

次のステップ