Как получить доступ к событиям Kubernetes

Kak Polucit Dostup K Sobytiam Kubernetes



События в среде Kubernetes — это богатый источник информации, который позволяет пользователю понять, что происходит внутри его сервисов. Это своего рода объект, который конкретно сообщает, что происходит в контейнере, узле, кластере или поде. Какие бы изменения ни вносились в среду Kubernetes, против них в системе генерируется событие. В этом руководстве мы расскажем вам, что такое событие в системе Kubernetes и как получать события с помощью различных инструментов.

Что такое событие в Kubernetes?

Событие Kubernetes — это объект, который генерируется автоматически при любых изменениях, происходящих с такими ресурсами, как узлы, контейнеры, кластеры или модули в системе Kubernetes. Он сообщает пользователю, что происходит с ресурсами в системе, т. е. уничтожается контейнер, планируется создание модуля, обновляется развертывание и т. д. Эти события помогают поддерживать систему Kubernetes и выполнять отладку в среде Kubernetes. В этом блоге мы узнаем и обсудим, как получить доступ к событиям в среде Kubernetes.

Предпосылки

Прежде чем вы начнете учиться смотреть события в Kubernetes, убедитесь, что ваша система отвечает всем основным требованиям. У вас должно быть следующее:







  • Ubuntu 20.04 или любая другая последняя версия Ubuntu
  • Виртуальная машина, установленная в вашей системе Linux/Unix
  • Кластер миникуба
  • Инструмент командной строки Kubectl

Теперь давайте перейдем к изучению различных методов доступа к событиям Kubernetes.



Запустите среду Minikube

Чтобы использовать среду Kubernetes и получать доступ к созданным в ней событиям, нам нужен доступ к minikube. Поэтому давайте сначала запустим миникуб с помощью следующей команды:



> запустить миникуб





Это начинается с терминала minikube, где вы можете получить доступ к событиям Kubernetes. Теперь мы можем получить доступ или получить события в Kubernetes.

Как следить за событиями в Kubernetes

Есть много разных способов получить доступ или просмотреть события в Kubernetes. Здесь мы опишем эти методы, чтобы помочь вам понять, как они используются для доступа к событиям в Kubernetes. Первый и основной метод — использовать простую команду kubectl get event. Команда «get» в Kubernetes используется для доступа к одному или нескольким ресурсам из системы Kubernetes. За всеми параметрами следует команда «get», чтобы получить события в Kubernetes в соответствии с требованием. Следовательно, мы сначала получаем события с помощью базовой команды, которая приведена ниже:



> kubectl получить события

Вы можете использовать API ресурсов для получения последних событий с помощью этой команды. Он показывает все последние события, произошедшие во всей системе.

Двигаясь вперед, мы покажем вам, как вы можете отобразить результат команды «получить событие» в виде формата JSON. kubectl позволяет распечатать вывод в желаемом формате. Все, что вам нужно сделать, это определить тип вывода. Здесь мы получаем доступ к событию в Kubernetes с помощью команды «get» и отображаем результат в формате JSON с помощью следующей команды:

> kubectl получить события -The json

  Автоматически сгенерированное текстовое описание

Как видно из приведенного вывода, события перечислены из среды Kubernetes в формате JSON. Это довольно просто, и вы можете легко использовать его, просто выполнив предыдущую команду в инструменте командной строки kubectl.

Следующий метод, который мы вам покажем, — это получение отфильтрованных событий из Kubernetes. На данный момент мы узнали, как получить все события в Kubernetes с помощью команды kubectl «get events» и как отобразить вывод в формате JSON. Теперь давайте посмотрим, как мы можем фильтровать события в соответствии с нашими потребностями и видеть только нужные события. Фильтровать события очень просто; как обсуждалось ранее, вам нужно использовать параметр в соответствии с вашими потребностями, а затем команду kubectl «получить события». Мы используем следующую команду для фильтрации событий в соответствии с нашими потребностями и отображения только необходимых событий:

> kubectl получить события – селектор полей тип ! = Нормальный

Когда вы используете эту команду, вы видите только те события, которые не имеют «нормального» типа. Поскольку события с типом «нормальный» в большинстве своем являются просто шумом и не несут никакой значимой информации, их можно пропустить. Следующий данный вывод показывает события, которые не имеют «нормального» типа:

  Автоматически сгенерированное текстовое описание

Как получить события для определенного модуля

Точно так же, как мы можем отфильтровать только необходимые события, мы также можем получить доступ к событиям только для определенного модуля. Для этого давайте сначала перечислим все модули из среды Kubernetes с помощью следующей команды:

> kubectl получить стручки

Эта команда выводит список всех модулей, созданных на данный момент в среде Kubernetes:

Теперь у нас есть список всех стручков. Мы можем получить доступ к событиям для определенного модуля, используя имя модуля. Мы используем команду «описать модуль», за которой следует имя модуля, чтобы получить события, связанные с этим модулем. Пример команды для доступа к событиям для конкретной команды выглядит следующим образом:

> kubeclt описать pod / имя пода

Здесь «имя пода» представляет собой имя пода, для которого вам нужно просмотреть события в Kubernetes.

Вот пример полной команды, которая отображает все события для определенного модуля:

> kubectl описать pod / зависимая-envars-демонстрация

Из данного вывода имя первого модуля — «зависимая-envars-demo», и мы получаем доступ к событиям для этого модуля. Следующий вывод показывает события для модуля depend-envars-demo:

  Автоматически сгенерированное текстовое описание

Заключение

В этой статье мы узнали о событиях в Kubernetes. Мы изучили, что такое событие в среде Kubernetes и как к нему можно получить доступ в системе Kubernetes. Мы узнали, что существует множество бесплатных методов с открытым исходным кодом для доступа к событиям в Kubernetes. Мы также узнали, как реализовать эти методы с помощью команд kubectl.