问题标签 [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 投票
1 回答
251 浏览

istio - Traslate nginx 入口规则与片段到 Istio

我有一个 nginx 入口控制器并向他公开服务,我们计划将 Istio 更改为入口流量。

我有一个包含片段的入口规则:

这个入口将 http_x_forwarded_host 复制到主机并发送到 nginx 入口。

有什么想法可以将此规则转换为 istio?谢谢。

马可

0 投票
0 回答
253 浏览

kubernetes - Istio 入口网关中的 JWT 验证

在我的情况下,我在 istio ingress 中苦苦挣扎。

需求:我想在 ISTIO 入口网关中建立 JWT 验证。根据令牌中的某个键值,我想将其发送到特定的虚拟服务。

例如,如果我看到header-name="book-revision"我应该把它送去Book-revision服务

如果有人可以给我一个已经在 Istio ingress 中实现的代码片段,那就太好了。

0 投票
1 回答
868 浏览

kubernetes - 如何获得更多 Istio Running 的副本?

我正在尝试升级 Kubernetes 集群中的节点。当我这样做时,我会收到一条通知:

命名空间 istio-system 中的 PDB istio-ingressgateway 允许 0 个 pod 中断

PDB 是 Pod 中断预算。基本上, istio 是说它不能松开那个 pod 并保持一切正常。

在 Istio GitHub 问题上对此进行了很长时间的讨论。这个问题已经持续了2年多。大多数讨论都围绕着说默认设置是错误的。几乎没有解决方法的建议。但其中大部分是 1.4 之前的版本(以及 Istiod 的引入)。我能找到的可能与当前版本兼容的最接近的解决方法是向IstioOperator添加一些额外的副本。

我尝试了一个补丁操作(在 PowerShell 中运行):

在哪里istio-ha-patch.yaml

我应用了它,并检查了 IstioOperator 的 yaml,它确实适用于资源的 yaml。但是入口 pod 的副本数没有增加。(它保持在 1 of 1。)

此时,我唯一的选择是卸载 Istio,应用我的更新,然后重新安装 Istio。(呸)

有没有办法让 Istio 的入口网关的副本数增加,这样我就可以在滚动节点升级时保持它的运行?

0 投票
1 回答
78 浏览

kubernetes - Egressgateway enable 查看日志中的请求

我正在关注 istio 1.6文档示例

我已经部署了一个 ServiceEntry:

网关和目的地规则:

和虚拟服务:

教程中的所有内容,然后我运行:

但是,在第 6 步中:

我在日志中看不到任何内容,看起来流量没有通过 egressgateway。我做错了什么,我基本上遵循与教程相同的步骤

0 投票
1 回答
601 浏览

kubernetes - 使用 Isito Operator 设置 Ingress Gateway NodePort

我正在我的本地 Kubernetes 集群中配置 Istio。作为其中的一部分,我必须与我的系统管理员协调设置 DNS 和负载平衡器资源。

我在学习和设置 Istio 的工作中发现,我需要完全卸载它并重新安装它。 当我这样做时,Istio 将为 Ingress Gateway 选择一个新端口。 这需要我与系统管理员协调更新。

如果我可以强制 Istio 继续使用相同的端口会很方便。

我正在使用 Istio Operator 来管理 Istio。 有没有办法使用 Istio Operator 设置 Ingress Gateway 的 NodePort?

0 投票
2 回答
297 浏览

authorization - 在 istio 中处理用户授权

我有一个auth service检查 jwt 令牌的有效性req.headers.Authorization,并且我有另一个 API 服务来为customer实体执行 CRUD 操作,这将需要对所述 API 服务的每个请求都使用有效的 JWT。而这一切都被包裹在了里面kubernetes cluster + istio。我目前正在做的是这样的

  1. 客户端请求POST /customer使用 JWT 作为headers.Authorization
  2. 然后后端的POST /customerAPI 服务将auth service通过传递 JWT 来检查其有效性
  3. 如果它无效,则返回一些令牌错误响应
  4. 如果有效,则进行创建客户操作,并将数据存入数据库

虽然这工作正常,但我发现我auth checks在每个端点上重复这个,我当然可以在同一个服务上设置一个中间件,通过在传入请求到达controller.

我想知道是否有可能实现这种middleware方法,istio而不是把它写在服务本身上。

我想达到什么

  1. 客户端请求POST /customer使用 JWT 作为headers.Authorization
  2. istio sidecar(?)/ingress gateway捕获此请求,并将其发送(重定向)到身份验证服务以首先检查,然后再将其传递到其目的地
  3. 如果它无效,则返回一些令牌错误响应
  4. 如果有效,则将其传递到其原始目的地

istio 能做到这一点吗?我已经阅读了关于Authorization的 istio 文档,但我认为它没有解释我想要在这里实现的目标

0 投票
0 回答
75 浏览

google-cloud-platform - 从 Salesforce 通过 http 调用 Istio VirtualService

我们将 istio-ingress 与 Gateway 和 VirtualService 一起使用。Istio 已使用IstioOperator. Istio 在 GKE 的私有 VPC 中工作。入口流量来自 GCP 外部负载平衡器。

通过 curl 或一些可公开访问的 API 测试软件调用端点时,一切正常,例如

但是当从 Salesforce Apex 调用虚拟服务时:

那么响应如下:

我们不知道为什么要在响应中添加 X-Cache 和 X-Cache-Lookup(proxy-fra.net.salesforce.com:8080 当然不是我们的主机:端口)以及如何处理。我们不知道这是 salesforce 方面还是 istio 方面的问题。

任何想法?

0 投票
2 回答
901 浏览

istio - Istio 授权策略以排除同一命名空间中的某些应用程序

我需要在命名空间“默认”中设置授权策略,这应该检查标头拒绝访问中是否不存在 JWT 令牌。所以我设置了一个“不允许”的策略,如下所示。这将拒绝标头中没有有效令牌的所有请求。我想从此规则中排除同一命名空间中的一些应用程序。允许访问的应用程序需要位于相同的命名空间中。我可以创建这样的规则。对此的任何指示都会有所帮助。尝试了几件事,但无法使其正常工作。

编辑

这是我应用的更改notHostsnotMethodsnotPaths操作

当我应用此策略DENY操作时仍会触发。请注意在请求中我没有请求主体。这些是入口网关日志

0 投票
1 回答
323 浏览

kubernetes - 基于 Istio 入口网关子域路由

我有三个需要通过 istio 入口网关公开的服务,我已经将这些服务的 dns 记录设置为指向入口网关负载均衡器,但我没有成功使其工作。

网关和虚拟服务配置文件:

0 投票
0 回答
186 浏览

kubernetes - Microk8s 上的 Istio 没有路由

我试图通过 istio gateway 和 istio virtual-service 暴露 istio 的监控服务:grafana、prometheus、kiali 和 jaeguer 但没有成功

奇怪的是通过curl访问时返回页面,但是通过浏览器访问时网关找不到应用程序

我试过好几种方式,放到默认的nasmespace,放到istio命名空间,重新创建服务器

非常欢迎任何帮助

  • 环境

错误

  • yaml 配置
  • Istio 信息