Сегодня Kubernetes доминирует на рынке как основное средство для оркестрации контейнеров, что делает тестирование этих систем чрезвычайно важным. Для большинства стандартных тестов достаточно использовать команду kubectl, однако для более глубокого тестирования сертификации версий Kubernetes идеально подходит инструмент Sonobuoy. 

Sonobuoy — это инструмент для диагностики и тестирования кластеров Kubernetes, который используется для проверки соответствия кластера стандартам и спецификациям CNCF (Cloud Native Computing Foundation) и для обнаружения потенциальных проблем в работе кластера.

Sonobuoy запускает серию тестов на кластере Kubernetes, включая тесты из набора End-to-End (E2E) тестов Kubernetes, чтобы проверить, правильно ли настроен и работает ли кластер. Эти тесты включают проверки на соответствие стандартам CNCF, а также могут включать дополнительные плагины для расширенного тестирования.

Sonobuoy предоставляет документацию, где подробно описано как работать с инструментом, я лишь расскажу вкратце про основные шаги: про установку, запуск, удалению и про получение отчета по результатам тестов.

Кому будет полезна статья?

Статья будет полезна тем, кто занимается/интересуется тестированием кластеров Kubernetes, слышал об инструменте Sonobuoy, но никогда не запускал. Это статья - быстрый старт, который поможет установить Sonobuoy и запустить первые тесты.

Предыстория

Я работаю тестировщиком в команде, которая занимается разработкой продукта Managed Kubernetes. Продукт позволяет разворачивать и работать с отказоустойчивыми и автомасштабируемыми кластерами Kubernetes. Для работы с кластером мы предоставляем клиентам Managed Kubernetes API (не путать с Kubernetes API), тестированием которого я занимаюсь. Конечно, на одном тестировании API далеко не уедешь и необходимо тестировать кластер "изнутри" и такие тесты, к слову, я тоже пишу, но обойти стороной такой мощный инструмент как Sonobuoy я не мог.

Установка

Скачиваем с github последний релиз, либо воспользуемся командами:

# Windows

wget https://github.com/vmware-tanzu/sonobuoy/releases/download/v0.56.0/sonobuoy_0.56.0_windows_amd64.tar.gz tar.exe -xvf sonobuoy_0.56.0_windows_amd64.tar.gz

# Linux

wget https://github.com/vmware-tanzu/sonobuoy/releases/download/v0.56.0/sonobuoy_0.56.0_linux_amd64.tar.gz tar -xvf sonobuoy_0.56.0_linux_amd64.tar.gz

Запуск тестов

Для того, чтобы проверить, что все корректно установилось, запускаем

sonobuoy run --wait --mode quick

Эта команда запустит быстрый тест, если все настроено верно, вывод должен быть примерно таким:

11:44:40          PLUGIN        NODE    STATUS   RESULT   PROGRESS
11:44:40             e2e      global   running                    
11:44:40    systemd-logs      node-1   running                    
11:44:40    systemd-logs      node-2   running                    
11:44:40 
11:44:40 Sonobuoy is still running. Runs can take 60 minutes or more depending on cluster and plugin configuration.
11:45:00             e2e      global   complete   passed   1/1 (0 failures)
11:45:00    systemd-logs      node-1   complete   passed                   
11:45:00    systemd-logs      node-2   complete   passed                   
11:45:00 Sonobuoy plugins have completed. Preparing results for download.
11:45:20 Sonobuoy has completed. Use `sonobuoy retrieve` to get results.

Ключ --wait означает, что мы ожидаем завершения тестов, при этом в терминале будет выводится прогресс выполнения тестов. Если ключ не указывать, то за прогрессом можно следить командой

sonobuoy status

Чтобы посмотреть логи, пользуемся командой

sonobuoy logs

Ключ --mode quick означает, что мы запускаем быстрые тесты. Доступные моды для запуска можно получить командой

sonobuoy modes

Для запуска всех тестов можно воспользоваться командой

sonobuoy run

Для запуска определенного тест-кейса можно воспользоваться ключом --e2e-focus, а для пропуска определенных тест-кейсов --e2e-skip, пример

sonobuoy run run --e2e-focus AdmissionWebHook

Получение отчета

Отчет можно получить, выполнив команду

sonobuoy retrieve

Удаление

После завершения тестов удаляем инструмент из кластера командой

sonobuoy delete

Итог

Как уже писал выше, это статья для быстрого старта, как-нибудь я наберусь сил (и скила тоже:) ) и напишу более подробную статью про Sonobuoy.

К слову, я запускаю тесты Sonobuoy вместе со своими тестами, я написал небольшую обертку-клиент на Python, с помощью этого клиента я запускаю отдельные тест-кейсы и обрабатываю отчет для дальнейшей загрузки в аллюр. Может тоже об этом напишу когда-нибудь.

Комментарии (0)