编辑 - 是否有可能实现它或者我应该研究其他的东西?
如何将 Envoy 与 Consul 集成以实现自动服务发现和路由?我在 Docker 中运行容器,每个容器都在运行时向 Consul 注册。
我的docker-compose文件看起来像这样。
version: '3'
services:
consul:
image: consul:1.6
container_name: consul
ports:
- 8300:8300
- 8400:8400
- 8500:8500
envoy:
container_name: envoy
build:
context: ./envoy
dockerfile: Dockerfile
ports:
- 10000:10000
user:
container_name: user
build:
context: ./user
dockerfile: Dockerfile
假设用户已注册到 consul,其 IDfoo
在端口上运行80
,并且对 envoy 代理的请求如下http://localhost:10000/user
特使/特使.yaml
admin:
access_log_path: /tmp/admin_access.log
address:
socket_address: { address: 0.0.0.0, port_value: 9901 }
答案1
我们必须决定 Nginx 的替代方案(使用 consul-template),并且我们的列表中也有 envoy,但最终决定使用 Traefik.io。
我们仍然使用 consul-template 来呈现配置,但这样做的原因在于我们的特殊服务设置。
我们不想仅为 Envoy 引入一个新的抽象层 -> traefik