问题标签 [envoyproxy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
kubernetes - 尝试在启用了 sidecar 的 pod 之间卷曲时从特使那里获得 403 Forbidden
我正在使用 Kubernetes/Istio 设置,我的 pod 和服务列表如下:
我正试图hr--hr-service
从hr--debug-deployment-86575cffb6-wl6rx
您能否解释一下为什么我会收到特使禁止的 403 以及如何解决它?
ssl - 如何为 Envoy 代理自动加载新的 TLS 证书?
我在 Kubernetes 环境中使用https://github.com/jetstack/cert-manager来自动加载https://letsencrypt.org/。它会创建 90 天后过期的证书。到期前30 天,cert-manager 更新证书并更换证书。证书存储在 k8s 机密中。
你如何让 Envoy Proxy自动重新加载证书?这些问题已关闭,似乎没有答案。有人提到了可以帮助提供解决方案的秘密发现服务 (SDS),但我还没有找到一个解决方案。
对于 nginx,可以通过将 k8s 机密添加到 k8s 卷来配置 TLS,将卷挂载到文件系统以供 nginx 使用。然后可以使用文件系统观察程序调用sudo nginx -s reload在证书更改时重新加载配置。我看到 Envoy Proxy 支持热重启,但是我没有看到类似 nginx 的命令让它热重启。
有一个hot-restarter.py,但它不是文件监视程序,我宁愿不在 envoyproxy/envoy:latest docker 映像上安装 python。我认为可能该程序的某些功能可以内置到一个也可以进行文件监视的 rust 应用程序中,但是对于这种非常常见的情况,必须已经存在一些东西,对吧?
envoyproxy - 如何在 envoyproxy 配置文件中使用环境变量?
到目前为止,我发现的唯一解决方案是使用--config-yaml
,类似的东西
envoyproxy - 如何使用特使在访问日志中获取动态元数据
我想在路由配置中设置一些元数据,并将它们放在访问日志中。我知道该功能是https://github.com/envoyproxy/envoy/pull/4862。
但是,我无法弄清楚如何编写yaml文件,我尝试了很多次,但它不起作用。
但是我从通用元数据中一无所获。
是否有将元数据设置为访问日志的示例?
java - ISTIO sidecar 导致 Java grpc 客户端在高并发负载下抛出“UNAVAILABLE: upstream connect error or disconnect/reset before headers”
我有两个 gRPC 服务,一个将通过普通的 gRPC 方法调用另一个(两边都没有流),我使用 istio 作为服务网格并将 sidecar 注入到两个服务的 kubernetes pod 中。
gRPC 调用在正常负载下正常工作,但在高并发负载情况下,gRPC 客户端不断抛出以下异常:
同时,服务器端也没有异常istio-proxy
,客户端pod的容器也没有错误。但是,如果我禁用 istio sidecar injection 以便这两个服务直接相互通信,则不会出现此类错误。
有人可以告诉我为什么,以及如何解决这个问题吗?
非常感谢。
grpc - 基于 gRPC 方法和参数的 Envoy 路由
我有一个在 gRPC 服务中使用的 Protobuf 文件 Routing.proto。我还有一个 Envoy simple.yaml 文件。我正在尝试在方法 service_B_hello(1) 上进行 gRPC 路由匹配,其中 1 是包含在 CopyImageRequest 中的 camera_id 值。如何在 Envoy 中使用请求中的方法参数 camera_id 进行此路由匹配?
路由.proto:
simple.yaml 特使文件:
TIA,
kubernetes - 启用 mTLS 时使用 istio ingress 访问服务会出现 503 错误
我有一个启用双向 TLS 的 Istio 网格。我的设置如下
- 在 pod 内运行的服务(服务容器 + 特使)
- 位于上述服务前面的特使网关。附加到此的 Istio 网关和虚拟服务。它将路由
/info/
路由到上述服务。 - 另一个使用默认 istio 入口 pod 为入口配置的 Istio 网关。这也有网关+虚拟服务组合。虚拟服务将
/info/
路径定向到 2 中描述的服务
我正在尝试使用 curl 命令从入口网关访问服务,例如:
但我收到一个 503 not found 错误,如下所示:
我检查了istio-ingressgateway
pod 的日志,并在那里记录了以下行
如果我登录到 istio ingress pod 并尝试使用 curl 发送请求,我会收到成功的 200 OK。
此外,当在 mTLS 禁用模式下创建网格时,我设法获得了相同 curl 命令的成功响应。mTLS 设置中没有显示冲突。
以下是我的服务网格的配置详细信息,以防您需要其他信息。
豆荚
服务
第 2 点中描述的网关和虚拟服务
第 3 点中描述的网关和虚拟服务
envoyproxy - how to build envoy binary without CI?
I only want to build envoy. It seems like x./ci/run_envoy_docker.sh './ci/do_ci.sh bazel.dev'
will also run CI. How can I only compiled and build the binary?
visual-studio-code - 如何在 VScode mac 上调试特使单元测试
我正在与特使(https://github.com/envoyproxy/envoy)合作。--spawn_strategy=standalone --genrule_strategy=standalone
当我进行 bazel 构建时,我让这个项目在 VSCode 中使用标志在 mac 上构建和调试。
但是,当我尝试使用 bazel 测试进行相同操作时,如果没有沙箱,我将无法运行它。当我运行命令时:
bazel test //:test_name --spawn_strategy=standalone --genrule_strategy=standalone
它运行整个测试并显示哪些测试通过,哪些测试失败。
但是当我从 /bazel-bin/ as 运行二进制文件时./test_name
,它给了我一个错误说:Caught Abort trap: 6, suspect faulting address
. 我假设这是因为在沙盒中创建了一些缺少的环境变量 - 我也尝试过使用--strategy=TestRunner=standalone
. 可以独立运行吗?这样我就可以在 IDE 中进行调试,例如 VScode。谢谢!
tcp - Envoy 的逻辑 DNS 连接管理
Envoy 在其关于逻辑 DNS 服务发现的文档(https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/service_discovery#logical-dns )中说:
“仅在需要启动新连接时使用返回的第一个 IP 地址”
Envoy 如何决定何时需要启动新的上游连接?
它还说:
“连接永远不会耗尽”
如果上游主机无法访问,旧连接会怎样?健康检查是否适用于当前已建立连接的所有上游主机,或者它们是否仅监视具有当前“第一个 IP 地址”的主机?如果是后者,我是否可以假设 Envoy 只会在尝试写入并且对等 ACK 超时时删除失败的上游连接(并因此停止尝试向这些主机发送流量)?如果是这样,是否可以配置超时持续时间?