У меня есть модуль Kubernetes (назовем его POD-A ), и я хочу, чтобы он использовал определенный файл конфигурации для выполнения некоторых действий с использованием API k8s. Конфигурационный файл будет YAML или JSON, который будет проанализирован приложением внутри модуля.
Файл конфигурации размещается на сервере приложений в облаке, и его последняя версия может быть получена на основе триггера. Файл конфигурации содержит сведения о конфигурации всех развертываний в кластере k8s и будет использоваться для обновления развертываний с использованием API k8s в POD-A .
Теперь я думаю сохранить этот файл конфигурации в config-карте, и каждый раз, когда новый конфигурационный файл извлекается, новая карта конфигурации создается модулем, использующим API k8s.
Что я хочу сделать, это обновить предыдущую конфигурационную карту с помощью определенного флага (ключ и значение), который в основном поможет приложению узнать, какая версия развертывания является текущей. Допустим, у меня есть работающий кластер k8s с несколькими модулями, в нем есть карта конфигурации, которая содержит все подробности конфигурации для этих модулей (версия образа, пространство имен и т. Д.) И флаг, уведомляющий, что это текущее развертывание и приложение внутри POD-A узнает об этом, загрузив config-map. Теперь, когда новый файл конфигурации извлекается, создается новая карта конфигурации, и флаг для текущего развертывания устанавливается в значение false для предыдущей карты конфигурации и устанавливается в значение true для последней созданной карты конфигурации. Затем эта карта конфигурации используется для обновления всех модулей в кластере.
Я знаю, что есть много деталей, но мне пришлось объяснить их, чтобы задать следующие вопросы:
1) Можно ли использовать configmaps
для этой цели?
2) Могу ли я обновить configmaps
или мне нужно их полностью переписать? Я думаю о записи файла в configmap
, потому что это было бы намного проще.
3) Я знаю, configmaps
хранятся в etcd, но сохраняются ли они на диске или хранятся в памяти?
4) Допустим, POD-A выключится, это повлияет на configmaps
? Они как-то связаны с жизненным циклом стручка?
5) Если сам кластер k8s выходит из строя, что происходит с `configmaps? Поскольку они находятся в etcd и если они сохранятся, то будут ли они снова доступны?
Примечание: также существует ограничение на размер конфигурационных карт , поэтому я должен иметь это в виду. Хотя я предполагаю, что 1 МБ достаточно для сохранения файла конфигурации, поскольку обычно он занимает несколько байтов.