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

0 投票
1 回答
255 浏览

kubernetes-ingress - 大使边缘堆栈映射不起作用

我正在尝试在我的本地 Kubernetes(Docker 桌面集群)中设置大使边缘堆栈。

完成所有部署后,我检查了大使命名空间,一切都按预期工作。此外,我的部署(pod 和服务)正常工作。我已将大使边缘堆栈服务更改为 nodeport,以便我可以在本地访问和测试。另外,我在我的 HOST 文件中添加了 url。

现在,这里是细节。

在此处输入图像描述

在此处输入图像描述

注意:我使用了上面的 Service: pod.service 形式

有了这个,我得到了带有http://local.edgestack.com的 edgestack 主页 在此处输入图像描述

但如果我输入:local.edgestack.com/apple/ 我会收到 404 错误页面。与 curl 命令相同:

0 投票
1 回答
83 浏览

kubernetes - 大使身份验证服务设置

我正在尝试为我的大使 Api 网关设置 AuthService。但是在那个大使吊舱的日志中,我收到了这个错误:

我的身份验证服务:

仅供参考:我有两个集群,第一个集群有两个命名空间大使,大使-p。其他集群有一个具有 my-auth 服务的命名空间。我正在尝试在集群 1 的大使命名空间中部署 authService 类型,它将连接到第二个集群中的 authservice。在命名空间ambassador-p中,ambassador_id 是ambassador_p,但对于Ambassador命名空间,没有大使 ID。这就是为什么我没有在 yaml 配置中指定 Ambassador_id。因此它应该采用default

我在ambassador-p 命名空间中尝试了同样的事情并且它有效,但它在大使命名空间中不起作用。知道我做错了什么吗?

0 投票
0 回答
29 浏览

authentication - 保护应用程序取决于大使

我有一个由大使保护的 rest api 应用程序,我的过滤器要求所有请求在标题中提供用户名和密码。现在我想添加将使用与用户相同的端点的附加服务。由于我的其他服务不充当用户,我可以使用某种 api 密钥对其进行配置以使用大使或 od 我需要创建一个服务帐户并在请求中使用用户名/密码标头吗?

0 投票
0 回答
24 浏览

github - 如何在大使边缘 API 网关的 OAuth2 身份验证中使用 GitHub 作为 IdP

我想在使用 OAuth2 的应用程序中使用 GitHub 作为身份验证器。我的应用程序是在 Ambassador Edge API Gateway 下的 Kubernetes 集群中运行的前端。

在https://www.getambassador.io/docs/edge-stack/latest/howtos/oauth-oidc-auth/中有其他提供商的示例,但是当我尝试配置 GitHub 时,我找不到身份验证 URL .

有人使用 GitHub 做过类似的事情吗?

0 投票
0 回答
89 浏览

microk8s - microk8s 端口 443 连接拒绝与 metallb 和大使边缘堆栈的错误

我在笔记本电脑上运行 microk8s 系统,使用 metallb 作为负载平衡器,使用大使边缘堆栈作为入口。一切正常,包括一个运行 kubectl 调用的 bash 脚本来设置它并删除它等。

当我尝试将相同的设置安装到我们要用于 QA 的本地服务器上时,就会出现问题。我运行我的脚本,但它在中途失败。microk8s 运行良好,我可以看到 metallb 和 Ambassador 都设置正确(即与我的笔记本电脑上的相同)。但是每个请求都返回“连接到 192.168.50.40 端口 443 失败:连接被拒绝”,这是我的脚本失败的地方。

我认为它可能与路由器有关,因此我在 /etc/hosts 中添加了一个条目,以将消息中的 ip 地址映射到我使用的域名。我可以从服务器上的终端窗口 ping 域名,并得到预期的成功响应。但是,如果我尝试使用 https URL 的 curl 命令,我会收到相同的连接被拒绝错误,这意味着它与外部连接无关。

我的入口只监听 https,而不是 http,但我将其设置为监听 http(端口 80)并尝试过,得到相同的连接被拒绝错误。当我在笔记本电脑上做同样的事情时,它给了我一个成功的响应。

我的笔记本电脑设置和本地服务器之间的区别是:

  • 在 metallb 上设置了不同的 IP 地址范围。
  • 不同的域名
  • 不同的 TLS 证书

所有这些都作为参数传递给设置脚本。本地服务器还具有两个以太网接口,一个在消息中显示,另一个是 192.168.50.50。我注意到 metallb 正在监听第二个,所以我编辑了 kubelet 文件 (/var/snap/microk8s/current/args/kubelet) 以指定正确的地址,重置 microk8s 并验证它现在使用正确的地址。metallb 命令只是

即池中的一个地址。我在我的笔记本电脑上做同样的事情,但地址不同。

但它仍然给我这个错误。我在 metallb 日志和大使日志中看不到任何可能的错误,实际上也没有证据表明请求已达到。我的同事一直在暗示大使配置有问题,但它与工作笔记本电脑版本完全相同(除了上述参数),所以我很难对此保持开放的态度。

我们检查了防火墙规则(尽管我希望内部请求没有触及防火墙)并且它们很好,让 443 的所有内容都通过。但是有些东西在某处阻止了 443 请求。有人知道我接下来应该看什么吗?谢谢你的帮助。

