Перевірка налаштувань вузла

Тест відповідності вузла

Тест відповідності вузла — це контейнеризований тестовий фреймворк, який надає системну перевірку та тестування функціональності для вузла. Тест перевіряє, чи вузол відповідає мінімальним вимогам Kubernetes; вузол, який успішно проходить тест, має відповідати вимогам для приєднання до кластера Kubernetes.

Передумови вузла

Для запуску тесту відповідності вузла вузол повинен відповідати тим же передумовам, що й стандартний вузол Kubernetes. Принаймні, на вузлі повинні бути встановлені наступні служби:

  • Сумісні з CRI середовища виконання контейнерів, такі як Docker, containerd та CRI-O
  • kubelet

Запуск тесту відповідності вузла

Для запуску тесту відповідності вузла виконайте наступні кроки:

  1. Визначте значення параметра --kubeconfig для kubelet, наприклад: --kubeconfig=/var/lib/kubelet/config.yaml. Оскільки тестовий фреймворк запускає локальну панель управління для тестування kubelet, використовуйте http://localhost:8080 як URL API-сервера. Є ще деякі інші параметри командного рядка kubelet, які можна використовувати:

    • --cloud-provider: Якщо ви використовуєте --cloud-provider=gce, ви повинні видалити прапорець для запуску тесту.
  2. Запустіть тест відповідності вузла за допомогою команди:

    # $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 для тестування відповідності вузлів для інших архітектур:

АрхітектураОбрази
amd64node-test-amd64
armnode-test-arm
arm64node-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 тест вузла, якщо налаштуєте контейнер та правильно змонтуєте необхідні томи. Але настійно рекомендується виключно використовувати тести відповідності, оскільки для запуску тестів, що не є тестами відповідності, потрібна набагато складніша конфігурація.

Обмеження

  • Тест залишає на вузлі деякі образи Docker, включаючи образ тесту відповідності вузла та образи контейнерів, що використовуються у функціональному тесту.
  • Тест залишає на вузлі мертві контейнери. Ці контейнери створюються під час функціонального тесту.
Змінено November 07, 2024 at 6:31 PM PST: sync upstream (5b9caf30cd)