您当前的位置:首页 >> 智慧城市
智慧城市

Kata Containers 在 Kubernetes 中的资源开销与允许

发布时间:2025-09-14

VM 的森林资源一般来说为 limit + default,其之中 limit 为 Pod 道歉信的 limit,不包含 overhead 在内,default 为Kata 的建筑设计文件之中的典范 VM 一般来说。

以上述 guaranteed Pod 为例,可以看到再一的 VM 是一个 2C,3G 的尺寸一般来说

bash-5.0# cat /proc/cpuinfo | grep processor | wc -l

2

bash-5.0# free -m

total used free shared buff/cache available

Mem: 3009 38 2941 29 30 2913

Swap: 0 0 0

Cgroup

从 Kubernetes 角度来讲,Cgroup 同义的是 Pod Cgroup,由 Kubelet 始创,容许的是 Pod 的森林资源; 从 Container 角度来讲,Cgroup 同义的是 Container Cgroup,由相异的 runtime 始创,容许的是 container 的森林资源。

但是为了可以换取到更为准确的试管森林资源,Kubelet 时会根据 Container Cgroup 去调整 Pod Cgroup。在基本上的 runtime 之中,两者没有太大的区别。而 Kata Containers 引入 VM 的表达方式,所以针对这种情况有两种或多或少:

投入采用 SandboxCgroupOnly,Kubelet 在调整 Pod Cgroup 的一般来说时,时会将 sandbox 的支出统计进去

禁用 SandboxCgroupOnly,sandbox 的支出和 Pod Cgroup 分开计算,脱离依赖于

从 host 第一人称来看,在 Kata 没有带进 SandboxCgroupOnly 的时候,依赖于有两个试管(infra 和 workload)的 Cgroup 策略文件,结构模式类似 runC,但是并没有认出有关容许时会话的资讯的 task 文件。从 container 第一人称看,无论是哪种列车运行时,Cgroup大多为 Pod 工作扭矩的小得多森林资源限量。从 VM 第一人称看,无论应该带进 SandboxCgroupOnly,都可以看到有两个试管(infra 和 workload)的 Cgroup 策略文件,VM 之中的 Cgroup 都是针对工作扭矩做的容许,而这个视图更为像是 runC 之中看到的一切。

解释器

Kata的建筑设计之中的典范VM一般来说为5C 2G

default_vcpus = 5

default_memory = 2048

runtimeClass之中道歉信了一个额外的1C

apiVersion: node.k8s.io/v1beta1

kind: RuntimeClass

metadata:

name: kata-runtime

handler: kata

overhead:

podFixed:

memory: "1000Mi"

cpu: "1000m"

道歉信了一个小得多2C的业务部门试管

apiVersion: v1

kind: Pod

metadata:

name: guaranteed

spec:

runtimeClassName: kata-runtime

containers:

- name: uname

image: busybox

command: ["/bin/sh", "-c", "uname -r && tail -f /dev/null"]

resources:

requests:

memory: "1000Mi"

cpu: "2"

limits:

memory: "1000Mi"

cpu: "2"

根据以上结论应依赖于:

1C 的额外森林资源时会作主要用途 Kata Containers 的额外支出,而不是业务部门扭矩

2C 的试管森林资源为试管都能采用的小得多采用上限

overhead 的 1C + Pod 的 2C 合共的 3C为 VM 的小得多采用量

VM 之中 CPU 的n-应为 7

查看Pod的森林资源容许

# kubectl describe node | grep guaranteed

CPU Requests CPU Limits Memory Requests Memory Limits

3 (6%) 3 (6%) 2000Mi (1%) 2000Mi (1%)

Pod之中列车运行较高扭矩应用

在 host 上可以看到,时会话迁出了 2C,而并非上一步看到的3C

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

28239 root 20 0 3948324 192908 177888 S 197.7 0.1 0:21.27 qemu-system-x86

VM之中列车运行较高扭矩应用

在 host 上可以看到,这次时会话迁出了 3C

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

28239 root 20 0 3948324 195244 180212 S 298.3 0.1 8:43.44 qemu-system-x86

假定,Pod limit 再一抑制作用的对象就是业务部门试管的森林资源容许,而 overhead 抑制作用的对象是附加在业务部门试管正因如此的,两者之和是再一 VM 的森林资源容许。

总结

Kubernetes 在用 Kata Containers 作为最底层 runtime 后,对于 runtime 列车运行环境的额外支出总括,但是 K8s 角度又不时会感知到这部分森林资源,而 overhead 的建筑设计就弥补了这一有缺陷,并且 overhead 对于森林资源的额外道歉信,是时会统计在 Cgroup 之中的,所以即使最底层 Kata Containers 的的建筑设计即使很较高,也可以通过 limit 实现森林资源缴税,这是因为 Kata 对于森林资源并不是完全迁出,不同的 Kata VM 之间时会依赖于森林资源逼进现象。在此方四面,Kata Containers 和基本上试管的建筑设计理念相同。

0。

上一篇: A股异动 | 李子园(605337.SH)逆势涨超4% 贝氏2亿元投建3条生产线

下一篇: 送公共服务啦!新华网微信送50部手机!

友情链接