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

Когда я запускаю kubectl -n abc-namespace describe pod my-pod-zl6m6, я получаю много информации о модуле вместе с событиями в конце.

Есть ли способ вывести только события модуля с помощью команд kubectl describe или kubectl get?

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
78
0
70 422
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Почему бы не отображать все события и grep для имени вашего пода:

kubectl get events --all-namespaces  | grep -i $podname

Хотя это дает результаты, я бы предпочел тот, у которого есть переключатель field-selector :)

Rakesh N 21.08.2018 09:26

Конечно, это более чистое решение. О переключателе --field-selector узнал только сейчас.

OneK 21.08.2018 11:24

вы даже не могли использовать grep для имени пода, потому что оно не печатается с помощью команды kubectl get events

InsOp 10.09.2019 11:59
Ответ принят как подходящий

Вы можете использовать команду event для kubectl.

Чтобы отфильтровать конкретный модуль, вы можете использовать селектор полей:

kubectl get event --namespace abc-namespace --field-selector involvedObject.name=my-pod-zl6m6

Чтобы увидеть, какие поля возможны, вы можете использовать kubectl describe для любого события.

У меня это не работает. Получаю: Error: unknown flag: --field-selector

toddcscar 25.03.2019 23:48

В официальной документации field-selector упоминается с 1.12. Я не смог найти никаких подсказок с тех пор, когда это поддерживается (нашел несколько билетов с 2015 года). Поэтому проверьте свою версию kubectl и вывод справки, чтобы увидеть, что возможно с вашей версией kubectl.

mszalbach 26.03.2019 08:26

Ага. у меня более старая версия. :(

toddcscar 26.03.2019 22:43

@toddcscar, вы все еще можете использовать более обновленную версию kubectl со старой версией сервера: например, это будет работать на kubectl v1.14 против v1.11 API

Francesco Gualazzi 06.02.2020 10:01

@toddcscar вы использовали get или describe? Это случилось со мной, потому что я сначала пробовал с describe, и в этой команде нет такой опции

froblesmartin 08.04.2020 09:46

Вы можете описать свой модуль, а затем ввести количество строк после событий. Вы можете добавить часы, если хотите их контролировать.

watch "kubectl describe pod my-pod-zl6m6 | grep -A20 Events"

Благодарность ! я могу получить события HPA с этим.

Haryono Sariputra 31.05.2021 07:21

Если вам нужны только сообщения о событиях в кратком и четком виде, @mszalbachответ самый лучший.

Но если вы хотите, чтобы все События со всеми их элементами отображались полностью, вы можете запустить:

kubectl describe event [POD_NAME] --namespace [POD's_NAMESPACE]
  1. Вы должны понимать структуру данных этого объекта. Вы можете использовать kubectl get events --output json для проверки структуры данных.
$ kubectl get events --output json
{
    "apiVersion": "v1",
    "items": [
        {
            "apiVersion": "v1",
            "count": 259,
            "eventTime": null,
            "firstTimestamp": "2020-04-15T12:00:46Z",
            "involvedObject": {                 <------ **this**
                "apiVersion": "v1",
                "fieldPath": "spec.containers{liveness}",
                "kind": "Pod",               
                "name": "liveness-exec",        <------ **this**
                "namespace": "default",
                "resourceVersion": "725991",
                "uid": "3f497636-e601-48bc-aec8-72b3edec3d95"
            },
            ...
  1. А потом сделайте что-нибудь вроде kubectl get events --field-selector involvedObject.name=[...].

Этот ответ относится к @ mszalbach's.

Спасибо за дополнительный контекст того, как понимать поля --field-selector ... :)

mcouthon 08.02.2021 11:55

Другие вопросы по теме