更新:我提到问题机器上有两个接口:192.168.50.40和192.168.50.50。我们一直在尝试使用第一个,但今天早上我们切换到使用第二个。突然间一切正常。似乎 microk8s 中的某些东西真的只喜欢其中一个接口,现在的问题是为什么。

版本(两种环境相同): 操作系统:Ubuntu 20.04.3 LTS microk8s:1.22 metallb:0.9.3 Ambassador:2.0.5

0 投票
0 回答
13 浏览

kubernetes - 生成新证书时,Ambassador Edge Stack 是否与现有 TCP 连接执行 TLS 重新协商?

标题是主要问题。如果我有一个长期存在的 TCP 连接并且大使识别出需要使用新的 TLS 证书(即来自证书管理器自动轮换) - 大使会自动执行 TLS 重新协商吗?还是我需要关闭任何连接?

0 投票
2 回答
154 浏览

kubernetes - 在 GKE 上安装 Clean Ambassador Edge Stack 失败并解析 DNS

我们正在测试 Ambassador Edge Stack,并开始使用处于自动驾驶模式的全新 GKE 私有集群。

我们按照快速入门教程从头开始安装以了解它并最终出现以下错误

我们进行了几轮 DNS 测试,并在不同的命名空间中部署了几个不同的测试 pod,以验证 kube-dns 是否正常工作,一切看起来都很好。resolv.conf 看起来也不错。

大使正在使用emissary-apiext.emissary-system.svc:443应该可以正常解析的主机名(没有 cluster.local)。顺便说一句,使用 FQN(使用 cluster.local)进行查找效果很好。

有什么线索吗?

非常感谢,保重。

0 投票
0 回答
69 浏览

kubernetes - 在使者中实施 authservice 后出现错误 403

我已经在 kubernetes 上实现了 emissary ingress 并实现了部署、服务和映射。

下面的映射已在使者中创建

此时,当我运行 curl 命令时,它工作正常。

但是,一旦我在使者入口中实现了身份验证服务,它就开始给出 403 错误代码

我检查了所有地图和服务,还检查了互联网的解决方案,但没有得到解决。

我还实现了与下面链接中提到的相同的配置。

https://www.getambassador.io/docs/emissary/

仔细检查一下,我的映射是正确的,我尝试使用 bypass_auth 标志绕过身份验证,它开始提供 200 代码。

需要您的支持来解决 403 错误代码。

0 投票
1 回答
86 浏览

kubernetes - acme: 错误 -> 一个或多个域有问题

我试图弄清楚如何在 Kubernetes 上设置大使,但我遇到了一些问题。

我们的应用程序托管在 DogitalOcean 上,我们正在尝试充分利用他们的资源。他们有一个很好的入门工具包来启动和运行环境。我坚持的部分是设置入口控制器。我们为此选择了大使,以下是与之相关的文档:https ://github.com/digitalocean/Kubernetes-Starter-Kit-Developers/blob/main/03-setup-ingress-controller/ambassador.md#step -2---为大使边缘堆栈定义主机

我安装了大使本身没有问题(几乎)。接下来是设置主机。

这是我的主机文件:

注意:文档提到主机名必须可以从 Internet 访问,并且确实如此。

应用更改并描述主机后,我收到以下错误:

现在,深入研究文档,我试图了解什么是HTTP-01 Challenge。事实上,这种端点在当前服务器上是不存在的。

我很困惑,需要做什么才能使其工作?

0 投票
0 回答
29 浏览

kubernetes - 使用 Ambassador 迁移到 Kubernetes 后,API 调用出现 504 错误

我们应用程序的后端 (API) 建立在 Grails 5.1.1 之上,并且已经在 DiginalOcean 上运行了好几年。我们现在正在尝试将基础架构迁移到 Kubernetes(也在 DO 上)。对于入口控制器,我们使用了 Ambassador Edge Stack(出于各种原因)。

现在,整个集群都已启动并运行,只是我们遇到了 CORS 问题。

注意:通过常规的 LoadBalancer(甚至是相同的图像),完全相同的代码库在 DO 上运行没有问题。

当我们将 API 切换到 Kubernetes 集群时,我们会收到缺少 CORS 标头的错误。

在细节之前,有一点历史......

起初,OPTIONS请求被拒绝,因为显然 spring-security 拒绝了这些请求。出于某种原因,我们只有在切换到 Kubernetes 时才会遇到这个问题。

我们通过添加另一个过滤器来解决这个问题(拦截器不适用于这种情况,因为它们在安全过滤器之后执行)......

铜过滤器

添加到resource.groovy

并注册BootStrap.groovy

之后,OPTIONS请求开始按预期工作。顺便说一句,内置的 cors 过滤器仍然处于启用状态。我们可以在这一点上从技术上删除它。

一旦解决了这个问题,我们现在将面临下一个挑战。实际的 API 调用不返回 CORS 标头。


更多细节

就目前的环境而言。 带有托管 LoadBalancer 的 DO 上的 Docker 液滴。

OPTIONS要求: 在此处输入图像描述

相同的GET要求: 在此处输入图像描述

如您所见,CORS 标头都适用于两者。一切都很幸福。

在 Kubernetes 上与大使 字面意思是相同的 docker 镜像。

大使地图:

注意:即使我完全删除cors配置,我仍然面临同样的问题。

OPTIONS要求: 在此处输入图像描述

匹配 GET 请求: 在此处输入图像描述