Устранение неполадок
Частые проблемы при развертывании и способы их решения
Устранение неполадок (Troubleshooting)
В данном разделе собраны типовые проблемы, возникающие при развертывании инфраструктуры Манитон, и пошаговые инструкции по их устранению.
1. Ошибки ResourceQuota
Симптомы:
Error: ResourceQuota "maniton-resource-quota" is invalid:
spec.hard[deployments.apps]: Invalid value: deployments.appsРешение: В последних версиях Kubernetes необходимо использовать полный префикс для подсчета ресурсов:
deployments.apps→count/deployments.appsstatefulsets.apps→count/statefulsets.appsjobs.batch→count/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.
- Либо установите CRD:
kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/main/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml - Либо отключите использование этих ресурсов в
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 deploy4. Нарушение политик безопасности (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 dev6. Проблемы с 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 \
--describeKafka 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:90927. Проблемы с 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 maniton9. Проблемы с памятью
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 maniton11. Проблемы с 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-nginx404 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 yaml12. Проблемы с 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