问题标签 [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 回答
90 浏览

knative - 没有 TLS 的本地本地服务和大使

我正在尝试将 knative 用于一些长时间运行的进程,这些进程仅在集群内本地触发。

作为网络层,我们已经使用了 Ambassador,它配置了 TLS,并将 HTTP 请求重定向到 HTTPS:

我使用“cluster-local”标志创建了服务:

如果我尝试从集群中访问它,我会被重定向到 https 版本:

curl -k -v https://helloworld-go.default.svc.cluster.local可以工作,但显然证书的主机名与cluster.local

如果我删除redirect_cleartext_from: 8080,端口 80 似乎不再可用:

有没有办法只为 svc.cluster.local 禁用 http => https 重定向?对于其他工作负载 - 不通过 knative 提供服务 - 我可以使用 http 和http://deployment-name.namespace/

0 投票
1 回答
532 浏览

google-kubernetes-engine - GKE 大使 http -> https 重定向、健康检查问题

我正在关注本教程https://www.getambassador.io/docs/latest/topics/running/ambassador-with-gke/并且我在 http -> https 重定向方面遇到了严重问题。

  • 我无法在 GKE 上编辑健康检查端口,默认配置为服务端口,无法更改
  • 如果我创建新的运行状况检查,在应用后Host insecure.action: Redirect,后端的 hc 会恢复为默认值。如果默认 hc 被删除,它会被重新创建。如果我以某种方式强制我的自定义 hc,它不会再次工作,在 pod 日志中我看到这个"GET /ambassador/v0/check_ready HTTP/1.1" 301
  • 如果我insecure.action: Redirect 在主机 http -> https 设置几秒钟,然后 LB 运行状况检查会导致一切崩溃
0 投票
0 回答
52 浏览

kubernetes-ingress - 使用入口路径从 Kubernetes 集群中访问服务

我正在用 kubernetes 和 ingress 弄脏我的手,并且似乎遇到了一些障碍。因此,我设置了一个集群,并部署和公开了我的服务,service如果需要,它们都可以在集群内使用它们的名称和命名空间前缀进行访问。接下来我使用了大使 Api 网关作为基础ingress controller使这些服务可从外部访问,并使用单个授权服务在网关处执行授权,并且所有服务都可以使用其外部路径从集群外部访问。当我进行需要执行授权的跨服务通信并且为此我要求服务 A 使用其外部 url/ingress 定义的路径调用服务 B 时出现我的问题,这就是问题发生的地方,因为从集群中报告了该路径作为不可及。我可以使用内部集群名称从服务 A 调用服务 B,但随后我失去了在网关处执行的边缘授权。需要帮助了解这是否是默认行为以及在这种情况下可以做什么。

0 投票
0 回答
110 浏览

amazon-web-services - GRPC 健康检查大使

我们通过 AWS ALB 公开了大使(在 v1.2.2 上)。我们已启用 GRPC 作为后端协议,其中 ALB 需要 GRPC 状态代码来对目标大使 pod 进行健康检查。大使有 GRPC 健康检查端点吗?如果是在哪个端口?

0 投票
1 回答
180 浏览

docker - Kubernetes 大使入口 docker 镜像 rpc 超时

我正在尝试使用大使为我的本地集群设置入口并在此处处理本指南https://kind.sigs.k8s.io/docs/user/ingress

但我收到 rpc 和超时错误。我尝试修复的一些事情包括:改用 Ingress Nginx,但我收到了同样的错误,通过在 url 中包含用户名和图像以及删除和重新创建 pod 来修改 dockerhub 路径。我还看到了其他以前的问题,解决方案似乎不起作用。

这是错误日志。kubectl 获取事件 --all-namespaces --sort-by='.metadata.creationTimestamp'

这是yaml。

0 投票
0 回答
28 浏览

javascript - 大使 Keyclock 设置 redurect_uri 与大使注销

我正在尝试使用大使和 Keycloak 添加注销功能,但是,每次我使用大使注销时,它都会使用 URL 注销到一个空的 Keycloak 页面:

目前,我使用:https ://www.getambassador.io/docs/latest/topics/using/filters/oauth2/#rp-initiated-logout

但是,根据 Keycloak 文档,该 URL 需要一个redirect_uri.

0 投票
1 回答
121 浏览

security - 部署大使 API 网关以防止 DDoS 的最佳实践

我需要在我的所有服务前设置 Ambassador API 网关。Ambassador 将执行多种操作,例如速率限制、日志记录、DDoS 保护等。

特别是从 DDoS 保护的角度来看,将 Ambassador API 网关托管在主应用程序 Kubernetes 集群之外是最佳实践吗?或者在单独的命名空间中托管并对其有配额限制?

在同一个 k8s 集群中托管 API 网关可能会因为不需要的流量而导致集群不堪重负,但如果我将 API 网关托管在单独的 k8s 集群应用程序上,那么 k8s 集群可以从这种情况中保存下来。

另外,Ambassador API 网关可以部署在非 k8s 基础架构和 HA 模式下吗?

0 投票
1 回答
300 浏览

google-kubernetes-engine - 带 GKE 运行状况检查和 LB 配置错误的大使边缘堆栈

我目前正在安装 Ambassador Edge Stack (AES),以帮助管理在我们的 GKE 集群中运行应用程序的多个应用程序,但我遇到了几个问题。

手动安装指南中的步骤似乎工作正常,除了edgectl被弃用telepresence(我还没有真正尝试过)。

接下来的步骤,使用 GKE 设置入口是问题开始的地方。

根据指南,这可以通过传统的 Ambassador API 网关或新的 AES 来完成。对两种安装进行比较,您不需要在 API Gateway 安装中执行任何操作,除了整理修补原始aesambassador服务和ambassador-admin服务 from LoadBalancertoNodePort类型。我已经做到了kustomize

剩下的就是设置 GKEIngressBackendConfig. 我的看起来像这样:

这就是事情开始分崩离析的地方。和服务ambassadorambassador-adminpod 运行良好。Ingress创建一个分配我保留的全局 IP 地址的HTTPLB,并且无法从后端运行状况检查中获得 OK。我相信因为 LB 是 HTTP 并且没有暴露端口 443,所以ManagedCertificate也无法提供NOT_VISIBLE错误。

进行一些故障排除,我现在添加了 aFrontEndConfig并使用注释添加到我的入口networking.gke.io/v1beta1.FrontendConfig: "my-frontend"以设置 HTTP 重定向 LB,但是这个新的仅重定向 LB 被分配了具有This load balancer has no frontend configured. 下面是FrontendConfig.

我也玩过一个kubernetes.io/ingress.allow-http: "false"没有运气的人。这个 ingress+backend+frontend 配置与我以前的配置没有什么不同,除了 Ingress 规范映射到我需要的各个服务,没有任何问题。

在这一点上,我已经做了几天并寻求帮助。

0 投票
0 回答
30 浏览

tls1.2 - 大使可以强制执行自己的密码顺序偏好吗?

TLSContext我与大使一起使用的内容如下:

现在我的理解是,大使将按照行的顺序提供每组密码。第一行(带有 GCM 的密码)是强密码。第二行(没有 GCM 的 RSA 密码)是弱密码,应该最后提供。

但是,当我使用testtls.com之类的工具进行测试时,它说未配置密码顺序

TLS 测试结果

如何使用大使配置密码顺序?

0 投票
0 回答
109 浏览

amazon-web-services - 如何在 Kubernetes 中使用 TCP 进行基于主机名的路由

我有一个场景,我有多个 RDP 服务器在单个 kubernetes(EKS) 集群中运行。

我的要求是我应该能够使用主机名连接到不同的 RDP 服务器,即我在 route53 中有一个域,并且对于每个 RDP 部署,我将在 route53 中创建一个记录,然后我可以通过 dns 连接到 RDP 服务器使用集群外部的一些 RDP 客户端进行记录

所以基本上在这里我想根据主机名进行 TCP 路由。我已经尝试过 Nginx 入口控制器,但它不起作用,因为它允许基于端口的 TCP 入口 no 但是在这里我有数千个 RDP 部署,我想从集群外部访问。

我还尝试过其他使用 SNI 进行 TCP 路由的Ingress 控制器,例如 Ambassador、Traefik、Kong 等,但我没有运气,我正在关注这些 Ingress 控制器提供的官方文档,但仍然无法实现.

现在我想知道基于 TCP 主机名的路由是否可能,并且对 SNI(服务器名称指示)不太有信心,它通过匹配确切的完整记录名称(如 rdp1.domain.com 或仅基于域名,即 domain.com ?

任何人都请帮助我如何实现这一点,或者是否有任何产品可用于此类用例。

谢谢