Что такое Inspektor Gadget и зачем это нужно
Inspektor Gadget — это фреймворм для сбора данных и инспекции систем на кластерах Kubernetes и хостах Linux, использующий технологию eBPF. Главная инновация версии 0.31.0 заключается в том, что eBPF-программы теперь инкапсулируются в OCI-образы (так называемые «Gadgets»). Это позволяет распространять их через стандартные реестры контейнеров, делая процесс развертывания инструментов наблюдения таким же простым, как запуск обычного контейнера.
Ключевые возможности платформы
Инструмент решает проблему разрыва между низкоуровневыми данными ядра и высокоуровневыми концепциями Kubernetes. Ниже приведены основные функции, доступные пользователям:
| Функция | Описание |
|---|---|
| OCI-пакетирование | Сборка eBPF-программ в образы, совместимые с OCI, для легкого распространения. |
| Автоматическое обогащение (Enrichment) | Автоматическое сопоставление данных ядра (PID, mount namespaces) с ресурсами K8s (поды, контейнеры, DNS). |
| Поддержка WebAssembly | Возможность написания модулей постобработки данных на любом языке, поддерживающем WASM. |
| Безопасность | Механизмы ограничения и блокировки запуска только разрешенных Gadgets. |
| Режимы работы | CLI, клиент-сервер, API, встраивание через Go-библиотеку. |
Требования к ядру Linux
Для корректной работы Gadgets, разработанных в рамках проекта Inspektor Gadget, требуется ядро Linux версии 5.10 или новее с включенной поддержкой BTF (BPF Type Format). Это критически важно для обеспечения переносимости eBPF-кода между разными версиями ядра.
Как начать работу
Установка возможна несколькими способами в зависимости от среды:
- Kubernetes: Рекомендуется использовать плагин
krew. Установка выполняется командамиkubectl krew install gadgetиkubectl gadget deploy. Запуск примера:kubectl gadget run trace_open:latest. - Linux (локально): Можно скачать бинарный файл
igи запустить его напрямую. Также поддерживается запуск в привилегированном контейнере Docker. - Удаленное управление: С MacOS или Windows можно управлять экземпляром
igна Linux-хосте через утилитуgadgetctl, подключаясь к демону по TCP.
Лицензирование и сообщество
Проект открыт для вклада сообщества. Пользовательские компоненты распространяются под лицензией Apache License, Version 2.0, а шаблоны кода BPF — под GPLv2 с Linux-syscall-note. Активное обсуждение и вопросы можно задавать в канале #inspektor-gadget в Slack-сообществе Kubernetes.
Источник: Github ↗
