问题标签 [istio-gateway]

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 投票
0 回答
5 浏览

tls1.3 - TLS1.3 是否适用于 NCS20 或 NCS21 和 istio 1.7.6?

TLS1.3 是否适用于 NCS20 或 NCS21 和 istio 1.7.6?我们的产品 CSD 使用 NCS21 和 istio1.7.5。与 ingressgw 的 TLS 通信正在工作,但即使我们在 envoyfilter 下面添加了它也无法与 egressgw 通信:

apiVersion:networking.istio.io/v1alpha3 种类:DestinationRule 元数据:名称:cnsbatest2-csd-nservice-route-destinationrule 命名空间:csd 规范:主机:csd-nservice.ns1.svc.cluster.local trafficPolicy:loadBalancer:简单:ROUND_ROBIN tls:模式:简单连接池:http:http1MaxPendingRequests:2500 http2MaxRequests:2500 tcp:maxConnections:10 — apiVersion:networking.istio.io/v1alpha3 种类:EnvoyFilter 元数据:名称:scp-ef 命名空间:csd 规范:configPatches:

applyTo:集群匹配:集群:portNumber:8080 服务:csd-nservice.ns1.svc.cluster.local 上下文:SIDECAR_OUTBOUND 补丁:操作:合并值:transport_socket:typed_config:'@type':type.googleapis.com/envoy。 api.v2.auth.UpstreamTlsContext common_tls_context: tls_params: tls_maximum_protocol_version: TLSv1_2 tls_minimum_protocol_version: TLSv1_3

0 投票
1 回答
178 浏览

kubernetes - istio 过滤跟踪标头(如 x-b3-*)在哪里

我看到 istio在启用跟踪时正在向传入请求添加x-b3-traceid,和其他标头。x-b3-spanid但是它们都没有返回给调用者。

我能够x-b3-traceid在日志中捕获并在 Tempo/Grafana 中找到它。我可以traceid在 istio envoy 代理(sidecar)上看到,我可以使用EnvoyFilter.

有人可以告诉我它在哪里过滤吗?

0 投票
1 回答
77 浏览

kubernetes - 用于微服务部署的 Kubernetes API 网关

