当前位置: 首页 > 知识库问答 >
问题:

带弹性簇的docker群

国晟睿
2023-03-14

我是弹性和码头群初学者。我已经花了两个星期的时间来学习和尝试用弹力准备一个码头工人群。我想用docker Swarm准备一个弹性集群。在那里我们可以轻松地使用缩放向上和向下。我认为我们需要swarm来实现这一点,并需要弹性集群来保持swarm节点之间的数据同步。我还考虑到完全自动化,我希望使用与容器主机名配置的Zen。因为rubin“ElasticSearch”的主机名应该返回所有的IP。

    null

首先,我尝试遵循以下指令:sematext.com/blog/2016/12/12/docker-elasticsearch-swarm

这里nginx-proxy不是作为服务(docker-compose文件的一部分)工作,而是作为容器工作。(码头工人跑)。我不知道会有什么不同。但是这个想法本身已经准备好了早期版本的docker,它对我不起作用。

这个指令背后的主要思想是discovery.zen.ping.unicast.hosts具有容器名称。Docker swarm本身负载平衡,然后弹性地找到其他节点。

version: '3'  
  services:  
    elasticsearch:
    image: 'elasticsearch:5'
    command: [ elasticsearch, -E, network.host=0.0.0.0, -E, discovery.zen.ping.unicast.hosts=elasticsearch, -E, discovery.zen.minimum_master_nodes=1 ]
  nginx:
    image: 'nginx:1'
    ports:
      - '9200:9200'
    command: |
      /bin/bash -c "echo '
      server {
        listen 9200;
        add_header X-Frame-Options "SAMEORIGIN";
        location / {
          proxy_pass http://elasticsearch:9200;
          proxy_http_version 1.1;
          proxy_set_header Connection keep-alive;
          proxy_set_header Upgrade $$http_upgrade;
          proxy_set_header Host $$host;
          proxy_set_header X-Real-IP $$remote_addr;
          proxy_cache_bypass $$http_upgrade;
      }
   }' | tee /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'"
  • 我已经创建了一个自己的映像,并直接在nginx配置文件中设置nginx参数
  • 这是我的docker-compose文件的新配置。

我测试过了。Nginx在工作。curl-xget http://ellasty:changeme@127.0.0.1:9200/_cluster/state?pretty返回数据。

version: '3'  
  services:  
    elasticsearch:
      image: elasticsearch:latest
      deploy:
        replicas: 2
      ports: ["9300:9300"]
      command: [elasticsearch, -E, network.bind_host=0.0.0.0, -E, discovery.zen.ping.unicast.hosts=elasticsearch, -E, discovery.zen.minimum_master_nodes=1]
    nginx:
      image: 'dodi1983/nginx:0.1'
      ports:
        - 9200:9200
      depends_on: 
        - elasticsearch

后果:

    null

有人有什么想法或解决办法吗?谢谢你。

共有1个答案

佘京
2023-03-14

为我帮助官方文件

https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html

version: '2.2'
services:
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.4.1
    container_name: es01
    environment:
      - node.name=es01
      - discovery.seed_hosts=es02
      - cluster.initial_master_nodes=es01,es02
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata01:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - esnet
  es02:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.4.1
    container_name: es02
    environment:
      - node.name=es02
      - discovery.seed_hosts=es01
      - cluster.initial_master_nodes=es01,es02
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata02:/usr/share/elasticsearch/data
    networks:
      - esnet

volumes:
  esdata01:
    driver: local
  esdata02:
    driver: local

networks:
  esnet:
 类似资料:
  • 我正在尝试在多个集群(而不是节点)中插入记录。我正在使用spring-data-elastic search(版本2.0.4.version)。我尝试使用不同bean名称在配置中创建2个elasticsearchoperation实例。我正在尝试使用带有索引(IndexQuery IndexQuery)方法的对象进行插入。但当我尝试插入时,我无法保持字段的映射(非分析字段类型)。可以有人请帮助我如

  • 问题内容: 我有一个带有用户ID的userIds(class-integer)的向量: 和一个代码: 我需要使用所有用户ID创建此代码的循环。 像这样的东西: 如何将此代码翻译为R.Thx以帮助我!!! 问题答案: 我是软件包的作者-希望我可以提供帮助:/ 这是一种使用for循环的方法 让我知道是否可行。

  • 我正在尝试使用SSL上带有Elasticsearch的测微计。 我在版本1.8.0中使用测微计,在版本7.16.3和OpenJDK 11.0.2中使用Elasticsearch。 因为我知道不可能使用内置配置(链接),所以我尝试注入一个自定义的HttpUrlConnectionSender,如下面的SecureHttpSender类所示: 我注入了Spring启动,所以我可以应用所需的配置,但我得

  • 我有一个自签名证书(不是流行的X.509证书)。证书和ECDSA公钥/私钥对由java程序使用bouncy Castle生成。我需要使用OpenSSL用C程序验证这个证书。然而,java程序可以正确地验证ECDSA签名,但openssl验证失败。如果我使用相同的私钥用openssl对消息重新签名,那么使用openssl的签名验证将通过。 下面是与密钥生成相关的java代码片段(生成密钥对后,我实际

  • 问题内容: 每次执行此查询需要200毫秒以上的时间: 但这每次在第一次查询后每次执行只需要2-3毫秒: 注意在两个查询中相同的ID值。看起来第二个查询使用第一个查询的缓存结果。但是,为什么第一个查询不能使用缓存的结果本身?从第一个查询中删除不会更改任何内容。 当我使用其他ID执行第二个查询时,第一次执行该查询大约需要40毫秒,此后每次需要2-3毫秒。因此,第二个查询不仅运行速度更快,而且还缓存结果

  • 之前我们介绍过,响应式网站设计主要包括三部分:弹性布局、媒体查询和弹性媒介。我们分别了解下这几个。 弹性布局 所谓的弹性布局,说的是在创建网站的时候,采用流体网格布局方式,动态地调整网站布局宽度以此来适应各种设备屏幕大小。 弹性布局不使用固定的测量单位,比如像素或者英寸。原因显而易见,视窗( viewport )的高度和宽度在不同设备之间是不断变化的,那么弹性网站布局为了适应这种变化,所以就不可能