Каскада от изхвърляне на pods
Възелът изчерпа дисковото пространство. Всички pods изхвърлени. Нови pods насрочени на същия възел. Изхвърлени отново. Повторение завинаги.
Хронология:
- 2:00 AM: Дискът на възела достига 90%
- 2:05 AM: Kubelet започва да изхвърля pods
- 2:06 AM: Pods пренасрочени към... същия възел (най-много налични ресурси)
- 2:07 AM: Повече логове, повече използване на диска
- 2:08 AM: Изхвърлени отново
- 2:09 AM: Алармата се задейства (най-накрая)
Основна причина:
- Приложението логва във файловата система на контейнера
- Не е конфигурирана ротация на логове
- ephemeral-storage лимити не са зададени
- Възелът е tainted само след disk pressure, но taints се изчистват когато pods напуснат
Решението:
resources:
limits:
ephemeral-storage: "2Gi"
requests:
ephemeral-storage: "1Gi"
Плюс:
- Логване към stdout (събирано от Fluentd)
- Конфигуриране на ротация на логове на контейнера
- Мониторинг на използване на диска на възела с аларми при 70%
Урок: Задайте ephemeral-storage лимити. Винаги.