网关/负载均衡下的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
本文来自博客园,作者:charlieroro,转载请注明原文链接:https://www.cnblogs.com/charlieroro/p/11302709.html