Я пытаюсь использовать контейнер из https://github.com/cybermaggedon/accumulo-docker для создания 3-х узлового развертывания в Google Kubernetes Engine.Моя главная проблема - как заставить узлы знать друг о друге.Например, файл конфигурации accumulo/conf/slaves
содержит список всех узлов (имена или IP-адреса, по одному на строку) и должен быть реплицирован на все узлы.Кроме того, один узел Accumulo назначается главным, и все подчиненные узлы указывают на него, делая его единственным именем / IP в файле conf / masters.
Документация для док-контейнера Accumulo настраивает каждый контейнер таким образом, предоставляя переменные среды, которые, в свою очередь, используются сценарием запуска контейнера для перезаписи файлов конфигурации для этого контейнера, например,
docker run -d --ip=10.10.10.11 --net my_network \
-e ZOOKEEPERS=10.10.5.10,10.10.5.11,10.10.5.12 \
-e HDFS_VOLUMES=hdfs://hadoop01:9000/accumulo \
-e NAMENODE_URI=hdfs://hadoop01:9000/ \
-e MY_HOSTNAME=10.10.10.11 \
-e GC_HOSTS=10.10.10.10 \
-e MASTER_HOSTS=10.10.10.10 \
-e SLAVE_HOSTS=10.10.10.10,10.10.10.11,10.10.10.12 \
-e MONITOR_HOSTS=10.10.10.10 \
-e TRACER_HOSTS=10.10.10.10 \
--link hadoop01:hadoop01 \
--name acc02 cybermaggedon/accumulo:1.8.1h
Это запуск одного из подчиненных узлов, он включает себя в SLAVE_HOSTS
и указывает на мастер в MASTER_HOSTS
.
Если я реализую свое масштабирование как набор с состоянием в Kubernetes, как мне достичь подобного результата?Я могу изменить контейнер по мере необходимости, у меня нет проблем с созданием собственной версии.