我正在尝试为我的 GRPC 服务的负载平衡和发现功能做一个非常基本的 Envoy 设置。假设一个非常基本的设置,我在 Docker 容器中运行了两个 GRPC 服务。根据 Envoy 文档,我应该使用“envoy.tcp_proxy”过滤器类型。在这里,我做了一个非常简单的 yml 配置,但无法运行:
admin:
access_log_path: /tmp/admin_access.log
address:
socket_address: { address: 0.0.0.0, port_value: 9901 }
static_resources:
listeners:
- name: listener_0
address:
socket_address: { address: 0.0.0.0, port_value: 10000, protocol: TCP }
filter_chains:
- filters:
- name: envoy.tcp_proxy
config:
stat_prefix: myservice
cluster: mycluster
clusters:
- name: mycluster
connect_timeout: 0.25s
type: LOGICAL_DNS
# Comment out the following line to test on v6 networks
dns_lookup_family: V4_ONLY
lb_policy: ROUND_ROBIN
hosts: [{ socket_address: { address: localhost, port_value: 30270 }}]
tls_context: { sni: localhost }
显然我做错了什么,但是在站点的任何地方都找不到完整的 GRPC 到 GRPC 服务网格 Envoy 配置示例。端口 30270 是我在服务器端公开和侦听的端口。
鉴于上述配置说:
初始化配置“/etc/envoy.yaml”时出错:envoy.tcp_proxy 工厂返回 nullptr 而不是空配置消息
我还需要使用 HTTP 管理器来路由吗?有人可以分享一个例子吗?