我有一个服务网格特使代理配置问题。配置基于官方特使代理站点的这个例子:https : //www.envoyproxy.io/docs/envoy/latest/start/sandboxes/front_proxy,以及这个ssl课:https : //www.envoyproxy.io /学习/SSL。
我尝试了许多不同的端口组合(80,443)、命名、域、nginx 配置等......,没有任何效果。
这是我的前台代理:
static_resources:
listeners:
- address:
socket_address:
address: 0.0.0.0
port_value: 80
listener_filters:
- name: "envoy.listener.tls_inspector"
typed_config: {}
filter_chains:
- filter_chain_match:
server_names: ["example.com", "www.example.com", "api.example.com", "test.example.com"]
tls_context:
common_tls_context:
tls_certificates:
- certificate_chain:
filename: "/etc/example-ai.pem"
private_key:
filename: "/etc/example-ai.key"
- filters:
- name: envoy.http_connection_manager
typed_config:
"@type": type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager
stat_prefix: ingress_http
access_log:
- name: envoy.file_access_log
config:
path: "/var/log/access.log"
route_config:
virtual_hosts:
- name: services
domains:
- ["*.example.com","example.com"]
routes:
- match:
prefix: "/"
redirect:
path_redirect: "/"
https_redirect: …Run Code Online (Sandbox Code Playgroud) 断路器不会在httpConsecutiveErrors上跳闸:1(对于500响应).所有请求都通过并提供500.断路器应跳闸,应返回503(服务不可用).
按照断路器设置步骤进行操作 .
一旦httpbin启动,你可以用它模拟500请求:
kubectl exec -it $FORTIO_POD -c fortio /usr/local/bin/fortio -- load -c 1 -qps 0 -n 20 -loglevel Warning http://httpbin:8000/status/500
Run Code Online (Sandbox Code Playgroud)
运行此操作将模拟返回500的20个请求.
但是,如果您已应用断路器,则应仅允许一个请求为500,并且应该跳过剩余的请求并返回503.这不会发生.在github Github问题上提出的问题
由于某些依赖 Host 标头才能正常运行的遗留应用程序,我需要一个能够重写 Host 标头并将其传递给下游(后端)的 Ingress(代理等)。是否有支持此功能的入口控制器?
例子:
最终用户通过foo.com/afor backenda和foo.com/bfor backend访问我们的网站b。但由于a和b是遗留应用程序,它只接受:
a 接受连接时 Host: a.foo.comb 接受连接时 Host: b.foo.com我有一个基于 .NET core 的微服务架构,并且有几个微服务。我们选择 ocelot 作为 API 网关来实现路由、聚合和安全。在我们的架构讨论中,有人提到 Envoy Api Gateway 也是一个不错的选择,但找不到 Ocelot 和 Envoy 之间的任何差异,它的优缺点包括性能、可扩展性、社区支持等......
任何人都可以帮助分享一些关于哪一个是用于 .NET Core 应用程序的最佳选择的见解吗?
我在笔记本电脑上运行4个微服务,在各个端口监听.我可以使用Istio在笔记本电脑上创建服务网格,以便服务可以通过Istio相互通信吗?谷歌关于Istio的所有链接都包括kubernetes,但我想在没有Kubernetes的情况下运行Istio.谢谢阅读.
到目前为止,我发现的唯一解决方案是使用--config-yaml,类似的东西
envoy -c /etc/service-envoy.yaml \
--config-yaml "'static_resources': {
'clusters': [
{
'name': 'jaeger',
'connect_timeout': '1s',
'type': 'strict_dns',
'lb_policy': 'round_robin',
'hosts': [
{
'socket_address': {
'address': '$JAEGER_HOST',
'port_value': 9411
}
}
]
}
]
}"
Run Code Online (Sandbox Code Playgroud) 我计划将 K8s/Istio 引入我的基础设施。现在我有很多使用 RabbitMQ 相互通信的服务。
服务网格概念似乎假设所有服务都应该是同步的。
我想至少保持我的一些服务异步并利用 istio 提供的相互 TLS 身份验证以及聚合监控。
是否有任何工具/方法可以帮助我简化同步和异步服务的管理?
谢谢,
我很难理解特使和领事之间的区别。每一种都有哪些用例以及优点是什么?它们似乎都提供服务网格、可观察性和负载平衡。
对于混合云用例,我们正在研究 EnvoyProxy 是否适合作为跨本地防火墙移动数据的解决方案。预期的设置如下:
使用 Envoy 将数据路由到上游集群已有详细记录。但是,我们想知道 Envoy 是否能够在两个代理实例之间设置 TLS 连接并在两个方向上使用该通道。限制是该 TLS 连接只能从一个方向(出站)建立。
如果这是可能的,有人可以指出我正确的方向吗?
谨致问候, 乔斯特