我正在研究kubernetes自愈函数。我想知道rsc.burstReplicas的意思
func (rsc *ReplicaSetController) manageReplicas(filteredPods []*v1.Pod, rs *apps.ReplicaSet) error {
diff := len(filteredPods) - int(*(rs.Spec.Replicas))
rsKey, err := controller.KeyFunc(rs)
if err != nil {
utilruntime.HandleError(fmt.Errorf("Couldn't get key for %v %#v: %v", rsc.Kind, rs, err))
return nil
}
if diff < 0 {
diff *= -1
if diff > rsc.burstReplicas {
diff = rsc.burstReplicas
}
~~~发布于 2020-01-22 16:45:43
我将猜测这实际上是kubernetes的核心;当前状态与期望状态。和burstReplicas是它可以一次创建或删除的副本的数量。
1.-检查当前pod数量是否高于或低于所需数量:
diff := len(filteredPods) - int(*(rs.Spec.Replicas))2.-如果在下面,则需要创建pods。但首先,它将检查您想要创建的pod数量是高于还是低于它可以创建的最大pod数量(500)。
if diff < 0 {
diff *= -1
if diff > rsc.burstReplicas { # If you need more then 500 pods,
diff = rsc.burstReplicas # it is going to create 500.
} # Then, will check again3.-如果它在上面,它需要杀死pod,但再次,它需要检查它需要杀死的pod数量是否超过了它可以杀死的最大数量:
} else if diff > 0 {
if diff > rsc.burstReplicas {
diff = rsc.burstReplicas
}https://stackoverflow.com/questions/59854222
复制相似问题