Тест відповідності вузла — це контейнеризований тестовий фреймворк, який надає системну перевірку та тестування функціональності для вузла. Тест перевіряє, чи вузол відповідає мінімальним вимогам Kubernetes; вузол, який успішно проходить тест, має відповідати вимогам для приєднання до кластера Kubernetes.
Для запуску тесту відповідності вузла вузол повинен відповідати тим же передумовам, що й стандартний вузол Kubernetes. Принаймні, на вузлі повинні бути встановлені наступні служби:
Для запуску тесту відповідності вузла виконайте наступні кроки:
Визначте значення параметра --kubeconfig для kubelet, наприклад: --kubeconfig=/var/lib/kubelet/config.yaml. Оскільки тестовий фреймворк запускає локальну панель управління для тестування kubelet, використовуйте http://localhost:8080 як URL API-сервера. Є ще деякі інші параметри командного рядка kubelet, які можна використовувати:
--cloud-provider: Якщо ви використовуєте --cloud-provider=gce, ви повинні видалити прапорець для запуску тесту.Запустіть тест відповідності вузла за допомогою команди:
# $CONFIG_DIR — це шлях до файлу маніфеста под вашого Kubelet.
# $LOG_DIR — це шлях для виведення результатів тесту.
sudo docker run -it --rm --privileged --net=host \
-v /:/rootfs -v $CONFIG_DIR:$CONFIG_DIR -v $LOG_DIR:/var/result \
registry.k8s.io/node-test:0.2
Kubernetes також надає образи Docker для тестування відповідності вузлів для інших архітектур:
| Архітектура | Образи |
|---|---|
| amd64 | node-test-amd64 |
| arm | node-test-arm |
| arm64 | node-test-arm64 |
Щоб запустити конкретні тести, перезапишіть змінну середовища FOCUS регулярним виразом тестів, які ви хочете запустити.
sudo docker run -it --rm --privileged --net=host \
-v /:/rootfs:ro -v $CONFIG_DIR:$CONFIG_DIR -v $LOG_DIR:/var/result \
-e FOCUS=MirrorPod \ # Запустити тільки тест MirrorPod
registry.k8s.io/node-test:0.2
Щоб пропустити певні тести, перезапишіть змінну середовища SKIP регулярним виразом тестів, які ви хочете пропустити.
sudo docker run -it --rm --privileged --net=host \
-v /:/rootfs:ro -v $CONFIG_DIR:$CONFIG_DIR -v $LOG_DIR:/var/result \
-e SKIP=MirrorPod \
# Запустити всі тести відповідності, але пропустити тест MirrorPod
registry.k8s.io/node-test:0.2
Тест відповідності вузла — це контейнеризована версія e2e тесту вузла. Стандартно запускаються всі тести відповідності.
Теоретично ви можете запустити будь-який e2e тест вузла, якщо налаштуєте контейнер та правильно змонтуєте необхідні томи. Але наполегливо рекомендується використовувати виключно тести відповідності, оскільки для запуску тестів, що не є тестами відповідності, потрібна набагато складніша конфігурація.