问题标签 [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.

0 投票
1 回答
582 浏览

java - 如何使用 Envoy 作为 Java Web 服务的负载平衡器?

我正在尝试将 Envoy 设置为 Java 应用程序的负载均衡器。以下是我要实施的设置。

在此处输入图像描述

我按照Envoy 教程获得了一些想法并找到了代码。在那里,他们使用前端特使容器作为单一前端服务,在许多后端容器之间分配流量。但是对于我的工作来说,我不需要这样的前端容器。所以我修改了代码,下面是我创建的文件。

服务特使.yaml

Dockerfile-服务

启动服务.sh

码头工人-compose.yml

gs-actuator-service-0.1.0.jar 是包含 Web 服务的 jar 文件。在 localhost 中运行时,可以使用

当我跑

它给出了以下输出,最后有一个错误行。

有人可以指出我在哪里弄错了吗?

谢谢

0 投票
1 回答
2335 浏览

networking - 如何将 Envoy 配置为转发代理以拦截所有 Egress 流量

是否可以配置特使拦截来自主机的所有出口(即出站)流量并将它们重定向到适当的上游?

我的用例是我想在主机上安装 Envoy 并让它负责该主机上所有应用程序的所有 Egress 流量,而无需修改应用程序代码以将其流量转发到 Envoy 的侦听端口。

这是 Envoy 可以提供帮助的吗?有没有人有任何关于如何配置它的示例?

0 投票
1 回答
3663 浏览

kubernetes - Istio 在应该给出 200 时给出 404 NR 响应

相关问题

Istio 特使正在丢弃带有 Host 标头的请求

上面的问题是唯一一个与我的问题很相似的问题。但是,我的标题中的主机是service-b.myns.svc.cluster.local,我不明白为什么这应该是一个问题。

情况

我有一个包含许多Deployments 和Services 的名称空间。对于每一个Service我还定义了一个VirtualService. 例子:

问题

我有另一个服务,调用它service-a应该能够检索/.well-knownrobots.txt/content/header/content/footer。我假设,因为我已经为这些路径定义了一条直接通往 的路线service-b,它们应该可以通过 检索service-a。但是,日志是这样说的:

问题 #1

根据Envoy 文档NR意味着没有路线。我没有在我的 中定义路线VirtualService吗?

问题2

200如果我只是将它们插入浏览器中的 URL 栏(即。<istio-ingressgateway-ip-address>/robots.txt) ,我可以获得每个路径的响应。为什么?

一些进展

我已将问题范围缩小到 pod 上的 istio 代理service-a。我通过一次删除一个 istio-proxy 边车来做到这一点。有两种情况我从中获得了200成功service-a

0 投票
1 回答
1476 浏览

microservices - 如何成功地将特使路由到我的第二个服务?

我正在尝试使用特使 github 页面中的特使前端代理配置来部署 2 个服务

我的第一个服务是应该在“/”下工作的主站点,第二个服务是应该在“/admin”下工作的后台管理。当我将第一个服务的前缀声明为“/”时,问题就开始了。之后,Envoy 根本不会将流量路由到我的管理服务。

我的前特使.yaml 是:

请指教。

0 投票
1 回答
925 浏览

amazon-web-services - 配置 Envoy 以使用 AWS ECS 和 Route53 生成的 SRV 记录

我正在使用 AWS ECS 部署 Envoy 前端代理后面的多个 Web 服务(通过 Docker 映像)。其中一些 docker 镜像有多个部署的实例。

我目前正在使用 ECS 的服务发现功能来生成 DNS 记录,因此我的服务是可发现的。所有这些都按预期工作。

我最初使用awsvpc网络模式并使用 A 记录进行服务发现。但是我很快就达到了网络限制(开始出现“没有足够的 ENI”错误),所以我已经切换到Bridged网络并且我正在尝试使用 SRV 记录进行服务发现。

我遇到的问题是 Envoy 代理似乎不支持 SRV 进行服务发现。或者如果是这样,我需要对我的设置进行哪些更改?我已经包含了我的集群配置的相关部分

如果做不到这一点,我应该考虑哪些其他选项才能使此设置正常工作?

0 投票
1 回答
1108 浏览

proxy - 根据响应位置标头重写 http 请求 - Istio

描述:

通过 virtual_service 向上游请求 Istio (1.0.6) 代理。服务使用标头newuri响应,带有httpStatus代码,即 307 - 我知道重定向应该由 designe 与 302 和位置标头一起使用。但我想根据 http 错误进行重定向处理。我尝试将envoyFilters与 lua 一起使用,但所有功能都与流处理(请求/响应头模块)有关,而不是重写或请求转发。

所以请求路径是这样的:

  • 客户端正在发出请求,即 curl http://foo/path
  • 代理正在将请求转发到上游
  • 上游响应带有 new_uri 的自定义标头,即http://blabla/path2作为值
  • 响应代理中存在标头时正在向 new_uri 发出新请求
  • 客户看到来自 new_uri 的响应

谢谢

0 投票
1 回答
835 浏览

kubernetes - 如何在 Minikube 中为 gRPC 服务设置特使代理?

我正在研究一个小 gRCP API,但遇到了一个小问题。我希望可以从 React 前端访问 gRPC 服务,这意味着我需要一个能够转换 gRPC -> HTTP1 的特使代理,反之亦然。

TL;DR我想我可以联系到特使代理,但代理没有正确路由到我的服务。

我将把服务信息放在这里并解释下面发生的事情。

我的每个服务的 K8s(部署和服务)yaml 文件:
模拟部署

Envoy 配置文件和 docker 镜像
Envoy Config
Envoy Dockerfile

这是一个快速的健全性检查,确保我的服务正常工作,忽略特使代理:

所以据我了解,这个特使代理应该接受端口 9091 上的连接,然后将它们重新路由到端口 9090 上的地址 sim-dep(K8s DNS 正在运行)。
这是我在 React 上运行时的代码和错误我的主机上的应用程序(不在 minikube 中)。

日志:

我假设这意味着它无法在某个级别连接,但该错误不是很具有描述性。我也无法通过特使代理卷曲,但我确实尝试使用 PostMan 发送请求并得到了这个:

在此处输入图像描述

我不太确定该怎么做,但它似乎正在到达特使,但没有到达服务。我将不胜感激任何帮助!:) 如果我错过了这里的任何信息,请告诉我。谢谢!