我正在尝试了解我的微服务的 Kubernetes API 网关。我有多个微服务,它们使用 Kubernetes 部署类型及其自己的服务进行部署。我还有一个前端应用程序,它基本上尝试与上述 API 通信以完成请求。总的来说,以下是我喜欢实现的目标,我喜欢你的意见。

  1. 我对下图的理解是否正确?(比如我们是否应该在我的所有微服务之上安装 API 网关,而 Web 应用程序应该使用这个 API 网关来访问这些服务中的任何一个?
  2. 如果是,我怎样才能做到这一点?我的意思是,我尝试了 ISTIO 网关,但不知何故不起作用。 在此处输入图像描述

这是 istio 网关和虚拟服务

在此处输入图像描述

另一方面,下面是我的服务(目录服务)配置

另外,在主机文件(windows - driver\etc\host 文件)我有本地 DNS 的条目

istio 服务端,如下截图

在此处输入图像描述

我不确定出了什么问题,但我尝试 localhost:30139/catalog 或 localhost/catalog 它总是给我连接拒绝或连接未找到错误。

0 投票
1 回答
300 浏览

microservices - Istio jwt 解析并填充到请求标头中

我有几个微服务并使用 istio。由于某些业务需求,需要每个微服务中的最终用户角色详细信息。我想知道如何在请求标头中填充声明(最终用户角色)(jwt)。我在 istio yml 下进行了配置。

outputPayloadToHeader此元素有助于在标头中填充不记名令牌。Istio 只是验证 jwt(承载)。但想知道如何配置以在请求标头中填充 jwt 有效负载元素。我已附上屏幕截图,有效负载属性应传播到请求标头。这样我的微服务(想要名称(“Gaurav Agarwal”))将从标题中读取。无论如何配置RequestAuthentication或任何其他方式?

在此处输入图像描述

0 投票
1 回答
32 浏览

kubernetes-ingress - 在 Istio 支持 Cert 和非 Cert 流量的方法

我的 Istio Ingress Gateway 配置为 tls 模式 MUTUAL,并且正在解密流量,以便我可以根据 http 请求中的查询参数为不同的服务执行基于 http 的路由。

我有一个场景,我需要同时支持基于 Cert 和基于 AAD 的身份验证。AAD Auth 在服务端得到处理,我只需要确保我通过 Authorization 标头的流量原样(即使它们没有证书也不会终止它们)并验证基于证书的请求。

与此问题类似:https ://github.com/istio/istio/issues/25067

有关所需配置的任何指针?

0 投票
1 回答
90 浏览

kubernetes - 基于 Cookie 存在的条件 Istio EnvoyFilter

目前我们正在使用 EnvoyFilter 来添加身份验证检查。这个过滤器使用了 envoyext_authz过滤器。

我们有一个用于匿名和授权调用的 GraphQL 端点。由于公共呼叫不需要身份验证检查/过滤器,我希望能够基于 cookie 跳过此过滤器。我尝试在网上搜索解决方案,但找不到。

请参阅下面的过滤器配置:

0 投票
0 回答
42 浏览

istio - Istio TCP 全局速率限制

我正在尝试通过 istio 入口网关为 tcp 连接实现全局速率限制。我已经按照官方文档实现了一个全局 http 速率限制器服务,并设法让它工作https://istio.io/latest/docs/tasks/policy-enforcement/rate-limit/,但它不处理 TCP连接。

这是http速率限制配置

我已经开始将特使过滤器引用更改为更加基于网络,但我不确定我还缺少什么,或者这是否是正确的方法。到目前为止,这是我与以前的配置相比所做的更改

我想要做的甚至可能吗?

0 投票
1 回答
154 浏览

kubernetes - 将 kubernetes istio 入口网关绑定到本地端口 80 和 443

我设法在托管服务提供商 (hetzner) 的专用服务器上安装了 kubernetes 1.22、longhorn、kiali、prometheus 和 istio 1.12 (profile=minimal)。

然后我继续使用 istio 教程中的 istio 入口网关测试 httpbin。我在从 Internet 访问它时遇到了一些问题(我设置 HAProxy 以将本地端口 80 转发到在 kubernetes 中分配的动态端口,因此在我的情况下为端口 31701/TCP)

如何使 kubernetes 在裸机接口端口 80(和 443)上直接可用。

我以为我找到了 metallb 的解决方案,但我无法做到这一点,所以我认为它不适合该用例。(我尝试将 EXTERNAL-IP 设置为裸机接口的 IP,但这似乎不起作用)

我的 HAProxy 设置现在不适用于我的 SSL 流量(在 kubernetes 上使用 cert-manager),但在我继续调查之前,我想确定一下。这真的是您假设在裸机上使用 istio 网关配置将流量路由到 kubernetes 的方式吗?

我遇到了这个,但我没有外部负载均衡器,我的托管服务提供商也没有提供一个供我使用。

0 投票
0 回答
59 浏览

jwt - 仅在 Istio 中的选定主机上使用 JWT 身份验证

我有一个位于 istio-system 命名空间中的 istio Gateway 资源。我需要为多个主机设置 JWT 身份验证,但并非每个主机都使用 JWT。我正在尝试应用Istio 文档中的清单(对于具有标签 app:httpbin 的工作负载的所有请求都需要 JWT)。

这是我的清单:

我有一个带有app: test-users标签的工作负载(pod、服务),但它不起作用。Jwt is missing当我向 test-users 应用程序运行请求时,即使我没有传递令牌,我也不会收到错误消息。issuer我可以在部分输入一个假的jwtRules,请求仍然通过。我尝试了文档中提到的另一种方法,该方法将RequestAuthentication/AuthorizationPolicy对部署在 istio-system 命名空间中并且有效,但是它要求我在所有其他命名空间中使用 JWT 身份验证,这是我无法拥有的。

0 投票
0 回答
34 浏览

istio - 如何在特使过滤器中使用 hcm 过滤器?

伙计们!我想通过使用 hcm 来分配出口流量,例如

www.xxx.com:8000(边车) -> clusterA(出口)

www.yyy.com:8000(边车) -> clusterB(出口)

休息请求(边车)-> 原始进程(出口)

匹配请求可以正确路由,但是不匹配请求怎么办?

不匹配的请求现在得到 404 响应。

我想在原始路径中处理不匹配的请求。

那么如何修改yaml配置来实现这个目标??有没有最佳实践?</p>