在 k8s中查看最大 CPU 和内存的极限

在 Kubernetes(k8s)中,你可以从不同层面查看最大 CPU 和内存的极限,下面为你详细介绍从节点和集群层面查看的方法。

查看节点的 CPU 和内存极限

节点的 CPU 和内存极限是指单个节点上可分配的最大资源量,可通过以下几种方式查看。

1. 使用 kubectl describe node 命令

该命令可以详细描述节点的信息,包括节点的容量(即最大可分配资源)。

bash 复制代码
kubectl describe node <node-name>

其中 <node-name> 是你要查看的节点名称。在输出结果中,你可以找到 Capacity 部分,其中包含了该节点的 CPU 和内存总量:

plaintext 复制代码
Capacity:
  cpu:                4
  ephemeral-storage:  30441288Ki
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             7978440Ki
  pods:               110

这里的 cpu 表示节点的 CPU 核心数,memory 表示节点的内存总量。

2. 使用 kubectl get nodes -o json 命令

此命令以 JSON 格式输出节点信息,方便进行脚本处理和筛选。

bash 复制代码
kubectl get nodes -o json | jq '.items[].status.capacity'

这里使用了 jq 工具来格式化和提取所需信息。输出结果类似如下:

json 复制代码
{
  "cpu": "4",
  "ephemeral-storage": "30441288Ki",
  "hugepages-1Gi": "0",
  "hugepages-2Mi": "0",
  "memory": "7978440Ki",
  "pods": "110"
}

查看集群的 CPU 和内存极限

集群的 CPU 和内存极限是指整个集群中所有节点的资源总和。

1. 手动计算

通过 kubectl get nodes -o json 命令获取所有节点的信息,然后使用脚本(如 Python)来计算所有节点的 CPU 和内存总和。以下是一个简单的 Python 脚本示例:

python 复制代码
import json
import subprocess

# 获取节点信息
result = subprocess.run(['kubectl', 'get', 'nodes', '-o', 'json'], capture_output=True, text=True)
nodes = json.loads(result.stdout)

total_cpu = 0
total_memory = 0

# 遍历所有节点
for node in nodes['items']:
    capacity = node['status']['capacity']
    total_cpu += int(capacity['cpu'])
    memory_str = capacity['memory']
    if memory_str.endswith('Ki'):
        total_memory += int(memory_str[:-2]) * 1024
    elif memory_str.endswith('Mi'):
        total_memory += int(memory_str[:-2]) * 1024 * 1024
    elif memory_str.endswith('Gi'):
        total_memory += int(memory_str[:-2]) * 1024 * 1024 * 1024

print(f"Total CPU: {total_cpu} cores")
print(f"Total Memory: {total_memory} bytes")
2. 使用 Prometheus 和 Grafana

如果你在集群中安装了 Prometheus 和 Grafana 监控系统,可以通过 Grafana 仪表盘来查看集群的资源总量。通常可以使用以下指标:

  • node_capacity_cpu_cores:表示节点的 CPU 核心数。
  • node_capacity_memory_bytes:表示节点的内存总量(以字节为单位)。

通过对这些指标进行聚合计算,可以得到整个集群的 CPU 和内存总量。

相关推荐
Muyuan19987 分钟前
28.Paper RAG Agent 开发记录:修复 LLM Rerank 的解析、Fallback 与可验证性
linux·人工智能·windows·python·django·fastapi
比昨天多敲两行20 分钟前
Linux进程概念
linux·运维·服务器
HLC++35 分钟前
Linux的基本指令+权限+基础开发工具
linux·运维·服务器
一拳一个娘娘腔35 分钟前
红队与蓝队视角:现代网络安全攻防中的Linux命令深度解析
linux·安全
杨云龙UP3 小时前
ODA运维实战:Oracle 19c YJXT PDB表空间在线扩容全过程_20260503
linux·运维·服务器·数据库·oracle
郝学胜-神的一滴3 小时前
跨平台动态库与头文件:从原理到命名的深度解析
linux·c++·程序人生·unix·cmake
吠品4 小时前
高性能JS数组操作:何时选用push、unshift、splice或扩展运算符?
linux·服务器·数据库
fish_xk4 小时前
Linux中的指令和权限
linux·运维·服务器
暴力求解4 小时前
Linux---内核态
linux·运维·服务器
mounter6254 小时前
深入理解 Linux 网络新特性:netkit 中的 RX/TX Queue Leasing 与 TCP Devmem
linux·服务器·网络·tcp/ip·kernel