问题标签 [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.
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
kubernetes - istio 过滤跟踪标头(如 x-b3-*)在哪里
我看到 istio在启用跟踪时正在向传入请求添加x-b3-traceid
,和其他标头。x-b3-spanid
但是它们都没有返回给调用者。
我能够x-b3-traceid
在日志中捕获并在 Tempo/Grafana 中找到它。我可以traceid
在 istio envoy 代理(sidecar)上看到,我可以使用EnvoyFilter
.
有人可以告诉我它在哪里过滤吗?
kubernetes - 用于微服务部署的 Kubernetes API 网关
我正在尝试了解我的微服务的 Kubernetes API 网关。我有多个微服务,它们使用 Kubernetes 部署类型及其自己的服务进行部署。我还有一个前端应用程序,它基本上尝试与上述 API 通信以完成请求。总的来说,以下是我喜欢实现的目标,我喜欢你的意见。
- 我对下图的理解是否正确?(比如我们是否应该在我的所有微服务之上安装 API 网关,而 Web 应用程序应该使用这个 API 网关来访问这些服务中的任何一个?
- 如果是,我怎样才能做到这一点?我的意思是,我尝试了 ISTIO 网关,但不知何故不起作用。
这是 istio 网关和虚拟服务
另一方面,下面是我的服务(目录服务)配置
另外,在主机文件(windows - driver\etc\host 文件)我有本地 DNS 的条目
istio 服务端,如下截图
我不确定出了什么问题,但我尝试 localhost:30139/catalog 或 localhost/catalog 它总是给我连接拒绝或连接未找到错误。
kubernetes-ingress - 在 Istio 支持 Cert 和非 Cert 流量的方法
我的 Istio Ingress Gateway 配置为 tls 模式 MUTUAL,并且正在解密流量,以便我可以根据 http 请求中的查询参数为不同的服务执行基于 http 的路由。
我有一个场景,我需要同时支持基于 Cert 和基于 AAD 的身份验证。AAD Auth 在服务端得到处理,我只需要确保我通过 Authorization 标头的流量原样(即使它们没有证书也不会终止它们)并验证基于证书的请求。
与此问题类似:https ://github.com/istio/istio/issues/25067
有关所需配置的任何指针?
kubernetes - 基于 Cookie 存在的条件 Istio EnvoyFilter
目前我们正在使用 EnvoyFilter 来添加身份验证检查。这个过滤器使用了 envoyext_authz
过滤器。
我们有一个用于匿名和授权调用的 GraphQL 端点。由于公共呼叫不需要身份验证检查/过滤器,我希望能够基于 cookie 跳过此过滤器。我尝试在网上搜索解决方案,但找不到。
请参阅下面的过滤器配置:
istio - Istio TCP 全局速率限制
我正在尝试通过 istio 入口网关为 tcp 连接实现全局速率限制。我已经按照官方文档实现了一个全局 http 速率限制器服务,并设法让它工作https://istio.io/latest/docs/tasks/policy-enforcement/rate-limit/,但它不处理 TCP连接。
这是http速率限制配置
我已经开始将特使过滤器引用更改为更加基于网络,但我不确定我还缺少什么,或者这是否是正确的方法。到目前为止,这是我与以前的配置相比所做的更改
我想要做的甚至可能吗?
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 的方式吗?
我遇到了这个,但我没有外部负载均衡器,我的托管服务提供商也没有提供一个供我使用。
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 身份验证,这是我无法拥有的。
istio - 如何在特使过滤器中使用 hcm 过滤器?
伙计们!我想通过使用 hcm 来分配出口流量,例如
www.xxx.com:8000(边车) -> clusterA(出口)
www.yyy.com:8000(边车) -> clusterB(出口)
休息请求(边车)-> 原始进程(出口)
匹配请求可以正确路由,但是不匹配请求怎么办?
不匹配的请求现在得到 404 响应。
我想在原始路径中处理不匹配的请求。
那么如何修改yaml配置来实现这个目标??有没有最佳实践?</p>