首页 > 解决方案 > 这个函数在 Kubernetes 中的目的是什么?

问题描述

我想,以下功能的目的是什么?是为了资源分配吗?

另外,我想知道,kubernetes在哪部分代码中根据资源限制决定分配资源?我找不到那些代码。请你帮助我好吗?

https://github.com/kubernetes/kubernetes/blob/master/pkg/scheduler/nodeinfo/node_info.go

func calculateResource(pod *v1.Pod) (res Resource, non0CPU int64, non0Mem int64) {
    resPtr := &res
    for _, c := range pod.Spec.Containers {
        resPtr.Add(c.Resources.Requests)

        non0CPUReq, non0MemReq := priorityutil.GetNonzeroRequests(&c.Resources.Requests)
        non0CPU += non0CPUReq
        non0Mem += non0MemReq
        // No non-zero resources for GPUs or opaque resources.
    }

    return
}

标签: kubernetes

解决方案


简而言之,kubelet 限制了 cgroup 对容器资源的使用。您可以按关键字搜索CgroupConfig

Kubernetes 如何根据资源限制来决定分配资源?

ResourceConfigForPod的详细信息。


推荐阅读