簡體   English   中英

有關Kubernetes中資源分配的問題

[英]A question regarding resource allocation in Kubernetes

我正在嘗試找出kubernetes如何計算資源分配? 實際上,我無法在源代碼中找到它。 在kubernetes官方文檔中,可分配的計算公式為[可分配的] = [節點容量]-[保留的Kube]-[保留的系統]-[硬逐出閾值]。 您能幫我在github的kubernetes中找到相關的源代碼嗎?

實際上,我想更改kubernetes中的分配策略,並且需要找到相關代碼。

干杯

有兩種選擇:

  • 調度程序使用node.Status.Allocatable的值而不是node.Status.Capacity的值來確定節點是否將成為Pod調度的候選者。 因此,要做一件事是做自定義的東西,就是繞過時間表,然后指定您自己的時間表。

  • 第二個選項是更改kubelet使用的值和選項。 細節

您可以使用一組=對(例如,cpu = 200m,內存= 512Mi)在節點配置圖的kubeletArguments部分中進行設置。 如果該部分尚不存在,請添加

  • 也許您正在尋找的最后一個選擇是更改代碼,即事物的計算方式。

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

從這里開始:

// AllocatableResource returns allocatable resources on a given node.
func (n *NodeInfo) AllocatableResource() Resource {
    if n == nil {
        return emptyResource
    }
    return *n.allocatableResource
}

這是使用該信息的時間表的一部分:

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

https://github.com/kubernetes/kubernetes/blob/788f24583e95ac47938a41daaf1f1efc58153738/pkg/scheduler/algorithm/predicates/predicates.go

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM