Итоги DevOps-челленджа: 15 победителей и разбор задачи по диагностике сломанного приложения
Привет, меня зовут Саша Опрышко, я управляющий партнер в KTS.
В июле мы с Yandex Cloud провели K8s Challenge. На его основе запустили конкурс для всех, кто не успел поучаствовать в челлендже вживую.
Мы уже определили самых быстрых участников и составили рейтинг победителей, которые получат призовой мерч:
1. Dan aka @bratushkadan: 5 мин 6 сек
2. Alexandr Negashev aka @negashev: 5 мин 32 сек
3. Kairzhan Aubekerov aka @kaubekerov: 5 мин 45 сек
4. Соня aka @468***: 7 мин 6 сек
5. Timur aka @TimurKuzmin: 7 мин 42 сек
6. Alex Sharov aka @kvendingoldo: 8m 46s
7. Евгений Романов aka @nothing011235: 9m 37s
8. Sergey aka @ex_trim: 10m 12s
9. dmitriy aka @litrich: 11m 29s
10. Artem aka @vregret: 11m 45s
11. PS aka @tr3mor1401: 12m 5s
12. Ruslan aka @RuslanGozgeshev: 12m 15s
13. Maxim aka @mbaran0v: 12m 34s
14. Евгений aka @Ggwpkekwait: 13m 4s
15. ghost aka @649***: 13m 43s
P. S. Иногда разница в результатах была минимальной, поэтому мы увеличили число победителей с 10 до 15 😉
А сейчас я расскажу и покажу, как же всё-таки решить задачку и потратить на неё не больше 10 минут.
Перед нами — достаточно стандартная задача по диагностике неработающего приложения. Поэтому начнём не менее стандартно: посмотрим, в каком состоянии на текущий момент находятся поды приложения:
Обнаруживаем, что один под завис в состоянии Pending, а второй не может запуститься и висит в состоянии ContainerCreating.
Дальше стоит проверить, почему это происходит и поочерёдно запускаем describe чтобы посмотреть ошибки, которые генерируют поды.
В первом поде, как оказалось, контейнер падает по OOM. Картина знакомая и надо поправить ему лимиты ресурсов в конфигурации deployment:
Из ошибок второго пода понимаем, что он не смог выбрать ноду для запуска из-за anti-affinity, всё в той же
Читать на habr.com

