Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как использовать события Kubernetes для мониторинга и устранения неполадок в кластерах Службы Azure Kubernetes (AKS).
Что такое события Kubernetes?
События являются одним из самых важных источников для мониторинга и устранения неполадок в Kubernetes. Они захватывают и записывают сведения о жизненном цикле различных объектов Kubernetes, таких как поды, узлы, службы и развертывания. Отслеживая события, вы можете получить представление о действиях кластера, определить проблемы и эффективно устранять неполадки.
События Kubernetes не сохраняются в течение жизненного цикла кластера, так как нет механизма хранения. События доступны только через час после создания события. Чтобы хранить события в течение более длительного периода времени, включите аналитику контейнеров.
Объекты событий Kubernetes
В следующей таблице перечислены некоторые ключевые объекты событий Kubernetes:
Имя поля | Описание |
---|---|
type | Тип основан на серьезности события: Предупреждающие события сигнализируют о потенциально проблематичных ситуациях, таких как повторный сбой пода или узел, исчерпывающий ресурсы. Они требуют внимания, но могут не привести к немедленному сбою. Обычные события представляют собой обычные операции, такие как запланированный модуль pod или масштабирование развертывания. Обычно они указывают на работоспособное поведение кластера. |
причина | Причина создания события. Например, FailedScheduling или CrashLoopBackoff. |
message | Читаемое человеком сообщение, описывающее событие. |
namespace | Пространство имен объекта Kubernetes, с которым связано событие. |
firstSeen | Время, когда впервые было замечено событие. |
lastSeen | Метка времени последнего фиксирования события. |
контроллерОтчетности | Имя контроллера, сообщающего о событии. Например: kubernetes.io/kubelet . |
object | Имя объекта Kubernetes, с которым связано событие. |
Дополнительные сведения см. в официальной документации Kubernetes.
Просмотр событий Kubernetes
Перечислите все события в вашем кластере, используя команду kubectl get events
.
Предположим, что кластер уже создан и доступен (в соответствии с требованиями документации), получите учетные данные для доступа к кластеру (обратите внимание, что установлен флаг --overwrite-existing
, чтобы избежать ошибок kubeconfig).
az aks get-credentials --resource-group $RESOURCE_GROUP --name $AKS_CLUSTER --overwrite-existing
Теперь перечислите все события в кластере:
kubectl get events
Результаты:
LAST SEEN TYPE REASON OBJECT MESSAGE
xxm Normal Scheduled pod/my-pod-xxxxx Successfully assigned default/my-pod-xxxxx to aks-nodepoolxx-xxxxxxx-vmss000000
xxm Normal Pulled pod/my-pod-xxxxx Container image "nginx" already present on machine
xxm Normal Created pod/my-pod-xxxxx Created container nginx
xxm Normal Started pod/my-pod-xxxxx Started container nginx
...
Просмотрите события конкретного pod, сначала найдите имя pod, а затем используйте команду kubectl describe pod
.
Вывод списка модулей pod в текущем пространстве имен:
kubectl get pods
Результаты:
NAME READY STATUS RESTARTS AGE
my-pod-xxxxx 1/1 Running 0 xxm
nginx-deployment-xxxxx 1/1 Running 0 xxm
...
Замените <pod-name>
ниже фактическим именем pod. Для автоматизации вот пример для первого pod в списке:
POD_NAME=$(kubectl get pods -o jsonpath="{.items[0].metadata.name}")
kubectl describe pod $POD_NAME
Лучшие практики по диагностированию проблем с событиями
Фильтрация событий для релевантности
В кластере AKS могут работать различные пространства имен и службы. Фильтрация событий на основе типа объекта, пространства имен или причины может помочь сузить результаты до наиболее релевантной информации.
Например, можно использовать следующую команду для фильтрации событий в пространстве имен по умолчанию:
kubectl get events --namespace default
Автоматизация уведомлений о событиях
Чтобы обеспечить своевременное реагирование на критические события в кластере AKS, настройте автоматические уведомления. Azure предлагает интеграцию с службами мониторинга и оповещениями, такими как Azure Monitor. Оповещения можно настроить для активации на основе определенных шаблонов событий. Таким образом, вы сразу же узнаете о важных проблемах, требующих внимания.
Регулярный обзор событий
Регулярно просматривайте события в кластере AKS. Этот упреждающий подход поможет выявить тенденции, поймать потенциальные проблемы в начале и предотвратить эскалацию. Оставаясь на вершине событий, вы можете поддерживать стабильность и производительность приложений.
Дальнейшие шаги
Теперь, когда вы понимаете события Kubernetes, вы можете продолжить мониторинг и отслеживание, включив аналитику контейнеров.
Azure Kubernetes Service