0 投票
1 回答
147 浏览

kubernetes - {ambassador ingress} 不能在同一个映射中使用 canary 和 add_request_headers

我想将一些自定义标头传递给金丝雀服务。在将这两个映射添加到模板时,它会忽略weight并将标头添加到 100% 的流量并将它们路由到金丝雀服务。

以下是我的大使服务配置

我预计 99% 的流量会在没有任何附加标头的情况下访问服务,而 1% 的流量会在将x-halfbakedfeature: enabled标头添加到请求对象的情况下访问服务。

  • 大使:0.50.3
  • Kubernetes 环境 [AWS L7 ELB]

为在 Github 和 SO 中的 X-posting 道歉。

0 投票
2 回答
244 浏览

openshift - ISTIO 允许所有出站流量到 DOMAIN

主题类似,我需要允许所有流量不流向 IP,而是允许流向域。我要访问的域是 google API https://www.google.com/recaptcha/api/siteverify

有任何想法吗?

0 投票
1 回答
3196 浏览

istio - 带有 Keycloak 的 Istio OAuth2

我使用 Istio 作为 API 网关和服务网格。计划是让身份验证和授权流程(oauth2)由 Istio 中的 Ingress Envoy 网关管理。但是,Envoy 过滤器的使用并没有按预期将 URL 请求重定向到登录页面(可以在此处找到后面的示例并且登录没有发生。如果我尝试通过 curl 连接(身份验证,使用收到的令牌获得授权),它工作正常。但是当涉及 Oauth 2 流程时,它会卡住。这个授权是使用Keycloak完成的。

这是正在使用的 Lua 过滤器:

谢谢你。