Как я могу компактно хранить общую конфигурацию с Kubernetes Kustomize? - PullRequest
0 голосов
/ 24 апреля 2020

Во-первых, я не уверен, что этот вопрос задан c достаточно для переполнения стека. Мы рады удалить или исправить, если у кого-то есть какие-либо предложения.

Мы используем Kubernetes для организации нашего кода на стороне сервера, и недавно начали использовать Kustomize для модульного кода.

Подходит большинство наших внутренних сервисов хорошо в эту модель данных. Для нашей основной транзакционной системы у нас есть базовая конфигурация, которую мы накладываем на твики для нашей разработки, подготовки и различных вариантов производства. Это работает очень хорошо и помогло нам навести порядок.

Мы также используем TensorFlow Serving для развертывания моделей машинного обучения, каждая из которых обучена и на данный момент развернута для каждого из наших многочисленных клиентов. Единственный способ отличия этих конфигураций - это аннотации имени и метаданных (например, у нас может быть одна с именем classifier-acme, другая - с именем classifier-bigcorp) и набор весов, которые извлекаются из нашего хранилища BLOB-объектов (например, одна будет тянуть с storage://models/acme/classifier, а другой - с storage://models/bigcorp/classifier). Мы также назначаем разные пространства имен для разделения между разработкой, производством и т. Д. c.

Исходя из того, что я понимаю в системе Kustomize, нам потребуется отдельная база и набор наложений для каждого из наших клиентов. если бы мы хотели закодировать все состояние нашего текущего кластера в файлах Kustomize. Это похоже на огромное количество каталогов, так как у нас много клиентов. Если у нас есть 100 клиентов и пять различных сред побега, то это 500 каталогов с файлом kustomize.yml.

Есть ли инструмент или метод для повторения этого с помощью Kustomize? Или есть другой инструмент, который поможет нам создавать конфигурации Kubernetes более систематизированным и компактным образом c?

1 Ответ

0 голосов
/ 24 апреля 2020

Вы можете иметь более сложные наложенные структуры, чем просто матричный подход. Так, например, для одного приложения есть apps/foo-base, а затем apps/foo-dev и apps/foo-prod, которые имеют ../foo-base в своих базах, а затем те, в свою очередь, вытягиваются overlays/us-prod и overlays/eu-prod и еще много чего.

Но если для каждой комбинации клиента и среды действительно нужны свои настройки, то вы действительно можете получить много наложений.

...