Docker Swarm中NATS-Streaming集群第三个节点启动失败求助
问题:Docker Swarm部署NATS-Streaming集群仅2个节点启动成功
计划在三台服务器上通过Docker Swarm部署NATS-Streaming集群,但仅成功启动2个节点,docker service ls输出显示有一个节点状态异常。
故障节点启动日志提示RAFT状态相关的启动失败问题。
docker-stack.yml配置
version: "3.8" networks: network: driver: overlay attachable: true services: nats-streaming-1: logging: options: max-size: "100m" command: - "-sc" - "/etc/stan.conf" - "--cluster" - "nats://0.0.0.0:6222" - "--cluster_id" - $NATS_CLUSTER_NAME - "--clustered" - "--cluster_bootstrap" - "--cluster_log_path" - /data/log - "--cluster_node_id" - nats-streaming-1 - "--cluster_raft_logging" - "--debug" - "--dir" - /data/msg - "--http_port" - "8222" - "--port" - "4222" - "--store" - file - "--stan_debug" - "--hb_interval" - $NATS_HB_INTERVAL - "--hb_fail_count" - "$NATS_HB_FAIL_COUNT" - "--hb_timeout" - "$NATS_HB_TIMEOUT" - "-mc" - "$NATS_STAN_MAX_CHNS" - "-mm" - "$NATS_STAN_MAX_MSGS" - "-mb" - "$NATS_MAX_BYTES" image: "nats-streaming:0.25.5" networks: network: ports: - "$NATS_PORT1:4222" - "$NATS_HTTP_PORT1:8222" volumes: - "nats-streaming-1:/data" - "./stan.conf:/etc/stan.conf" deploy: placement: max_replicas_per_node: 1 constraints: [node.hostname == alex-swarm-3a] nats-streaming-2: logging: options: max-size: "100m" command: - "-sc" - "/etc/stan.conf" - "--cluster" - "nats://0.0.0.0:6222" - "--cluster_id" - $NATS_CLUSTER_NAME - "--clustered" - "--cluster_log_path" - /data/log - "--cluster_node_id" - nats-streaming-2 - "--cluster_raft_logging" - "--debug" - "--dir" - /data/msg - "--http_port" - "8222" - "--port" - "4222" - "--store" - file - "--stan_debug" - "--routes" - "nats://nats-streaming-1:6222" - "--hb_interval" - $NATS_HB_INTERVAL - "--hb_fail_count" - "$NATS_HB_FAIL_COUNT" - "--hb_timeout" - "$NATS_HB_TIMEOUT" - "-mc" - "$NATS_STAN_MAX_CHNS" - "-mm" - "$NATS_STAN_MAX_MSGS" - "-mb" - "$NATS_MAX_BYTES" image: "nats-streaming:0.25.5" ports: - "$NATS_PORT2:4222" - "$NATS_HTTP_PORT2:8222" volumes: - "nats-streaming-2:/data" - "/home/master/stan.conf:/etc/stan.conf" networks: network: deploy: placement: max_replicas_per_node: 1 constraints: [node.hostname == alex-swarm-3b] nats-streaming-3: logging: options: max-size: "100m" command: - "-sc" - "/etc/stan.conf" - "--cluster" - "nats://0.0.0.0:6222" - "--cluster_id" - $NATS_CLUSTER_NAME - "--clustered" - "--cluster_log_path" - /data/log - "--cluster_node_id" - nats-streaming-3 - "--cluster_raft_logging" - "--debug" - "--dir" - /data/msg - "--http_port" - "8222" - "--port" - "4222" - "--store" - file - "--stan_debug" - "--routes" - "nats://nats-streaming-1:6222" - "--hb_interval" - $NATS_HB_INTERVAL - "--hb_fail_count" - "$NATS_HB_FAIL_COUNT" - "--hb_timeout" - "$NATS_HB_TIMEOUT" - "-mc" - "$NATS_STAN_MAX_CHNS" - "-mm" - "$NATS_STAN_MAX_MSGS" - "-mb" - "$NATS_MAX_BYTES" image: "nats-streaming:0.25.5" networks: - network ports: - "$NATS_PORT3:4222" - "$NATS_HTTP_PORT3:8222" volumes: - "nats-streaming-3:/data" - "/home/master/stan.conf:/etc/stan.conf" deploy: placement: max_replicas_per_node: 1 constraints: [node.hostname == alex-swarm-3c] volumes: nats-streaming-1: nats-streaming-2: nats-streaming-3:
官方文档说明
这是因为服务器恢复了流式传输状态(由-dir指定,位于已挂载的卷中),但未恢复RAFT特定状态,该状态默认存储在以集群ID命名的目录中,相对于启动可执行文件的当前目录。在容器环境中,容器停止后这些数据会丢失。
已为/data目录挂载了卷,并将--cluster_log_path设置为'/data/log',但问题仍未解决。
内容的提问来源于stack exchange,提问作者Кирилл Сыроежкин
相关产品推荐
相关产品推荐

