TOP-10 ошибок в Kubernetes и как их исправить 🤔
Kubernetes - это мощно, но иногда он ведет себя так, будто решил с нами пошутить. Давай разберем 10 частых ошибок и научимся их быстро чинить!
1. «Pod в статусе Pending»
Проблема: Под не запускается, завис в Pending.
Решение:
bash
💡 Ищи Events - чаще всего не хватает ресурсов (CPU/Memory) или нет подходящей ноды.
⠀
2. «ImagePullBackOff или ErrImagePull»
Проблема: Не удалось скачать образ.
Решение:
- Проверь имя образа в манифесте.
- Если используется приватный репозиторий, добавь imagePullSecrets
⠀
3. «CrashLoopBackOff»
Проблема: Под постоянно перезапускается.
Решение:
bash
💡 Скорее всего, падает приложение внутри контейнера - проверь логи!
⠀
4. «Сервис не отвечает»
Проблема: Сервис есть, но запросы не проходят.
Решение:
- Проверь selector в сервисе и labels у пода.
- Убедись, что порты совпадают (targetPort ≠ port?).
⠀
5. «Нехватка ресурсов (OOMKilled)»
Проблема: Контейнер убит из-за нехватки памяти.
Решение:
Добавь resources.limitв манифест:
yaml
⠀
6. «PersistentVolume не привязан»
Проблема: PVC (PersistentVolumeClaim) в статусе Pending**.**
Решение:
- Проверь, есть ли свободные PV (kubectl get pv).
- Если используешь storageClass, убедись, что он существует.
⠀
7. «Нода NotReady»
Проблема: Нода недоступна.
Решение:
bash
💡 Частая причина - закончилось место (DiskPressure) или упал kubelet.
⠀
8. «ConfigMap/Secret не обновился»
Проблема: Изменения в ConfigMap/Secret не применяются.
Решение:
- Подмонтируй как volume и используй reload (например, через Sidecar).
- Или перезапусти поды (kubectl rollout restart deploy <имя_деплоя>).
⠀
9. «Неверные права (RBAC)»
Проблема: Forbidden при вызовах API.
Решение:
Проверь Role и RoleBinding:
bash
⠀
10. «Helm завис при удалении»
Проблема: helm uninstall не завершается.
Решение:
bash
💡 Или удали вручную через kubectl delete.
⠀
❗ Хочешь меньше ошибаться? Используй:
- kubectl get events -A - смотри события в кластере.
- kubectl explain - встроенная документация!
⠀
🙌 Kubernetes - это сложно, но ты справишься :)