特定の名前空間内のポッドの CPU とメモリ使用量を表示する方法

KubernetesKubernetesBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

Kubernetes は、アプリケーションの管理と監視に強力なツールを提供する、強力なコンテナオーケストレーション プラットフォームです。Kubernetes の重要な側面の 1 つは、アプリケーションのポッドのパフォーマンスとリソースの利用状況を監視する機能です。このチュートリアルでは、Kubernetes ポッドの監視の基本を探り、ポッド メトリクスにアクセスして、それを有効なアプリケーション管理に活用する方法を説明します。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL kubernetes(("Kubernetes")) -.-> kubernetes/BasicCommandsGroup(["Basic Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/ClusterManagementCommandsGroup(["Cluster Management Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/TroubleshootingandDebuggingCommandsGroup(["Troubleshooting and Debugging Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/ConfigurationandVersioningGroup(["Configuration and Versioning"]) kubernetes/BasicCommandsGroup -.-> kubernetes/get("Get") kubernetes/ClusterManagementCommandsGroup -.-> kubernetes/top("Top") kubernetes/TroubleshootingandDebuggingCommandsGroup -.-> kubernetes/describe("Describe") kubernetes/TroubleshootingandDebuggingCommandsGroup -.-> kubernetes/logs("Logs") kubernetes/ConfigurationandVersioningGroup -.-> kubernetes/config("Config") subgraph Lab Skills kubernetes/get -.-> lab-415632{{"特定の名前空間内のポッドの CPU とメモリ使用量を表示する方法"}} kubernetes/top -.-> lab-415632{{"特定の名前空間内のポッドの CPU とメモリ使用量を表示する方法"}} kubernetes/describe -.-> lab-415632{{"特定の名前空間内のポッドの CPU とメモリ使用量を表示する方法"}} kubernetes/logs -.-> lab-415632{{"特定の名前空間内のポッドの CPU とメモリ使用量を表示する方法"}} kubernetes/config -.-> lab-415632{{"特定の名前空間内のポッドの CPU とメモリ使用量を表示する方法"}} end

Kubernetes ポッドの監視の理解

Kubernetes は、アプリケーションの管理と監視に強力なツールセットを提供する、強力なコンテナオーケストレーション プラットフォームです。Kubernetes の重要な側面の 1 つは、アプリケーションのポッドのパフォーマンスとリソースの利用状況を監視する機能です。このセクションでは、Kubernetes ポッドの監視の基本を探り、ポッド メトリクスにアクセスして、それを有効なアプリケーション管理に活用する方法を説明します。

Kubernetes Metrics Server

Kubernetes Metrics Server は、Kubernetes クラスタ内のポッドとノードに対するリソース メトリクスを提供するコア コンポーネントです。CPU とメモリの利用状況など、さまざまなメトリクスを収集して公開します。これらのメトリクスは、監視、オートスケーリング、およびその他の Kubernetes 機能に使用できます。

Kubernetes クラスタで Metrics Server を有効にするには、公式の Kubernetes ドキュメントに従うか、Google Kubernetes Engine (GKE) や Amazon Elastic Kubernetes Service (EKS) などのマネージド Kubernetes サービスを使用できます。これらのサービスでは、通常、Metrics Server が事前に構成されています。

graph LR A[Kubernetes Cluster] --> B[Metrics Server] B --> C[Pod Metrics] B --> D[Node Metrics]

ポッド メトリクスのアクセス

Kubernetes コマンド ライン インターフェイス (kubectl) を使用するか、Prometheus などの監視ソリューションと統合することで、ポッド メトリクスにアクセスできます。以下は、kubectl を使用してポッド メトリクスを取得する方法の例です。

## ポッドの CPU とメモリ使用量を取得する
kubectl top pods

## 特定の名前空間のポッドの CPU とメモリ使用量を取得する
kubectl top pods -n <namespace>

## 特定のポッドの CPU とメモリ使用量を取得する
kubectl top pod <pod-name>

kubectl top pods コマンドの出力には、Kubernetes クラスタ内の各ポッドの現在の CPU とメモリ使用量が表示されます。

NAME                    CPU(cores)   MEMORY(bytes)
example-pod-1           100m         256Mi
example-pod-2           200m         512Mi

ポッドの CPU とメモリの利用状況を理解することで、スケーリング、リソース割り当て、および全体的なアプリケーション パフォーマンス最適化に関する情報に基づいた決定を行うことができます。

Kubernetes ポッドの CPU とメモリの利用状況の監視

Kubernetes ポッドの CPU とメモリの利用状況を監視することは、アプリケーションのリソース消費を理解し、最適なパフォーマンスを確保するために重要です。このセクションでは、ポッドの CPU とメモリの使用状況を監視するさまざまな方法とツールを探ります。

Kubernetes Metrics Server を使用した監視

前のセクションで述べたように、Kubernetes Metrics Server は、ポッドとノードに対するリソース メトリクスを提供するコア コンポーネントです。Metrics Server を使用すると、コマンド ラインから直接ポッドの CPU とメモリの利用状況を監視できます。

## ポッドの CPU とメモリ使用量を取得する
kubectl top pods

## 特定の名前空間のポッドの CPU とメモリ使用量を取得する
kubectl top pods -n <namespace>

## 特定のポッドの CPU とメモリ使用量を取得する
kubectl top pod <pod-name>

kubectl top pods コマンドの出力には、Kubernetes クラスタ内の各ポッドの現在の CPU とメモリ使用量が表示されます。

NAME                    CPU(cores)   MEMORY(bytes)
example-pod-1           100m         256Mi
example-pod-2           200m         512Mi

Prometheus を使用した監視

Prometheus は、強力なオープンソースの監視ソリューションであり、Kubernetes と統合してポッドとノードのメトリクスの包括的な監視を提供できます。Kubernetes クラスタに Prometheus Operator を展開することで、Prometheus とその関連コンポーネントを簡単に構成および管理できます。

graph LR A[Kubernetes Cluster] --> B[Prometheus Operator] B --> C[Prometheus] C --> D[Pod Metrics] C --> E[Node Metrics]

Prometheus をセットアップしたら、そのウェブベースのユーザー インターフェイスを使用するか、Grafana などのビジュアライゼーション ツールと統合して、ポッドの CPU とメモリの利用状況を監視するためのカスタム ダッシュボードとアラートを作成できます。

ポッドのリソース消費を理解することで、スケーリング、リソース割り当て、および全体的なアプリケーション パフォーマンス最適化に関する情報に基づいた決定を行うことができます。

Grafana を使ったポッド メトリクスの可視化

Grafana は、人気のあるオープンソースのデータ可視化および監視ツールであり、Kubernetes とシームレスに統合して、高度なポッド メトリクスの可視化と分析を提供します。Grafana を活用することで、カスタム ダッシュボードと可視化を作成して、Kubernetes ポッドのパフォーマンスとリソースの利用状況を深く洞察することができます。

Grafana と Kubernetes の統合

Grafana を Kubernetes クラスタに統合するには、次の一般的な手順に従うことができます。

  1. Kubernetes クラスタに Grafana を展開するか、マネージド Grafana サービスを使用します。
  2. Grafana を構成して、Kubernetes Metrics Server または Prometheus インスタンスに接続してポッド メトリクスを取得します。
  3. ポッドの CPU とメモリの利用状況、およびその他の関連メトリクスを監視するためのカスタム ダッシュボードと可視化を作成します。
graph LR A[Kubernetes Cluster] --> B[Metrics Server] B --> C[Grafana] A[Kubernetes Cluster] --> D[Prometheus] D --> C[Grafana]

Grafana でのポッド メトリクスの可視化

Grafana を Kubernetes クラスタに統合すると、カスタム ダッシュボードを作成してポッド メトリクスを可視化できます。Grafana は、折れ線グラフ、棒グラフ、ヒートマップなど、幅広い可視化オプションを提供しており、CPU とメモリの利用状況データを表示するために使用できます。

以下は、ポッドの CPU とメモリ使用量を可視化する Grafana ダッシュボードの例です。

メトリック 可視化
ポッド CPU 使用量 折れ線グラフ
ポッド メモリ使用量 折れ線グラフ
CPU 使用量で上位のポッド 棒グラフ
メモリ使用量で上位のポッド 棒グラフ

Grafana を使用することで、Kubernetes ポッドのパフォーマンスとリソースの利用状況を包括的に理解し、スケーリング、リソース割り当て、および全体的なアプリケーション最適化に関する情報に基づいた決定を行うことができます。

まとめ

このチュートリアルでは、Kubernetes Metrics Server を有効にして、CPU とメモリの利用状況などのポッドとノードのメトリクスを収集して公開する方法を学びました。また、Kubernetes コマンド ライン インターフェイス (kubectl) を使用してこれらのメトリクスにアクセスする方法と、Grafana を使用してそれらを可視化する方法も学びました。ポッドのリソース使用状況を理解して監視することで、Kubernetes クラスタ内でのスケーリング、リソース割り当て、および全体的なアプリケーション パフォーマンス最適化に関する情報に基づいた決定を行うことができます。