onDevio / docker-drcon

Service discovery using Docker, Registrator, Consul and Nginx
MIT License
1 stars 0 forks source link

Eliminar (deregister) un servicio en Consul mediante llamada al API #1

Open mefernandez opened 7 years ago

mefernandez commented 7 years ago

A veces en Consul se quedan registrados servicios que no están activos. http://52.19.69.185:8500/ui/#/dc1/services image

Para eliminarlos, basta con realizar las siguientes llamadas con curldesde el propio nodo de Consul.

Ejemplo para eliminar el servicio llamado visados

Paso 1: Obtener el ID del servicio

curl http://localhost:8500/v1/health/service/visados
[
  {
    "Node": {
      "Node": "node",
      "Address": "172.17.0.2"
    },
    "Service": {
      "ID": "ip-172-31-22-51:visados_nginx_1:80",
      "Service": "visados",
      "Tags": null,
      "Address": "172.31.22.51",
      "Port": 32779
    },
    "Checks": [
      {
        "Node": "node",
        "CheckID": "serfHealth",
        "Name": "Serf Health Status",
        "Status": "passing",
        "Notes": "",
        "Output": "Agent alive and reachable",
        "ServiceID": "",
        "ServiceName": ""
      }
    ]
  }
]

Paso 2: De-registrarlo

curl --request PUT http://localhost:8500/v1/agent/service/deregister/ip-172-31-22-51:visados_nginx_1:80
mefernandez commented 7 years ago

Deregistrar todas las instancias de un servicio

curl -s http://52.19.69.185:8500/v1/health/service/cadvisor | python -m json.tool | grep -e '"ID"' | cut -d '"' -f 4 | xargs -i -n 1 curl --request PUT http://52.19.69.185:8500/v1/agent/service/deregister/{}