Kubernetes 显示资源使用情况

KubernetesKubernetesBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

资源使用情况是任何在 Kubernetes 集群中运行的应用程序的重要方面。通过监控资源使用情况,你可以识别性能问题、优化资源并提高应用程序的整体效率。在本实验中,我们将探讨如何使用 metrics-server 显示 Kubernetes 集群中的资源使用情况。我们将涵盖 CPU 和内存使用情况。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL kubernetes(("`Kubernetes`")) -.-> kubernetes/BasicsGroup(["`Basics`"]) kubernetes(("`Kubernetes`")) -.-> kubernetes/BasicCommandsGroup(["`Basic Commands`"]) kubernetes(("`Kubernetes`")) -.-> kubernetes/ClusterManagementCommandsGroup(["`Cluster Management Commands`"]) kubernetes(("`Kubernetes`")) -.-> kubernetes/TroubleshootingandDebuggingCommandsGroup(["`Troubleshooting and Debugging 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 对象的资源使用情况。

## 显示特定命名空间中所有 Pod 的 CPU 和内存使用情况
kubectl top pods --namespace=kube-system

## 显示集群中所有节点的 CPU 和内存使用情况
kubectl top nodes

此命令将显示指定命名空间中所有 Pod 或集群中所有节点的当前 CPU 和内存使用统计信息。

显示容器的 CPU 和内存使用情况

要显示 Pod 中运行的容器的 CPU 和内存使用情况,我们将再次使用 kubectl top 命令。

创建一个简单的 Pod 作为副本的模板。在 /home/labex/project/ 目录下创建一个名为 myapp-pod.yaml 的文件,内容如下:

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

使用以下命令创建 Pod:

kubectl apply -f myapp-pod.yaml

然后,使用以下命令显示 Pod 中特定容器的 CPU 和内存使用情况:

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

此命令将显示指定 Pod 中指定容器的当前 CPU 和内存使用统计信息。

总结

恭喜!你已成功完成 Kubernetes 显示资源使用情况的实验。在本实验中,你学习了如何显示 Kubernetes 集群中 CPU 和内存的资源使用统计信息。通过使用 metrics-server,你现在可以监控应用程序的资源使用情况,优化资源,并提高在 Kubernetes 集群中运行的应用程序的整体效率。

您可能感兴趣的其他 Kubernetes 教程