Кубернетес стручки и общая память и состояние - PullRequest
0 голосов
/ 13 декабря 2018

Я новичок из Kubernetes, поэтому я извиняюсь, если это основной вопрос - я пытаюсь получить хорошее представление об этой удивительной технологии.

Допустим, у меня есть некоторая обработка на модуле, и у меня есть некоторыепеременные и массивы.Теперь у меня будет большая нагрузка, и новый модуль будет распределяться / реплицироваться - теперь у меня есть 2 модуля, а не 1, чтобы справиться с моей нагрузкой.Что будет с памятью о втором стручке?Реплицируется ли pod 2 с тем же содержимым памяти?будет ли память разделена?Если между моими микроуслугами есть какая-то связь, которая требует согласованности памяти, другими словами, есть зависимость от некоторых переменных, то репликация модуля со свежей памятью катастрофична.Для пояснения, скажем, есть ключ, карта значений на одном модуле.Модуль реплицируется, тогда у нас есть два ключа, карта значений (один на pod1, а другой на pod2).Но нам нужна карта ключа, значения, содержащая все данные, которые являются общими для этих двух модулей - общий ключ, карта значений для реплицированных модулей - НЕ два изолированных ключа, карты значений.

Конечно, я предполагаю одно решениебудет иметь общую центральную базу данных для справки.Но это огромные издержки для ситуаций, когда мы просто хотим поделиться массивом из нескольких сотен элементов!Каков подход Кубернетеса к этой проблеме?

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Отвечая на ваш вопрос о памяти второго модуля, второй pod будет назначена новая память.

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

Отвечая на ваш вопрос об общей памяти между модулями, нет, память не распределяется между модулями. Если вы хотите разделить элементы между модулями, вам необходимо убедиться, что они находятся в спецификации контейнера, например том или переменные среды .

Если обратиться к вашему вопросу о ключевых значениях, если вы ищете решения для хранения, вы можете рассмотреть тома 1 , 2 .Если вы просто хотите передать некоторые значения ключей модулям, вы можете использовать configmaps .

1 https://kubernetes.io/docs/concepts/storage/persistent-volumes/

2 https://kubernetes.io/docs/concepts/storage/

0 голосов
/ 13 декабря 2018

@ Zeruno, может быть, я думаю здесь вслух, но что если вы использовали существующий кластер etcd в качестве хранилища ключей для вашего приложения

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

  2. Это может действовать как единая точка хранения, которая будет доступна для всех модулей в этом кластере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...