VK Private Cloud logo
Помощь
Обновлена 17 июля 2026 г. в 15:55

Диагностика ошибок при создании кластера Kubernetes

Подсистема
Cloud Containers
Компонент
Magnum
Kubernetes

Если при создании кластера Kubernetes возникают ошибки, например кластер зависает, и удалить его невозможно, проведите диагностику и исправьте возникающие ошибки.

В ходе диагностики необходимо определить, создаются ли ВМ под кластер. Для этого:

  1. Проверьте, что вызывает ошибки на этапах создания кластера.
  2. Создайте инстанс master-узла и запустите на нем ОС.
  3. Сбросьте статус кластера на ERROR.

Поиск ошибок на этапе создания кластера

Чтобы определить, какие ошибки происходят на этапах создания кластера Kubernetes:

  1. Создайте кластер Kubernetes нужной версии.

    Подробнее — в документе Руководство пользователя VK Private Cloud в разделе КонтейнерыСоздание кластера Kubernetes.

    Если на этом шаге в веб-интерфейсе Платформы возникает ошибка, используйте консоль разработчика в браузере (клавиша F12) для ее диагностики.

  2. Создайте объекты кластеров Heat и Magnum.

  3. Создайте объекты OpenStack для будущего кластера: сети, порты, балансировщики нагрузки, диски, инстанс.

    Если на шаге 2 и 3 возникли ошибки, используйте Heat для их диагностики.

Поиск ошибок на этапе создания инстанса master-узла и запуска ОС

  1. Создайте инстанс master-узла и запустите на нем ОС.

    На этом этапе необходимо просмотреть логи внутри самого инстанса, для этого зайдите на инстанс по SSH или через веб- или virsh-консоль. Подробнее — в документе Руководство администратора VK Private Cloud в разделе Эксплуатация и администрированиеАдминистрирование ПлатформыПодготовка образа диска ВМ для загрузки в Платформу.

  2. Просмотрите файл /var/log/cloud-init-output.log: первые ошибки вы можете отследить в событиях от пакета cloud-init, который запускается внутри инстанса.

    После общей настройки ВМ cloud-init скачивает двоичный файл magnum-agent. Если этот файл не найден, например указан неправильный путь, процесс создания кластера дальше не пойдет.

  3. Просмотрите лог с ошибками на этапе, когда файл magnum-agent закачивает контейнер с magnum-scripts:

    # journalctl -l --no-pager -u magnum-agent.service

    Если по логу видно, что образ Docker не найден, процесс дальше не пойдет.

  4. Просмотрите логи на этапе, когда скрипты magnum-scripts запускают плейбуки ansible для настройки master-узла:

    # journalctl -l --no-pager -u magnum-scripts-ansible.service

    После запуска контейнера вы можете найти плейбуки на хосте в каталоге /etc/kubernetes/ansible/.

    Причины ошибок плейбуков будут видны из логов демона. Основываясь на логах, исправьте ошибки в плейбуках в каталоге на хосте и перезапустите сервис.

  5. Просмотрите статусы кластера Kubernetes, когда скрипты magnum-scripts дойдут до следующей задачи:

    TASK [common : Wait for Kubernetes API port]

    Для этого:

    1. Получите список всех подов во всех неймспейсах:

      # kubectl get pods -A
    2. Просмотрите статусы подов. В зависимости от статусов просмотрите расширенную информацию о поде:

      # kubectl describe pod  monitoring-grafana-5f4fdcccd4-mpqps --namespace kube-system

      На данном этапе могут проявиться ошибки отсутствующего образа в Docker Registry или неподходящего helm-чарта.

      Также в OpenStack может начать создаваться slave-узел, и некоторые поды будут ждать его для установки. Посмотрите узлы кластера:

      # kubectl get node
    3. Просмотрите ошибки объектов PersistentVolume (PV), создающихся через Cinder, со стороны Kubernetes:

      # kubectl get pvc --namespace kube-system# kubectl describe pvc grafana-pvc --namespace kube-system# kubectl get storageclasses.storage.k8s.io

Сброс статуса кластера на ERROR

Чтобы удалить кластер Kubernetes, зависший в процессе создания:

  1. Перейдите на управляющий узел.

  2. Узнайте UUID кластера:

    # magnum cluster-list
  3. Запустите скрипт для сброса статуса кластера на ERROR:

    # ./reset_magnum_cluster.sh -e <КЛАСТЕР>

    Здесь <КЛАСТЕР> — ID кластера, полученный на предыдущем шаге.

  4. Запустите повторно процесс удаления кластера.

    Подробнее — в статье Как сбросить статус кластера Kubernetes.