震惊!k8s竟然是这么显示资源的使用情况的!

188 阅读2分钟

📝 CKA 1.26·第2题|Kubernetes 显示资源的使用情况

场景: 显示如CPU/内存等资源的使用情况,该命令允许查看节点或者Pod的资源消耗情况。


一、题目要求

  1. 切换上下文到 k8s 集群。
  2. 通过pod label name=cpu-utilizer,找到运行时占用大量CPU的pod
  3. 将占用CPU最高的pod名称写入文件/opt/KUTR00401/KUTR00401.txt(已存在)。

二、核心命令示例

# 1. 切换上下文
kubectl config use-context k8s

# 2. 查询
kubectl top pod -l name=cpu-utilizer -A --sort-by=cpu-utilizer

# 3. 将查询结果写入文件
echo "查出来的结果" > /opt/KUTR00401/KUTR00401.txt

三、关键点提示

  • 理解与使用kubectl top。 使用的格式为: kubectl top [flags]

kubectl top node

选项作用概述
-h, --helpnode 操作的帮助命令。
--no-headers如果存在,则打印没有标头的输出。
-l, --selector string用来执行过滤的选择算符(标签查询),支持 '='、'==' 和 '!='(例如 -l key1=value1,key2=value2)。 匹配的对象必须满足所有指定的标签约束。
--show-capacity基于节点的 Capacity 而不是 Allocatable(默认)打印节点资源。
--sort-by string如果非空,则使用指定字段对节点列表进行排序。字段可以是 “cpu” 或 “memory”。
--use-protocol-buffers(默认值:true)启用协议缓冲区(protocol-buffers)以访问 Metrics API。

kubectl top pod

选项作用概述
-A, --all-namespaces如果存在,则列举所有命名空间中请求的对象。 即使使用 --namespace 指定,当前上下文中的命名空间也会被忽略。
-h, --helppod 操作的帮助命令。
--no-headers如果存在,则打印没有标头的输出。
-l, --selector string用来执行过滤的选择算符(标签查询),支持 '='、'==' 和 '!='(例如 -l key1=value1,key2=value2)。 匹配的对象必须满足所有指定的标签约束。
--sum打印资源使用量的总和。
--sort-by string如果非空,则使用指定字段对节点列表进行排序。字段可以是 “cpu” 或 “memory”。
--use-protocol-buffers(默认值:true)启用协议缓冲区(protocol-buffers)以访问 Metrics API。
--field-selector string过滤所用的选择算符(字段查询),支持 '='、'==' 和 '!='。 (例如 --field-selector key1=value1,key2=value2)。服务器针对每种类型仅支持有限数量的字段查询。
--containers如果存在,则打印 Pod 内的容器的使用情况。

四、参考文档