Как дебажить Kubernetes и Docker с помощью «тулбоксов»
Как кубер и докер дебажить???
Ладно, выдеру кусок из будущего сезона LF, s4e18 пусть побудет публичным, ради тебя ничего не жалко.
… Чуть раньше я уже писал подобный пост для докера «основные методы отладки», но там освещены не все моменты.
Зачастую используются «тулбоксы», это такие специальные docker контейнеры, которые содержат в себе все самые необходимые утилиты для этого самого дебага. Такие «тулбоксы» можно делать самостоятельно, а можно воспользоваться готовыми.
читать первым в телеграм читать первым в макс
Один из самых популярных, это netshoot, в него включено свыше 50ти консольных утилит на все случаи жизни. Основной упор сделан на диагностику сетевой хуйни.
Например:
kubectl run netshoot --rm -it --image=nicolaka/netshoot
Теперь можно выполнить:
dig service.bashdays.svc.cluster.local
curl http://service:8080
Или зайти в network namespace pod:
kubectl debug pod/myapp -it --image=nicolaka/netshoot
Короче если какой-то сервис не работает, запускается netshoot делается DNS проверка dig service, проверка TCP nc service 5432, смотрим пакеты tcpdump -i any port 5432 и т.п.
Довольная удобная штука, ничего выдумывать не нужно. Аналогично создаются другие «тулбоксы» со своим содержимым и утилитами.
У каждого уважающего себя девопс-инженера, должен быть такой image под рукой, рано или поздно он обязательно пригодится и сослужит службу.
Самое важное здесь, разместить этот образ на РФ серверах, чтобы рядышком был и никакие блокировки бы его не касались. Да и тот же
netshootжелательно к себе утащить в норку.
Чем еще подебажить:
- k8s-toolbox
- Busybox
- dnsutils
- Network Multitool
А в новых версиях куба активно используют Ephemeral containers, как раз тот самый kubectl debug. Можно внедрить debug container прямо в pod.
Кстати «тулбоксы» можно использовать не только в кубере, они отлично ложатся на обычный докер, опять-же сеть потыкать, покурлить и помяукать. Так что если у тебя нет куба, похуй, пригодится и для обычного докера.
Ну а теперь давай создадим искусственную проблему и попытаемся её диагностировать с помощью этих самых «тулбоксов». ….
На этом всё, изучай!