Как получить все объекты Kubernetes как снимок и поток изменений?Python

Программы на Python
Ответить
Anonymous
 Как получить все объекты Kubernetes как снимок и поток изменений?

Сообщение Anonymous »

Я пытаюсь найти «правильный» способ отслеживания изменений на сервере API Kubernetes, когда мне также необходимо сохранить снимок существующих объектов.
Мне нужно, чтобы мой код знал, когда он получил все объекты изначально, т. е. мне нужно, чтобы он имел полный снимок перед завершением инициализации и сообщением о готовности. И затем мне нужно, чтобы он транслировал изменения по мере их возникновения.
Я могу как получить снимок, так и передать изменения, но я не могу понять, как передавать в потоковом режиме только те изменения, которые произошли после моментального снимка.
Я пытался использовать ресурсVersion, сохраняя числовую максимальную версию ресурса, а затем передавая ее в часы:

Код: Выделить всё

# self._resource_version holds the int maximum resourceVersion from previous requests
kwargs = {} if self._resource_version is None else {"resource_version": self.resource_version}
w = watch.Watch()
async for event in w.stream(api.list_custom_object_for_all_namespaces, self._group, self._version, self._kind, **kwargs):
...

Но это сразу же приводит к ошибке:

Код: Выделить всё

kubernetes_asyncio.client.exceptions.ApiException: (410)
Reason: Expired: too old resource version: 13661954 (14468401)
Обратите внимание, что я извлекаю все типы ресурсов для всех пространств имен.
Как я могу отслеживать изменения, которые происходят после исходного снимка, не передавая также все из исходного снимка?

Подробнее: https://stackoverflow.com/questions/799 ... am-changes
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»