本文主要是介绍27. Cgroups, 深入了解Kubernetes 的资源管理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
注意:这是中文翻译稿,借助星火大模型直接翻译。参考价值还是有的,所以翻译出来供参考。
在本文中,我们将深入探讨 cgroups 是什么、Kubernetes 如何使用它们来管理 Node 资源,以及我们如何在 Pod 上设置资源请求和限制之外利用它们。
什么是Cgroups
首先是最重要的 - Cgroups 到底是什么? - Cgroups,或简称为 cgroups,是 Linux 内核的一个功能,负责资源分配(CPU 时间、内存、网络带宽、I/O)、优先级和计费(即容器使用了多少)。此外,除了是 Linux 的基本功能之外,Cgroups 还是容器的基础构建块,因此没有 Cgroups 就不会有容器。
正如其名称所示 - Cgroups 是组,所以它们将进程分组在父-子层次结构中,形成一棵树。例如,如果一个父级 cgroup 被分配了 128Mi 的 RAM,那么其所有子进程的总 RAM 使用量不能超过 128Mi。
这个层次结构存在于 /sys/fs/cgroup/ 目录下,它是 cgroupfs 文件系统。在那里你可以找到所有 Linux 进程的子树。在这里我们关注的是 Cgroups 如何影响调度以及分配给我们的 Kubernetes Pods 的资源,因此我们关心的是 kubepods.slice/:
/sys/fs/cgroup/
└── kubepods.slice/├── kubepods-besteffort.slice/│ └── ...├── kubepods-guaranteed.slice/│ └── ...└── kubepods-burstable.slice/└─
这篇关于27. Cgroups, 深入了解Kubernetes 的资源管理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!