Клиентский эквивалент Kubernetes для Python для kubectl describe pod | grep События

Я создаю собственный сценарий мониторинга для своего кластера Kubernetes на AWS. Среди всех других инструментов меня очень заинтересовал клиент Python. У меня есть словарь капсул и их статус. Теперь я хочу перебрать dict.keys (в основном поды в них), чтобы проверить их события из kubelet. Я ищу следующие данные:

Events:
  Type     Reason       Age                    From                                                  Message
  ----     ------       ----                   ----                                                  -------
  Warning  FailedMount  20m (x25188 over 44d)  kubelet, ip-10-222-145-32.us-west-2.compute.internal  MountVolume.SetUp failed for volume "sag-license-volume" : configmap "my-licence" not found
  Warning  FailedMount  35s (x72078 over 44d)  kubelet, ip-10-222-155-32.us-west-2.compute.internal  (combined from similar events): MountVolume.SetUp failed for volume "my-license-volume" : configmap "my-license" not found

Я просмотрел Интернет и смог найти только примеры, связанные с пространством имен, но не для отдельных модулей.

Пожалуйста, помогите мне получить эти данные через клиент Python. Заранее спасибо !


person jagatjyoti    schedule 06.04.2020    source источник


Ответы (1)


Селектор поля сделал свое дело, с помощью list_namespaced_event эта проблема была решена.

field_selector='involvedObject.name='+'my_pod'
stream = watch.Watch().stream(v1.list_namespaced_event, "my_ns", field_selector=field_selector, timeout_seconds=1)
for event in stream:
    print(event['object'].message)
person jagatjyoti    schedule 08.04.2020