EKS Pods con almacenamiento efímero constantemente desalojados

EKS Pods con almacenamiento efímero constantemente desalojados

Estoy trabajando en EKS v1.20.11-eks-f17b81 y tengo un problema con un contenedor Java basado en Alpine. Básicamente, mi implementación tiene límites de almacenamiento efímero para las solicitudes y también límites como este.

- containerPort: 8080
  protocol: TCP
resources:
  limits:
    cpu: 2048m
    ephemeral-storage: 1300Mi
    memory: 4096M
  requests:
    cpu: 500m
    memory: 1024M
    ephemeral-storage: 1000Mi

Después de unas horas, todos los pods estarán en estado Expulsado, y no puedo entender por qué, si miro la carpeta /var/lib en los nodos, hay mucho espacio, también si voy a alguna vaina conkubectl ejecutivo -ti POD --shy hago algo como du -sch/nunca encontré más de 300MB usados, ¿qué puede estar pasando?.

Respuesta1

TLDR: No utilice ephemeral-storageningún límite o utilícelos en todos los contenedores del pod.


Supongo que no tienes ephemeral-storagelímites establecidos paratodos los contenedoresen esa cápsula en particular. El administrador de desalojo suma todos los límites de contenedores y lo establece como límite superioren el nivel de la vaina.

esto es realfragmento de código:

func (m *managerImpl) localStorageEviction(pods []*v1.Pod, statsFunc statsFunc) []*v1.Pod {
    evicted := []*v1.Pod{}
    for _, pod := range pods {
        podStats, ok := statsFunc(pod)
        if !ok {
            continue
        }

        if m.emptyDirLimitEviction(podStats, pod) {
            evicted = append(evicted, pod)
            continue
        }

        if m.podEphemeralStorageLimitEviction(podStats, pod) {
            evicted = append(evicted, pod)
            continue
        }

        if m.containerEphemeralStorageLimitEviction(podStats, pod) {
            evicted = append(evicted, pod)
        }
    }

    return evicted
}

Como puedes ver ambos podEphemeralStorageLimitEvictionya containerEphemeralStorageLimitEvictionse utilizan para el desalojo. Al momento de escribir este artículo, no entiendo "por qué" se usan ambos (y no solo el contenedor uno).

información relacionada