Существует ли атрибут UUID (или что-то подобное), который либо автоматически назначается всем модулям K8S, либо может быть глобально настроен для кластера?
У меня есть приложение, которое действует как база данных (БД)) интерфейс в моем кластере, где некоторые (но не все модули) представляют каталог цифровых «ресурсов», которые они делают доступными для кластера.Ожидается, что модули будут «очищать» свои записи, которые они создали в БД, перед тем как завершить работу, но в некоторых случаях они могут аварийно завершить работу, не позволяя выполнить код завершения работы / очистки.
Даже если я использую ловушку предварительного останова , модуль уже вышел из строя, и я больше не могу получить доступ к данным внутри него, чтобы узнать, какие ресурсы он сообщил приложению БД.
Я подумывал о том, чтобы при получении входящего соединения приложение БД запрашивало у удаленного модуля IP, какой-нибудь уникальный идентификатор / UUID и т. Д .;и сопоставьте эти данные с информацией БД, предоставленной модулем.Затем я могу заставить приложение БД периодически опрашивать кластер с помощью API-интерфейса REST K8S, чтобы определить, существует ли еще модуль с соответствующим UUID, и очистить отдельные записи, если связанный с ними модуль UUID больше не присутствует.
Вопрос (ы):
- Существует ли способ автоматического назначения такого UUID всем модулям в кластере на глобальном уровне (т. Е. Без необходимости изменять файлы YAML длявсе мои модули, развертывания и т. д.).
- Существует ли какой-либо другой механизм / функция, предоставляемый K8S, который обеспечил бы лучшее средство для посмертной очистки ресурсов модуля, которые живут в отдельном / внешнем модуле?