Replicaset-controller зачем нужны BurstReplicas
Я изучаю функцию самоисцеления кубернетов. Я хочу знать значение 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
}
~~~
1 ответ
Я собираюсь предположить, что это, собственно, суть кубернетов; текущее состояние по сравнению с желаемым состоянием. А такжеburstReplicas
это количество реплик, которое он может создать или удалить за один раз.
1.- Проверка, больше ли текущее количество стручков желаемого или меньше:
diff := len(filteredPods) - int(*(rs.Spec.Replicas))
2.- Если он ниже, то нужно создать поды. Но сначала он проверяет, превышает ли количество модулей, которые вы хотите создать, максимальное количество модулей, которое он может создать (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 again
3.- Если он указан выше, ему нужно убить поды, но опять же, ему нужно проверить, превышает ли количество подов, которое ему нужно убить, максимально возможное:
} else if diff > 0 {
if diff > rsc.burstReplicas {
diff = rsc.burstReplicas
}