Часто встречающиеся проблемы и пути их устранения#
Для решения различных проблем установки проводите следующие проверки:
Работа контейнера без простоев даже в случае сбоя#
В 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 или текущий пользователь не является частью этой группы.