Манитон Docs

Устранение неполадок

Частые проблемы при развертывании и способы их решения

Устранение неполадок (Troubleshooting)

В данном разделе собраны типовые проблемы, возникающие при развертывании инфраструктуры Манитон, и пошаговые инструкции по их устранению.

1. Ошибки ResourceQuota

Симптомы:

Error: ResourceQuota "maniton-resource-quota" is invalid:
spec.hard[deployments.apps]: Invalid value: deployments.apps

Решение: В последних версиях Kubernetes необходимо использовать полный префикс для подсчета ресурсов:

  • deployments.appscount/deployments.apps
  • statefulsets.appscount/statefulsets.apps
  • jobs.batchcount/jobs.batch

2. Ошибки ServiceMonitor / PodMonitor

Симптомы:

resource mapping not found for name: "maniton-pods":
no matches for kind "PodMonitor" in version "monitoring.coreos.com/v1"

Решение: У вас не установлен Prometheus Operator CRD.

  1. Либо установите CRD: kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/main/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml
  2. Либо отключите использование этих ресурсов в base/kustomization.yaml, закомментировав строку - prometheus-operator.yaml.

3. Ошибки выделения Service IP

Симптомы:

Error: Internal error occurred: failed to allocate a serviceIP

Причина: Конфликт или исчерпание пула IP адресов в кластере (часто встречается в локальных средах типа Minikube после пересоздания).

Решение: Полная очистка и пересоздание сетевых ресурсов:

# Удалить проблемные сервисы
kubectl delete svc --all -n maniton
# Перезапустить деплой
bun dev k8s deploy

4. Нарушение политик безопасности (PodSecurity)

Симптомы:

Warning: would violate PodSecurity "restricted:latest":
allowPrivilegeEscalation != false

Решение: Все контейнеры должны явно запрещать повышение привилегий. Убедитесь, что в манифесте указано:

securityContext:
  allowPrivilegeEscalation: false
  capabilities:
    drop: ['ALL']

5. Полная очистка окружения

Если окружение пришло в негодность и частичное исправление не помогает:

# 1. Удаление всего в namespace
kubectl delete all --all -n maniton
# 2. Удаление PVC (осторожно, данные будут потеряны!)
kubectl delete pvc --all -n maniton
# 3. Удаление самого namespace
kubectl delete namespace maniton
# 4. Повторный деплой
bun dev

6. Проблемы с Kafka

Kafka Consumer не потребляет сообщения

Симптомы:

Consumer group is not consuming messages

Решение:

# Проверка consumer group
kubectl exec -it maniton-kafka-1 -- kafka-consumer-groups \
  --bootstrap-server localhost:9092 \
  --group auth-service \
  --describe

# Проверка offset
kubectl exec -it maniton-kafka-1 -- kafka-consumer-groups \
  --bootstrap-server localhost:9092 \
  --group auth-service \
  --topic maniton.identity.events.v1 \
  --describe

Kafka Producer не публикует сообщения

Симптомы:

Failed to produce message: Network is unreachable

Решение:

# Проверка подключения к Kafka
kubectl exec -it auth-service-xxx -- nc -zv kafka 9092

# Проверка топиков
kubectl exec -it maniton-kafka-1 -- kafka-topics \
  --list --bootstrap-server localhost:9092

7. Проблемы с PostgreSQL

Под не может подключиться к базе данных

Симптомы:

Error: connection refused

Решение:

# Проверка статуса PostgreSQL
kubectl get pods -n maniton -l app=postgres

# Проверка логов
kubectl logs -n maniton postgres-0

# Проверка подключения
kubectl exec -it auth-service-xxx -- nc -zv postgres 5432

Транзакции висят

Симптомы:

Transaction is in progress for too long

Решение:

# Проверка активных транзакций
kubectl exec -it postgres-0 -- psql -U postgres -d maniton \
  -c "SELECT * FROM pg_stat_activity WHERE state != 'idle' ORDER BY query_start"

# Убить транзакцию
kubectl exec -it postgres-0 -- psql -U postgres -d maniton \
  -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE pid = ..."

8. Проблемы с Besu

Блокчейн не генерирует блоки

Симптомы:

Block height not increasing

Решение:

# Проверка статуса валидаторов
kubectl exec -it besu-validator-0 -- curl -X POST http://localhost:8545 \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'

# Проверка консенсуса
kubectl exec -it besu-validator-0 -- curl -X POST http://localhost:8545 \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"consensus_status","params":[],"id":1}'

# Перезапуск валидаторов
kubectl rollout restart statefulset besu -n maniton

9. Проблемы с памятью

Pod OOMKilled

Симптомы:

Status: OOMKilled

Решение:

# Проверка использования памяти
kubectl top pods -n maniton

# Увеличение лимитов памяти
kubectl edit deployment auth-service -n maniton

# Проверка memory leaks
kubectl logs auth-service-xxx -n maniton | grep "memory"

10. Проблемы с диском

PVC не может быть создан

Симптомы:

Failed to provision volume: insufficient storage

Решение:

# Проверка доступного места
kubectl get nodes -o custom-columns='NAME,CAPACITY,ALLOCATABLE'

# Очистка неиспользуемых PVC
kubectl get pvc -n maniton
kubectl delete pvc <unused-pvc> -n maniton

# Увеличение размера PVC
kubectl edit pvc postgres-data -n maniton

11. Проблемы с Ingress

502 Bad Gateway

Симптомы:

Error: 502 Bad Gateway

Решение:

# Проверка Ingress Controller
kubectl get pods -n ingress-nginx

# Проверка Service
kubectl get svc -n maniton

# Проверка endpoints
kubectl get endpoints -n maniton

# Проверка логов
kubectl logs -n ingress-nginx -l app=ingress-nginx

404 Not Found

Симптомы:

Error: 404 Not Found

Рesshite:

# Проверка Ingress правил
kubectl get ingress -n maniton

# Проверка Service
kubectl get svc -n maniton

# Проверка пути
kubectl get ingress auth-service-ingress -n maniton -o yaml

12. Проблемы с DNS

DNS не резолвится

Симптомы:

Error: lookup failed

Решение:

# Проверка CoreDNS
kubectl get pods -n kube-system -l k8s-app=kube-dns

# Проверка DNS
kubectl exec -it auth-service-xxx -- nslookup kubernetes.default

# Перезапуск CoreDNS
kubectl rollout restart deployment coredns -n kube-system

Дополнительные ресурсы

On this page