Я пытаюсь запустить ElasticSearch на Docker (фактически на AWS ECS). Если я не настроил том, он работает правильно, но каждый раз, когда я перезапускаю контейнер, я теряю все данные. Не могу понять, как настроить громкость.ElasticSearch с Docker: как сохранить данные с помощью AWS
Что я пробовал:
- в определении задач я настроен объем "Name = esdata1" и "исток =/USR/доли/elasticsearch/данные"
- внутри определения контейнера в раздел «хранение и ведения журнала» Я настроил точки монтирования «громкость источника = esdata1» и «путь контейнер =/USR/доли/elasticsearch/данные»
Теперь, когда я запускаю контейнер он потерпит неудачу с сообщением об ошибке «доступ отрицал "когда эластичные earch попытайтесь написать в «/ usr/share/elasticsearch/data». Поэтому в разделе Security я настроил «user = ec2-user», но тогда контейнер даже не запустится (оставайтесь в «status = created»). Что мне делать? Я предполагаю, что проблема связана с тем, что пользователь контейнера должен быть тем же, что и на хосте. Пользователь на хосте «ec2-user», я не знаю, как это сделать.
Edit:
Я теперь в состоянии сохранять данные с этой конфигурацией:
docker inspect:
"Mounts": [
{
"Name": "elasticsearch_data",
"Source": "/var/lib/docker/volumes/elasticsearch_data/_data",
"Destination": "/usr/share/elasticsearch/data",
"Driver": "local",
"Mode": "z",
"RW": true,
"Propagation": "rprivate"
}
]
Теперь данные сохраняются, если остановить контейнер или я перезагрузить хост. Моя последняя проблема заключается в том, что эта папка «/ var/lib/docker/volume/elasticsearch_data/_data» находится на томе ОС, а не на большем объеме докеров. От Aws doc:
Amazon ECS оптимизированных МАССЫ от версии 2015.09.d и последующего запуска с Гигабайт объемом для операционной системы, которая прилагается в/разработчике/xvda и смонтированную как корень файловой системы , Существует дополнительно 22 том GiB, который подключен к/dev/xvdcz, который Docker использует для изображения и хранилища метаданных. Громкость настроена как логическое устройство управления (LVM), и к нему напрямую подключается Docker через задний конец devicemapper .
Как сохранить данные на/dev/xvdcz?
Большое спасибо
Большое спасибо: 1. Извините, я думаю, что это очень глупый вопрос, но «прикрепите диск EBS к экземпляру. Смонтируйте диск» - это действительно то, что мне не хватает: не должен быть этот диск уже смонтирован? (согласно документам AWS) 2. Управляемые ES из AWS довольно старые, я не могу их использовать, так как они обновляют его менее одного раза в год. 3. Настройка действительно не надежная, я на самом деле здесь, чтобы учиться. Я знаю, что мне нужен кластер, вот почему я думал об использовании ECS, чтобы легко запустить кластер узлов. –
@StefanoGiacone Я бы не рекомендовал использовать диск с контейнерами докеров. Вам нужен чистый диск, содержащий только данные ES. Если вы используете конфигурацию запуска для создания экземпляров, вы можете добавить туда еще один диск. Затем в скрипте User Data в конфигурации запуска вы монтируете диск и форматируете его. Или вы можете добавить диск вручную в экземпляр. Я не знаю, как автоматизировать и самостоятельно восстанавливать эту настройку. Но вы должны создать новую EBS только для хранения ES. Это упростит резервное копирование и т. Д. – doorstuck
Я думаю, это хороший подход, я думаю, что поеду за ним. Что касается резервных копий: считаете ли вы полезными? Я считаю, что репликация ES делает лучшую работу. –