关于Kubernetes中资源分配的一个问题

关于Kubernetes中资源分配的一个问题,kubernetes,Kubernetes,我想知道库伯内特斯是如何计算资源分配的?实际上,我在源代码中找不到它。 在kubernetes官方文档中,allocatable被计算为[allocatable]=[Node Capacity]-[Kube Reserved]-[System Reserved]-[Hard Excition Threshold]。你能帮我找到github中kubernetes的相关源代码吗 实际上,我想更改kubernetes中的分配策略,我需要找到相关代码 干杯有两种选择: 调度程序使用node.Statu

我想知道库伯内特斯是如何计算资源分配的?实际上,我在源代码中找不到它。 在kubernetes官方文档中,allocatable被计算为[allocatable]=[Node Capacity]-[Kube Reserved]-[System Reserved]-[Hard Excition Threshold]。你能帮我找到github中kubernetes的相关源代码吗

实际上,我想更改kubernetes中的分配策略,我需要找到相关代码


干杯

有两种选择:

  • 调度程序使用node.Status.Allocatable而不是node.Status.Capacity的值来决定某个节点是否将成为pod调度的候选节点。因此,有一件事要做,就是绕过调度程序并指定您自己的调度程序

  • 第二个选项是更改kubelet使用的值和选项

可以在节点的kubeletArguments部分中设置这些 通过使用一组 =对(例如。, cpu=200m,内存=512Mi)。如果节不存在,请添加该节

  • 也许你要寻找的最后一个选择是改变代码,改变计算方式

从这里开始:

// AllocatableResource returns allocatable resources on a given node.
func (n *NodeInfo) AllocatableResource() Resource {
    if n == nil {
        return emptyResource
    }
    return *n.allocatableResource
}
下面是使用该信息的schedular的一部分:

if allocatable.Memory < podRequest.Memory+nodeInfo.RequestedResource().Memory {
        predicateFails = append(predicateFails, NewInsufficientResourceError(v1.ResourceMemory, podRequest.Memory, nodeInfo.RequestedResource().Memory, allocatable.Memory))
    }
如果可分配.Memory

有两种选择:

  • 调度程序使用node.Status.Allocatable而不是node.Status.Capacity的值来决定某个节点是否将成为pod调度的候选节点。因此,有一件事要做,就是绕过调度程序并指定您自己的调度程序

  • 第二个选项是更改kubelet使用的值和选项

可以在节点的kubeletArguments部分中设置这些 通过使用一组 =对(例如。, cpu=200m,内存=512Mi)。如果节不存在,请添加该节

  • 也许你要寻找的最后一个选择是改变代码,改变计算方式

从这里开始:

// AllocatableResource returns allocatable resources on a given node.
func (n *NodeInfo) AllocatableResource() Resource {
    if n == nil {
        return emptyResource
    }
    return *n.allocatableResource
}
下面是使用该信息的schedular的一部分:

if allocatable.Memory < podRequest.Memory+nodeInfo.RequestedResource().Memory {
        predicateFails = append(predicateFails, NewInsufficientResourceError(v1.ResourceMemory, podRequest.Memory, nodeInfo.RequestedResource().Memory, allocatable.Memory))
    }
如果可分配.Memory

您想如何更改分配策略?您好,我想根据请求的POD资源最大限度地为每个用户分配资源。我想使用不同的资源分配公式和策略。但是我不知道如何更改分配策略。您想如何更改分配策略?嗨,我想根据请求的POD资源最大限度地为每个用户分配资源。我想使用不同的资源分配公式和策略。但我不知道怎么做。非常感谢你。我必须考虑所有这些选项。谢谢您的回复。我只是想知道下面公式的代码在哪里?[Allocatable]=[Node Capacity]-[kube reserved]-[system reserved]我在kubernetes的github代码库中找不到它。不,代码中没有这样的公式,非常感谢。我必须考虑所有这些选项。谢谢您的回复。我只是想知道下面公式的代码在哪里?[Allocatable]=[Node Capacity]-[kube reserved]-[system reserved]我在kubernetes的github代码库中找不到它。不,代码中没有这样的公式