TGViewer
sysadmin.su sysadmin.su @sysadminsu · 329 subscribers
Post #2538 232

Forwarded from ITTales :(){ :|:& };:

Вот вам небольшая пятничная история. Что делать когда Talos Linux сдох, и вот непонятно из-за чего.
Kubernetes API недоступен (не запускается CRI), у вас нет ничего, кроме доступа к Talos API.

Казалось бы всё. SSH нет, доступа на запись тоже нет. Только ребут или как предлагают сами разработчики Talos Linux:
<irony>нода сдохла, выкинь и заведи новую</irony>

Но не всё так просто, а как же отдебажить что там произошло. Собрать информацию, подготовить баг-репорт, отослать разработчикам containerd и Kubernetes.

Я не хочу чтобы такая ситуация повторялась в принципе когда-либо. Встаёт вопрос: как же нам войти в запущенную дефектную систему.

Здесь стоит немного уточнить что в логике Talos заложено запуск двух containerd.

Один - системный, он запускает контейнеры с талосовые демонами и экстеншенами, а так же etcd и kubelet.
Второй - прикладной, он запускает всё что в кубе, в том числе статик поды.

Сделано это намерено, чтобы кубовый ворклоад не мог заафектить систему. Т.к. чаще всего проблемы возникают именно со вторым ввиду активного пуллинга имаджей, а первый containerd остаётся живым. Но как же запустить контейнер для дебага без работающего Kubernetes API? Ответ - никак. Придётся хитрить.

Talos позволяет указать кастомные image для запуска kubelet и etcd. Этим мы и воспользуемся.

Для начала соберём кастомный образ kublet. Добаляем busybox в имадж и слегка модифицируем код:
https://github.com/kvaps/kubernetes/commit/3e45ecd4a2718bc50f2d951c344b4c439f79e3ae

Собираем Dockerfile, пушим его куда-то и заменяем путь до образа в конфиге Talos.

Вуаля, у нас появляется доступ к системе:

echo 'uname -r' | nc 192.168.1.21 12345
6.12.18-talos


kubelet работает с полными административными правами, поэтому его привилегий должно быть достаточно для дебага всего что необходимо.
GitHub Add busybox shell for Talos · kvaps/kubernetes@3e45ecd Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
  • 👍 1
More from @sysadminsu
  1. Sep 24, 2026Speedtest Tracker — свой мониторинг качества интернет-канала Когда интернет периодически т…
  2. Sep 15, 2026💿 Cracking the Linux Boot Code - занятное чтиво от инженеров Oracle о диагностике запуска…
  3. Sep 4, 2026Post #2599
  4. Aug 5, 2026Python и DevOps: Ключ к автоматизации Linux (2022) Это практическое руководство научит вас…
  5. Aug 4, 2026Kubesplaining — CLI-инструмент для анализа безопасности Kubernetes, написанный на Go. Он п…
  6. Jul 11, 2026Проектирование POSTGRES: как задумывалась популярная СУБД Чтиво на выходные. 8 июля у Post…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →