0

Nomad (0.6) で Redis ジョブをデプロイすると、Consul で正常に動作しません。

コンテナーで Consul を起動し、localhost でポート 8500 を使用できるようにします。


$ docker container run --name consul -d -p 8500:8500 consul

nomad を実行すると、ログで確認できるように Consul に正しく接続されます。


$ nomad agent -dev
    No configuration files loaded
==> Starting Nomad agent...
==> Nomad agent configuration:

                Client: true
             Log Level: DEBUG
                Region: global (DC: dc1)
                Server: true
               Version: 0.6.0

==> Nomad agent started! Log data will stream in below:
...
    2017/08/18 15:45:28.373766 [DEBUG] client.consul: bootstrap contacting following Consul DCs: ["dc1"]
    2017/08/18 15:45:28.377703 [INFO] client.consul: discovered following Servers: 127.0.0.1:4647
    2017/08/18 15:45:28.378851 [INFO] client: node registration complete
    2017/08/18 15:45:28.378895 [DEBUG] client: periodically checking for node changes at duration 5s
    2017/08/18 15:45:28.379232 [DEBUG] consul.sync: registered 1 services, 1 checks; deregistered 0 services, 0 checks
...

次に、次の構成ファイルを使用して redis ジョブを実行します


job "nomad-redis" {
  datacenters = ["dc1"]
  type = "service"

  group "cache" {

    task "redis" {
      driver = "docker"

      config {
        image = "redis:3.2"
        port_map {
          db = 6379
        }
      }

      resources {
        cpu    = 500 # 500 MHz
        memory = 256 # 256MB
        network {
          mbits = 10
          port "db" {}
        }
      }

      service {
        name = "redis"
        port = "db"
        check {
          name     = "alive"
          type     = "tcp"
          interval = "10s"
          timeout  = "2s"
        }
      }
    }
  }
}

Redis サービスが consul に追加されていますが、重要なものとして表示されます。ヘルスチェックができないようです。私が理解していることから、チェックはタスク内で行われます。私が欠けているものはありますか?

4

1 に答える 1