问题标签 [ambassador]
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 - 大使显示上游没有健康
我在 CentOS 中设置了 Kubernetes,有 1 个主节点和一个单独的节点。添加了大使 GW 和后来的地图服务。当我尝试使用 GW 映射访问最终服务时,它会响应no healthy upstream
消息。
kubernetes - 大使可以处理 CORS 请求吗?
如果这是一个非常无知的问题,我很抱歉,但大使是否有可能真正处理 CORS 标题和飞行前 OPTION 响应?
文档(https://www.getambassador.io/reference/cors)对我来说似乎有点模棱两可,如果只有钩子可以阻止请求,或者它是否可以真正代表服务响应。
这是我的情况:我在一些微服务的所有 http 请求前面都有大使。[原因] 我们现在需要一个单独的域来向同一个大使发出请求。
我配置了 AuthService,并且根据文档“当您使用外部授权时,每个传入请求在路由到其目的地之前都经过身份验证,包括飞行前 OPTIONS 请求。” 这是完全有道理的,这就是我所看到的。我的 AuthService 被配置为允许正确的事情,这似乎是有效的。AuthService 以适当的标头响应,但 Ambassador 似乎只是忽略了这一点,只关心 AuthService 是否以 200 响应。(这似乎完全合理。)
我在大使模块上对此进行了注释:
这似乎并没有达到我的预期,即处理 CORS 标头和飞行前……而是将其转发到服务以处理所有 CORS 内容。
kubernetes - 如何配置大使能够映射到容器上的多个端口
我使用大使作为我的 kubernetes 设置的入口控制器。我需要连接到容器上的多个端口,例如,我有一个 RethinkDB 容器,我需要连接到其 web-ui 的端口 8085、RDB-API 的端口 28015 和将节点添加到 Rethinkdb 和集群的端口 29015。
我尝试了不同的配置,但没有奏效。我尝试过的配置: 1- 此配置适用于最新映射,这意味着如果我将 8085 映射替换为 29015 并将其放在最后,我可以访问 web-ui 但不能访问其他部分等等。
2-这个根本没用
我应该如何配置大使,以便我可以访问我的容器的所有端口?
kubernetes - curl: (7) 连接 192.168.99.100 端口 30790 失败:连接被拒绝
我正在编写有关创建 Kubernetes 服务以指向大使部署的教程。
教程:https ://www.bogotobogo.com/DevOps/Docker/Docker-Envoy-Ambassador-API-Gateway-for-Kubernetes.php
在运行命令时
我收到错误
我实际上可以消除错误
通过运行
接着
我已经尝试过这个答案curl: (7) Failed to connect to 192.168.99.100 port 31591: Connection denied并且这个答案中提到的步骤已经在博客中,它没有工作。
这是来自博客的代码,用于 Ambassador-svc.yaml
这可能是与VM相关的问题吗?
另外,我尝试先学习本教程,但不幸的是,遇到了同样的错误。
让我知道我这边是否还有其他需要。
编辑:
1.正如评论中所问的,这里的输出是
跑完之后
kubernetes - 更新大使的 tls 秘密
部署解决方案后,我需要在解决方案中应用证书。作为大使聆听 tls 机密的更改,我采用了这种方法。部署我的应用程序后,我的大使使用默认的自签名证书。我用这个更新了该证书命令
我的秘密现已更新,但我的大使仍然不听新的秘密。我更新秘密的方式有问题吗?
kubernetes - 将大使部署到 Kubernetes
通过本教程,我一直在学习如何在 minikube 上的 kubernetes 上部署大使,这很有效,因为我可以看到成功安装大使的页面。主要问题是,当我尝试更改 UI 的图像以使其应该在链接中打开其他应用程序时,它会打开相同的大使成功页面。
以前的tour.yaml
修改tour.yaml
(删除后端并更改图像)
ambassador-service.yaml
请帮忙,我真的很困惑它背后的原因是什么以及如何解决它。
kubernetes - 大使是许可服务吗?应该更喜欢什么 - 特使代理或大使?
我想为一个项目使用 API 网关,但我有点困惑,我在一家公司工作,他们希望将特使代理作为网关,但是当我了解大使时,我认为大使会是比 envoy 代理更好,因为它建立在 envoy 代理之上,而且它集成了 consul,充当服务网格,Ambassador 主要用于云原生应用程序。
和一位前辈交谈后,他告诉我,大使是一个许可服务,而特使代理是免费的(可以自己制作)。大使会不会因为它是许可的而有任何问题?
此外,在我看来,与部署特使代理相比,部署大使更容易。
所以这一切都归结为:
- 大使和特使代理之间的主要区别是什么?
- 如果我们想在 Kubernetes 上部署微服务,应该首选什么?
kubernetes - 如何使用大使网关路由或 cloudflare 检测浏览器?
我有一个在 cloudflare 后面运行的 Angular 应用程序,并且使用 kubernetes 部署了大使网关路由。我想要做的是检查应用程序从哪个浏览器接收流量,并将其与我拥有的支持的浏览器列表进行匹配。如果浏览器不匹配,我想抛出一个静态 html 页面,上面写着,对不起,我们不支持此浏览器,请按照步骤升级您的浏览器等。
现在,有很多解决方案可以实现完全相同的目标,但是我有一个硬性要求,即完全阻止不受支持的浏览器访问我的网站。
我可以在我的应用程序中轻松地做到这一点,但是,为什么要加载整个 Angular 应用程序只是为了拒绝访问我的网站。将用户从根目录本身屏蔽是非常棒的。问题是我没有 nginx、haproxy 等,在这种情况下,实现它会相当简单和直接。相反,我有 cloudflare 和大使,这是我经验最少的。
有人可以指导我如何使用cloudflare或大使根据某些条件实现浏览器检测和重定向吗?
kubernetes - 如何在我的 Kubernetes 微服务中在运行时知道大使服务前缀
有没有办法在运行时在我的 Kubernetes 微服务中学习大使服务前缀?
以这个配置为例:
从我的 docker 容器中,我想获取“/myprefix/”。通过一些 env 变量进行部署,或者如果无法使用 env 变量以编程方式完成。
谢谢。
kubernetes - Istio HTTPRedirect 捕获组支持
注意:我感觉 Istio 不支持此功能,但我很好奇除了 NGINX 之外是否还有其他反向代理支持此功能?
我正在尝试将来自 regex: 的请求重定向/abc/(?<appname>.*)?
到/cba/$appname
Istio 内的 VirtualService 中。这似乎是一个微不足道的问题,因为 Istio 应该取代 NGINX Ingresses,所以似乎在他们的文档中没有太多提及这个问题。
我发现了其他几个提到类似问题的帖子,但我想要一个明确的答案,这是不支持的。
我有以下工作示例,它只是将正则表达式重定向/abc/.*
到静态地址/cba/
。
在 URI 正则表达式中添加捕获组:/abc/(?<hello>.+)?
会导致以下错误,尽管正则表达式在语法上是正确的。
gRPC config for type.googleapis.com/envoy.api.v2.RouteConfiguration rejected: Invalid regex '/abc/(?<hello>.+)?': One of *?+{ was not preceded by a valid regular expression.
有什么我遗漏的东西,或者有什么可以找到解决这个问题的方法吗?
另请注意:HTTPRewrite 的文档指出 uri 字段必须是字符串,这也让我担心不支持此功能。
我试过查看 Envoy 的文档,似乎是因为他们不支持它?除了 NGINX 之外,有没有办法从任何反向代理中的正则表达式中提取字段?