Цей вичерпний посібник надає покрокові інструкції для усунення неполадок у Kubernetes-подах в межах конкретного простору імен. Він охоплює все: від перевірки статусу пода і аналізу логів до налагодження конфігурацій та вирішення мережевих проблем, забезпечуючи ефективну діагностику та усунення проблем, пов'язаних з подами. Незалежно від того, чи потрібно вам вирішити проблему з CrashLoopBackOff
, обмеженнями ресурсів або помилками підключення, цей посібник надає команди та техніки для ізоляції проблем у конкретному просторі імен і підтримки здорового середовища Kubernetes.
При усуненні неполадок у Kubernetes-подах у конкретному просторі імен використовуйте опцію -n
у ваших командах. Ось детальний посібник, орієнтований на проблеми, що стосуються певного простору імен:
- Перевірте статус пода в просторі імен
Перевірте статус подів у просторі імен:
kubectl get pods -n
Шукайте поди в таких станах, як Pending
, Running
, CrashLoopBackOff
або Completed
.
- Перегляньте події пода в просторі імен
Перегляньте детальні події для конкретного пода:
kubectl describe pod -n
Ознайомтесь з розділом Events для повідомлень про помилки або попередження.
- Перевірте логи пода
Отримайте логи для проблем, пов'язаних з додатком:
kubectl logs -n
- Для подів з кількома контейнерами:
kubectl logs -c -n
Переглядайте логі в реальному часі:
kubectl logs -f -n
- Перевірте YAML-конфігурацію пода в просторі імен
Отримайте повну YAML-конфігурацію для перегляду налаштувань:
kubectl get pod -n -o yaml
Перевірте можливі проблеми в конфігурації.
- Перевірте ресурси вузла
Перевірте, чи має вузол достатньо ресурсів:
kubectl describe node
Переконайтесь, що вузол може задовольнити запити на ресурси пода.
- Розслідуйте мережеві проблеми
Перевірте підключення між подами у просторі імен:
Пінгуйте інший под:
kubectl exec -it -n -- ping
Перевірте підключення до сервісу:
kubectl exec -it -n -- curl :
- Аналізуйте
CrashLoopBackOff
у просторі імен
Перевірте логи для контейнерів, що зупиняються:
kubectl logs --previous -n
Перегляньте причину повторних зупинок.
- Перевірте образ контейнера
Перевірте доступність образа контейнера:
kubectl describe pod -n
Шукайте помилки, такі як ImagePullBackOff
або ErrImagePull
.
- Використовуйте інтерактивну оболонку для налагодження
Отримайте доступ до пода для налагодження в реальному часі:
kubectl exec -it -n -- /bin/bash
Перевірте стан контейнера, логи та конфігурації.
- Перевірте пов'язані конфігурації в просторі імен
Перевірте ConfigMaps:
kubectl describe configmap -n
Перевірте Secrets:
kubectl describe secret -n
Перевірте Deployment або StatefulSet:
kubectl describe deployment -n
- Перевірте ліміти ресурсів
Перевірте запити та ліміти ресурсів:
kubectl describe pod -n
- За потреби відредагуйте в YAML-файлі.
- Моніторинг подій у просторі імен
Перегляньте всі події в просторі імен:
kubectl get events -n
- Використовуйте інструменти для налагодження
Запустіть контейнер для налагодження:
kubectl debug pod/ -n
Перенаправте порт для доступу до сервісу:
kubectl port-forward pod/ : -n
- Аналізуйте логи та метрики
Використовуйте централізовані рішення для зберігання логів та моніторингу (наприклад, EFK, Loki, Prometheus/Grafana) для перевірки метрик, специфічних для простору імен.
Перевірте контекст простору імен
Переконайтесь, що ви працюєте в правильному просторі імен:
kubectl config set-context --current --namespace=
Це встановлює простір імен для всіх наступних команд.
Усунення неполадок у Kubernetes-подах в конкретному просторі імен стає зручним за допомогою структурованого підходу. Аналізуючи статус пода, перевіряючи логи та перевіряючи конфігурації, більшість проблем можна швидко виявити та усунути. Завдяки регулярному налагодженню та моніторингу можна забезпечити безперебійну роботу додатків і підтримувати стабільне середовище Kubernetes.
Перекладено з: Comprehensive Guide to Kubernetes Pod Troubleshooting in a Specific Namespace