Kubernetes クラスタでのリソース使用状況の表示

KubernetesKubernetesBeginner
今すぐ練習

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

はじめに

Kubernetes クラスタで実行されている任意のアプリケーションにとって、リソースの使用状況は重要な側面です。リソースの使用状況を監視することで、パフォーマンスの問題を特定し、リソースを最適化し、アプリケーションの全体的な効率を向上させることができます。この実験では、metrics-server を使用して Kubernetes クラスタでのリソースの使用状況を表示する方法を探ります。CPU とメモリの使用状況について説明します。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL kubernetes(("Kubernetes")) -.-> kubernetes/TroubleshootingandDebuggingCommandsGroup(["Troubleshooting and Debugging Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/BasicsGroup(["Basics"]) kubernetes(("Kubernetes")) -.-> kubernetes/BasicCommandsGroup(["Basic Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/ClusterManagementCommandsGroup(["Cluster Management Commands"]) kubernetes/BasicsGroup -.-> kubernetes/initialization("Initialization") kubernetes/BasicCommandsGroup -.-> kubernetes/get("Get") kubernetes/ClusterManagementCommandsGroup -.-> kubernetes/top("Top") kubernetes/TroubleshootingandDebuggingCommandsGroup -.-> kubernetes/describe("Describe") kubernetes/TroubleshootingandDebuggingCommandsGroup -.-> kubernetes/logs("Logs") subgraph Lab Skills kubernetes/initialization -.-> lab-11358{{"Kubernetes クラスタでのリソース使用状況の表示"}} kubernetes/get -.-> lab-11358{{"Kubernetes クラスタでのリソース使用状況の表示"}} kubernetes/top -.-> lab-11358{{"Kubernetes クラスタでのリソース使用状況の表示"}} kubernetes/describe -.-> lab-11358{{"Kubernetes クラスタでのリソース使用状況の表示"}} kubernetes/logs -.-> lab-11358{{"Kubernetes クラスタでのリソース使用状況の表示"}} end

Minikube クラスタを起動する

リソースを作成する前に、動作中の Kubernetes クラスタが必要です。Minikube は、ローカルマシン上で動作する軽量の Kubernetes 環境です。

  1. 作業ディレクトリに移動する:

    ターミナルを開き、デフォルトのプロジェクトフォルダに移動します。

    cd /home/labex/project
  2. Minikube を起動する:

    Minikube を起動して Kubernetes クラスタを初期化します。

    minikube start
    • このコマンドは、ローカルマシン上に単一ノードの Kubernetes クラスタをセットアップします。
    • Minikube の起動には、システムの性能に応じて数分かかる場合があります。
  3. Minikube が動作していることを確認する:

    Minikube クラスタの状態を確認します。

    minikube status
    • kubeletapiserverなどのコンポーネントがRunningと表示されていることを確認します。
    • クラスタが動作していない場合は、minikube startを再度実行します。

Minikube の起動に問題がある場合は、必要に応じてminikube deleteを使用して環境をリセットします。

metrics-server を有効にする

metrics-server は、さまざまな Kubernetes オブジェクトからメトリクスを収集し、他の Kubernetes コンポーネントに対して利用可能な形式で提供する Kubernetes コンポーネントです。Kubernetes クラスタでリソースの使用状況を表示する前に、metrics-server を有効にする必要があります。

minikube addons enable metrics-server

このコマンドにより、Kubernetes クラスタで metrics-server が有効になります。

metrics-server が動作しているかどうかを確認するには、次のコマンドを実行します。

kubectl get pods --namespace=kube-system | grep metrics-server

CPU とメモリの使用状況を表示する

Kubernetes クラスタで CPU とメモリの使用状況を表示するには、kubectl topコマンドを使用します。このコマンドを使うと、Kubernetes オブジェクトのリソース使用状況をリアルタイムで確認できます。

## 特定の名前空間内のすべてのポッドのCPUとメモリの使用状況を表示する
kubectl top pods --namespace=kube-system

## クラスタ内のすべてのノードのCPUとメモリの使用状況を表示する
kubectl top nodes

このコマンドにより、指定された名前空間内のすべてのポッドまたはクラスタ内のすべてのノードの現在の CPU とメモリの使用状況統計が表示されます。

コンテナの CPU とメモリの使用状況を表示する

ポッド内で実行されているコンテナの CPU とメモリの使用状況を表示するには、再びkubectl topコマンドを使用します。

レプリカのテンプレートとして使用される単純なポッドを作成します。/home/labex/project/myapp-pod.yamlという名前のファイルを作成し、以下の内容を記述します。

apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
spec:
  containers:
    - name: myapp-container
      image: nginx
      ports:
        - containerPort: 80

以下のコマンドを使用してポッドを作成します。

kubectl apply -f myapp-pod.yaml

次に、特定のポッド内の特定のコンテナの CPU とメモリの使用状況を表示するには、次のコマンドを使用します。

kubectl top pod myapp-pod --namespace=default --containers=true

このコマンドにより、指定されたポッド内の指定されたコンテナの現在の CPU とメモリの使用状況統計が表示されます。

まとめ

おめでとうございます!あなたは Kubernetes のリソース使用状況の表示の実験を成功裏に完了しました。この実験では、Kubernetes クラスタにおける CPU とメモリのリソース使用状況統計を表示する方法を学びました。metrics-server を使用することで、現在、Kubernetes クラスタで実行されているアプリケーションのリソース使用状況を監視し、リソースを最適化し、全体的な効率を向上させることができます。