Запустите Elastic Stack в Docker Compose на Raspberry Pi 4

Я пытаюсь запустить эластичный стек на своем RasPi4, используя компоновку докеров. Проблема в том, что Elastic не предоставляет образы для архитектуры ARM... только X86. Так что raspi не поддерживается из коробки.

Каждый раз, когда я запускаю конфигурацию создания докера, я получаю это сообщение

7.9.3: Pulling from elasticsearch/elasticsearch
ERROR: no matching manifest for linux/arm/v7 in the manifest list entries

Поиск Google в основном дает результаты, указывающие на неофициальный образ... который я бы попробовал... но этому 4 года: https://hub.docker.com/r/ind3x/rpi-elasticsearch/. Так что я думаю, я не получаю обновленный поиск elastics.

У кого-нибудь есть идея, как мне заставить свою резинку работать? Это мой docker-compose.yml... довольно прямолинейно.

version: '3.3'
services:

  elastic-node-1:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.9.3
    container_name: elastic-node-1
    restart: always
    environment:
      - node.name=elastic-node-1
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=elastic-node-2
      - cluster.initial_master_nodes=elastic-node-1,elastic-node-2
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - elastic-data-1:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - elastic-net

  elastic-node-2:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.9.3
    container_name: elastic-node-2
    restart: always
    environment:
      - node.name=elastic-node-2
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=elastic-node-1
      - cluster.initial_master_nodes=elastic-node-1,elastic-node-2
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - elastic-data-2:/usr/share/elasticsearch/data
    ports:
      - 9201:9201
    networks:
      - elastic-net

  kibana:
    image: docker.elastic.co/kibana/kibana:7.9.3
    container_name: kibana
    restart: always
    depends_on:
      - elastic-node-1
      - elastic-node-2
    ports:
      - 5601:5601
    environment:
      ELASTICSEARCH_URL: http://elastic-node-1:9200
      ELASTICSEARCH_HOSTS: http://elastic-node-1:9200
    networks:
      - elastic-net

volumes:
  elastic-data-1:
    driver: local
  elastic-data-2:
    driver: local

networks:
  elastic-net:
    driver: bridge

Если нет возможности запустить эту гибкую настройку, можете ли вы порекомендовать какое-либо другое оборудование, подобное raspi (с использованием Linux), которое является x86 и может заменить мой raspi? Затем я переключал оборудование на свой эластичный стек.


person Sebastian Sommerfeld    schedule 23.12.2020    source источник


Ответы (1)


У меня есть некоторый опыт работы с Elastic в более крупных бизнес-приложениях, так что просто дополнительная пища для размышлений — у меня пока нет прямого ответа:

  • действительно, изображение, которому 4 года, не стоит усилий. Elsstic стабильна в версии 7.x, а версия 8.x находится в разработке, и в нее внесены значительные изменения.
  • вам нужно учитывать, что Heapsize, доступный для Elastic, на самом деле должен быть настроен на 50%, поскольку он используется совместно с Lucene.
  • это означает, что Elastic может быть довольно требовательным к оперативной памяти. В зависимости от вашего варианта использования и с учетом ограничений Raspi до 8 ГБ на данный момент вы можете рассмотреть это.

Для небольшого приложения это может сработать, но я бы не стал считать его более чем экспериментальным.

Если у вас нет другого пути, у вас может быть два варианта:

    • build a docker image (or find someone who is interested enough to join the effort maybe the orinibal author of that old docker image)
    • go step by step and first deploy elastic on a headless raspi standalone (even avoid docker for the moment and reduce any overhead) and then add some elastic node configs (elastic usually only works well with at least three nodes)
  1. действительно создайте кластер, который предлагает не менее 8-16 ГБ на узел - я полагаю, что установка на основе Ubuntu подойдет для X86.
person Alistair    schedule 29.12.2020