Постановка и производство в Kubernetes

Я использую один и тот же кластер для двух пространств имен: staging и production. Единственные различия между двумя пространствами имен:

  1. Тома, подключенные к определенным модулям (очевидно, отдельное сохранение между staging и production!)
  2. Пара веб-URL для относительной адресации
  3. Пара IP-адресов баз данных, используемых для сложной персистентности.

Мне удалось адресовать (2) и (3) следующим образом, чтобы поддерживать один файл YAML для всех контроллеров репликации. :

  • Используйте ConfigMaps локально для пространства имен, чтобы определить любую конфигурацию, которая передается через переменные среды в модули.
  • Используйте Службы с Конечными точками для обработки записи DNS, указывающей на разные внутренние IP-адреса.

Однако я не могу найти удовлетворительный способ получить ссылку на gcePersistentDisk pdName - Кажется, я не могу использовать ConfigMap, поэтому немного запутался. Что было бы подходящим способом сделать это? Лучшая альтернатива, по-видимому, состоит в том, чтобы поддерживать 2 отдельных файла YAML с разными строками, но это имеет запах кода, поскольку нарушает DRY.

Кроме того, любой конструктивный комментарий к остальной части моей установки, как указано выше, высоко ценится :-)


person Angad    schedule 18.05.2016    source источник


Ответы (1)


Возможно, вы могли бы создать по одному PersistentVolumeClaim в каждом пространство имен. Взгляните на может ли PVC быть привязан к определенному PV ? о том, как "предварительно связать" PersistentVolumes с PersistentVolumeClaims.

Возможно, это не идеальное решение, но, вероятно, оно будет работать до тех пор, пока PVC не будут поддерживать селекторы меток.

person jayme    schedule 19.05.2016
comment
+1 Полностью пропустил PersistentVolumeClaim при чтении документации! Есть ли способ передать файл в kubectl create? Таким образом, мы могли бы выполнять простые замены строк с помощью команды верхнего уровня вместо того, чтобы прыгать через эти обручи. - person Angad; 19.05.2016
comment
Я думаю, что mustache запуск в CLI идеален, учитывая, что вы можете разместить свои вещи в красивом файле JSON :-) npmjs .com/package/усы - person Angad; 19.05.2016