Pods EKS com armazenamento efêmero constantemente despejados

Pods EKS com armazenamento efêmero constantemente despejados

Estou trabalhando no EKS v1.20.11-eks-f17b81 e estou enfrentando um problema com um contêiner Java baseado em Alpine. Basicamente minha implantação tem limites de armazenamento efêmero para as solicitações e também limites como este.

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

Os pods depois de algumas horas, todos eles estarão no estado Evicted, e não consigo entender por que, se eu der uma olhada na pasta /var/lib nos nós, há muito espaço, também se eu for para algum pod comkubectl exec -ti POD --she faço algo como du -sch / nunca encontrei mais de 300 MB usados, o que pode estar acontecendo?

Responder1

TLDR: não use ephemeral-storagelimites ou use-os em todos os contêineres do pod.


Acho que você não tem ephemeral-storagelimites definidos paratodos os contêineresnaquele pod específico. O gerenciador de despejo soma todos os limites dos contêineres e define-os como limite superiorno nível do pod.

Isso é 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 você pode ver, ambos podEphemeralStorageLimitEvictionsão containerEphemeralStorageLimitEvictionusados ​​para despejo. No momento em que escrevo, não entendo "por que" ambos são usados ​​(e não apenas o contêiner um).

informação relacionada