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
    }
Другие вопросы по тегам