when one of zones enter full disruption, we update eviction qps to which value for this zone

10/18/2018

I think when zone ,for example zone-1, enters full disruption, we shouldn't evict node in this zone, that is to say, we should set limiter qps=0.

However when i check code, unexpected result:

nc.enterFullDisruptionFunc = nc.HealthyQPSFunc

func (nc *Controller) HealthyQPSFunc(nodeNum int) float32 {
return nc.evictionLimiterQPS
}

func (nc *Controller) setLimiterInZone(zone string, zoneSize int, state ZoneState) {
switch state {
case stateNormal:
    if nc.useTaintBasedEvictions {
        nc.zoneNoExecuteTainer[zone].SwapLimiter(nc.evictionLimiterQPS)
    } else {
        nc.zonePodEvictor[zone].SwapLimiter(nc.evictionLimiterQPS)
    }
case statePartialDisruption:
    if nc.useTaintBasedEvictions {
        nc.zoneNoExecuteTainer[zone].SwapLimiter(
            nc.enterPartialDisruptionFunc(zoneSize))
    } else {
        nc.zonePodEvictor[zone].SwapLimiter(
            nc.enterPartialDisruptionFunc(zoneSize))
    }
case stateFullDisruption:
    if nc.useTaintBasedEvictions {
        nc.zoneNoExecuteTainer[zone].SwapLimiter(
            nc.enterFullDisruptionFunc(zoneSize))
    } else {
        nc.zonePodEvictor[zone].SwapLimiter(
            nc.enterFullDisruptionFunc(zoneSize))
    }
}

}

I dont't know why we return nc.evictionLimiterQPS instead of 0.

-- Bling
kubernetes

0 Answers