Skip to content

101

  • server config exmple
/ # more consul/config/server.json
{
  "datacenter": "dc1",
  "bind_addr": "0.0.0.0",
  "client_addr": "0.0.0.0",
  "data_dir": "/consul/data",
  "log_level": "INFO",
  "node_name": "ConsulServer0",
  "server": true,
  "ui": true,
  "bootstrap_expect": 3,
  "leave_on_terminate": false,
  "skip_leave_on_interrupt": true,
  "rejoin_after_leave": true,
  "retry_join": [
    "consul-server-0:8301",
    "consul-server-1:8301",
    "consul-server-2:8301"
  ]
}
  • client agent config example
{
  "datacenter": "dc1",
  "server": false,
  "bind_addr": "0.0.0.0",
  "client_addr": "0.0.0.0",
  "data_dir": "/consul/data",
  "log_level": "INFO",
  "node_name": "App",
  "ui": true,
  "retry_join": [
    "consul-server-0:8301",
    "consul-server-1:8301",
    "consul-server-2:8301"
  ]
}
  • sidecar for noobies

server

{
  "service": {
    "name": "wordpress",
    "tags": [
      "wordpress",
      "production"
    ],
    "port": 80,
    "connect": {"sidecar_service": {} },
    "check": {
      "id": "wordpress",
      "name": "wordpress TCP on port 80",
      "tcp": "localhost:80",
      "interval": "10s",
      "timeout": "1s"
    }
  }
}

client

{
  "service": {
    "name": "wordpress",
    "tags": [
      "wordpress",
      "production"
    ],
    "port": 80,
    "connect": {
      "sidecar_service": {
        "proxy": {
          "upstreams": [
            {
              "destination_name": "mysql",
              "local_bind_port": 3306
            }
          ]
        }
      }
    },
    "check": {
      "id": "wordpress",
      "name": "wordpress TCP on port 80",
      "tcp": "localhost:80",
      "interval": "10s",
      "timeout": "1s"
    }
  }
}

  • consul operator raft list-peers gives the list of active servers

API tips and tricks

Logs:

curl -s http://127.0.0.1:8500/v1/agent/monitor (CTRL-C to escape)

List Members:

curl -s http://127.0.0.1:8500/v1/agent/members | jq

Get Consul Leader:

curl -s http://127.0.0.1:8500/v1/status/leader | jq

Agent Info:

curl -s http://127.0.0.1:8500/v1/agent/self | jq

/usr/local/bin/consul agent -config-dir /consul/config

envoy admin API: curl localhost:19000/listeners