Часто встречающиеся проблемы и пути их устранения#

Общие рекомендации по поиску неисправностей#

Для устранения неполадок при неудачной установке DropApp Plus соберите журналы с bootstrap и master nodes, получите отладочную информацию из программы установки.

Предварительные условия#

  • Установка OKD не удалась до завершения процесса начальной загрузки. Bootstrap node работает и доступна через SSH.

  • Процесс ssh-agent активен на node, и предоставлен один и тот же ключ SSH как процессу ssh-agent, так и программе установки.

  • Имеются полные доменные имена bootstrap и master nodes.

Операция#

  1. Сгенерируйте команды, необходимые для получения журналов установки с nodes bootstrap и control plane.

  2. Перейдите в каталог, содержащий программу установки, и выполните следующую команду:

    ./dropappplus-install gather bootstrap --dir <installation_directory> # Для installation_directory укажите тот же каталог, который  указан при запуске ./dropappplus-install create cluster. В этом каталоге содержатся файлы определений OKD, созданные программой установки.
    --bootstrap <bootstrap_address> # <bootstrap_address>— это полное доменное имя или IP-адрес bootstrap nodes кластера.
    --master <master_1_address> # Для каждого уровня управления или master nodes в кластере замените <master_*_address>его полным доменным именем или IP-адресом.
    --master <master_2_address>
    --master <master_3_address>
    

    Пример вывода:

    INFO Pulling debug logs from the bootstrap machine
    INFO Bootstrap gather logs captured here "<installation_directory>/log-bundle-<timestamp>.tar.gz"
    

Выключенный operator-lifecycle-manager#

На некоторых кластерах в процессе обновления был выключен operator-lifecycle-manager. Если на кластере были установлены операторы из его каталога, то обновление блокируется, так как не может найти нужный канал для установленных операторов.

Проявление проблемы: oc describe clusterversion содержит сообщение:

Cluster operator operator-lifecycle-manager should not be upgraded between minor versions: ClusterServiceVersions blocking cluster upgrade: openshift-operators/servicemeshoperator.v2.0.6.2 is incompatible with OpenShift minor versions greater than 4.8`

Решение: включите operator-lifecycle-manager

После выполнения действия обновление завершится успешно.

Проблема с kubelet на worker nodes#

На некоторых кластерах в процессе обновления machine-config worker nodes кластера не обновлялись - не стартовал kubelet. Это может быть связано со специфическими настройками SELinux, которые были сделаны в процессе эксплуатации кластера.

Проявление проблемы: в логах kubelet фигурирует ошибка:

Mar 13 08:09:19 tvlds-ter014214 systemd[12278]: kubelet.service: Failed to execute command: Permission denied
Mar 13 08:09:19 tvlds-ter014214 systemd[12278]: kubelet.service: Failed at step EXEC spawning /usr/bin/hyperkube: Permission denied
Mar 13 08:09:19 tvlds-ter014214 systemd[1]: kubelet.service: Main process exited, code=exited, status=203/EXEC
Mar 13 08:09:19 tvlds-ter014214 systemd[1]: kubelet.service: Failed with result 'exit-code'.
Mar 13 08:09:19 tvlds-ter014214 systemd[1]: Failed to start Kubernetes Kubelet.

Решение: в текущей сессии отключите SELinux, и перезапустите kubelet, и снова включите SELinux, на всех worker nodes с выявленной проблемой выполните:

sudo setenforce 0 && sudo systemctl restart kubelet && sudo setenforce 1

После выполнения действия обновление завершится успешно.