网关/负载均衡下的consul集群代理

  • 之前有做过使用单机版的consul实现Prometheus服务注册,以为使用集群版的consul只是将consul服务地址从节点IP变为了网关IP。但比较坑的就是,当使用consul注册一个service的时候,该service会存储在集群中的某个consul server上,删除该service时必须指定该server的节点IP/域名,否则无法删除。但在网关条件下,作为客户端只能指定网关IP/域名,这样在删除service时就会出现问题。因此自己做了个consul proxy工具,该工具以sidecar的方式与consul server部署在同一个pod,代理该pod的8500的进出流量,实现后端控制删除service的功能,可以从github下载使用
  • prometheus 添加如下配置实现服务发现:
- job_name: 'consul'
consul_sd_configs:
  - server: '10.10.10.1:8500' #本地非loopback接口地址
    services: []
relabel_configs:
  - source_labels: [__meta_consul_tags]
    regex: .*
    action: keep
    target_label: consul_tags
  - source_labels: [__address__]
    regex: 127.0.0.1:8300
    action: drop
原文地址:https://www.cnblogs.com/charlieroro/p/11302709.html