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

Для решения различных проблем установки проводите следующие проверки:

Работа контейнера без простоев даже в случае сбоя#

В DropApp проблема простоя в случае сбоя производится при помощи модуля deployments.

# Стандартные поля для всех ресурсов DropApp: apiVersion, kind, metadata, spec
apiVersion: apps/v1
kind: Deployment
metadata:
name: dropapp-backend-deployment
labels:
app: dropapp-backend

# Определите настройки для развертывания.
spec:
replicas: 3

# `selector` определяет, какие модули будут управляться этим развертыванием.
# настройка репликации модуля, соответствующего метке `app: dropapp`.
selector:
matchLabels:
app: dropapp
role: backend

# `template` определяет модуль, которым будет управлять это развертывание.
template:
metadata:
# Убедитесь, что метки модуля соответствуют меткам развертывания. 
labels:
app: dropapp
role: backend
# Pod имеет свою собственную спецификацию внутри спецификации Deployment.
# Определите какие контейнеры должен запускать pod.
spec:
containers:
- name: dropapp-backend
image: dropapp-backend:1.14.2
ports:
- containerPort: 80

Deployments управляет набором pods с меткой app: dropapp. Для этого модуль гарантирует наличие в любой момент времени трех реплик этого pod. Также можно поставить метки для pod внутри самих deployments.

Если применить этот манифест в DropApp, будет создан deployments. Однако при этом не создаются необходимые pods, поэтому кратковременно не будет работать ни одна реплика, потому что кластер не соответствует задекларированному состоянию, и предпримет действия, чтобы это исправить — запустит новую реплику. После этого DropApp заново оценит состояние кластера и создаст новую реплику. Действия повторятся, пока система не будет соответствовать задекларированному состоянию.

ebtables или аналогичный исполняемый файл, не найден во время установки#

Если во время запуска появляются следующие предупреждения kubeadm init:

[preflight] WARNING: ebtables not found in system path
[preflight] WARNING: ethtool not found in system path

Это результат отсутствия ebtables, ethtool или аналогичного исполняемого файла на узле. Эти файлы можно установить с помощью следующих команд:

yum install ebtables ethtool.

Устранение неполадок: gathering logs#

При устранении неполадок можно использовать логирование systemd (с помощью модуля ignition), которое выполняется при помощи следующей команды:

journalctl --identifier=ignition --all

ignition - это утилита для управления дисками: разбиение дисков на разделы, форматирование разделов, запись файлов (обычных файлов, системных блоков и т.д.) и настройку пользователей. При первой загрузке ignition считывает свою конфигурацию из доверенного источника (удаленный URL, служба сетевых метаданных, мост гипервизора и т.д.) и применяет конфигурацию.

Если результат не получен, может помочь запуск от имени root, когда журнал не принадлежит группе systemd-journal или текущий пользователь не является частью этой группы.