Кластер Rabbitmq на Nomad

Я хочу создать кластер RabbitMQ в кочевом кластере. Прямо сейчас я могу запускать докер-контейнеры RabbitMQ, но не могу создать кластер на основе обнаружения консула. После запуска контейнеров я получил такое сообщение на каждом узле:

      [warning] <0.229.0> Could not auto-cluster with node rabbit@10.14.1.112: {badrpc,nodedown}
[warning] <0.229.0> Could not auto-cluster with node rabbit@test-nomad1: {badrpc,nodedown}
[warning] <0.229.0> Could not auto-cluster with node rabbit@test-nomad2: {badrpc,nodedown}
[warning] <0.229.0> Could not auto-cluster with node rabbit@test-nomad3: {badrpc,nodedown}

Где моя проблема? Я думаю, может быть, сначала нужно запустить один узел, и я добавил один контейнер с помощью prestart , но это мне не поможет. Моя кочевая работа:

      job "test" {
datacenters = ["dc1"]

group "test-group" {
count = 4
update {
  max_parallel = 1
}

migrate {
  max_parallel = 1
  health_check = "checks"
  min_healthy_time = "30s"
  healthy_deadline = "60s"
}
task "rabbit" {
  driver = "docker"
  config {
    image = "<my_registry>/rabbitmq:consul"
    force_pull = true
    hostname = "${attr.unique.hostname}"
    port_map {
      amqp = 5672
      ui = 15672
      discovery = 4369
      clustering = 25672
    }
    auth {
      server_address = "<my_registry>"
      username = "user"
      password = "pass"
    }
  }

  env {
    RABBITMQ_ERLANG_COOKIE = "RabbitMQ"
    RABBITMQ_DEFAULT_USER = "test"
    RABBITMQ_DEFAULT_PASS = "test"
    CONSUL_HOST = "10.14.1.109"
    CONSUL_SVC_PORT = "${NOMAD_HOST_PORT_amqp}"
    CONSUL_SVC_TAGS = "amqp"
  }

  resources {
    network {
      port "amqp" { static = 5672 }
      port "ui" { static = 15672 }
      port "discovery" { static = 4369 }
      port "clustering" { static = 25672 }
    }
  }

  service {
    name = "rabbitmq"
    port = "ui"
    tags = ["management", "http"]
  }
}
}
}

Конфигурация Rabbitmq:

      loopback_users.guest = false
listeners.tcp.default = 5672
hipe_compile = false
management.listener.port = 15672
management.listener.ssl = false
cluster_formation.peer_discovery_backend = rabbit_peer_discovery_consul
cluster_formation.consul.acl_token = <my_token>
cluster_formation.consul.host = 10.14.1.109
cluster_formation.consul.svc_addr_auto = true
cluster_formation.consul.svc_addr_use_nodename = false

В консульских службах вижу кролика Спасибо за любую помощь!

1 ответ

Проблема исправлена: докер-контейнер не настроен для получения DNS Consul. Как это исправить https://awesomeprogrammer.com/blog/2021/12/22/consul-dns-services-discovery-in-docker-gotchas/

Другие вопросы по тегам