查看k8s集群中pod和node的资源使用情况
1. kubectl top pod 命令
kubectl top pod 命令用于显示集群中所有 Pod 的 CPU 和内存使用情况。
示例 1: 查看所有 Pod 的资源使用情况
kubectl top pod
输出示例:
NAME CPU(cores) MEMORY(bytes)
nginx-deployment-5c6b7c8f8b-abcde 50m 128Mi
nginx-deployment-5c6b7c8f8b-fghij 60m 130Mi
my-app-7d8f9f8f8b-jklmn 100m 256Mi
示例 2: 查看特定命名空间中的 Pod 资源使用情况
kubectl top pod -n my-namespace
输出示例:
NAME CPU(cores) MEMORY(bytes)
my-app-7d8f9f8f8b-jklmn 100m 256Mi
示例 3: 查看 Pod 的详细信息
如果您想查看特定 Pod 的资源使用情况,可以使用 -o 选项输出为 JSON 或 YAML 格式:
kubectl top pod my-app-7d8f9f8f8b-jklmn -n my-namespace -o json
2. kubectl top node 命令
kubectl top node 命令用于显示集群中所有 Node 的 CPU 和内存使用情况。
示例 1: 查看所有 Node 的资源使用情况
kubectl top node
输出示例:
NAME CPU(cores) MEMORY(bytes)
node-1 200m 512Mi
node-2 300m 1Gi
node-3 150m 256Mi
示例 2: 查看特定 Node 的资源使用情况
如果您只想查看特定 Node 的资源使用情况,可以指定 Node 名称:
kubectl top node node-1
输出示例:
NAME CPU(cores) MEMORY(bytes)
node-1 200m 512Mi
3. 结合其他命令
您可以将 kubectl top 命令与其他命令结合使用,以便进行更复杂的监控和分析。例如,您可以将输出通过管道传递给 grep 或 awk 进行过滤。
示例 1: 过滤 CPU 使用率高于 100m 的 Pod
kubectl top pod --no-headers | awk '$2 > 100 {print $1, $2, $3}'
输出示例:
my-app-7d8f9f8f8b-jklmn 150m 256Mi