问题标签 [istio-sidecar]

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 回答
153 浏览

kubernetes - 处理与外部 Microsoft SQL VM 集群的连接的正确方法

我在我的 kubernetes 集群(1.19.1)中运行了一些 dotnet 核心微服务,它们都在运行 istio sidecar 代理(1.9.1),并且在调用连接到外部的微服务时,我看到了一些不稳定的连接行为SQL 集群。如果我查看边车日志,我可以在连接失败时看到:

istio 边车日志:

应用程序日志异常:

关于 SQL 集群的注意事项:在应用程序配置中,我们使用可用性组侦听器的 DNS 名称,例如 ag_listener.mydomain.com 来指向 HA SQL 集群。

这一切都在我们的 nonprod 中正常工作,我们也在其中运行 istio,尽管我们在 nonprod 中只运行一个 sql 实例。

目前,我确保将 outboundTrafficPolicy 设置为 ALLOW_ANY,但我仍然看到这种不稳定的连接行为。它不会一直发生,但它只是高度不一致。我的团队试图解决这个问题真的很痛苦。istio 上是否有适当的方法来处理与具有多个 IP 的 mssql 数据库集群的连接?谢谢你

addtl note:我尝试了以下 ServiceEntry 没有任何运气:

0 投票
1 回答
232 浏览

istio - 访问公司代理后面的外部 jwksuri

我是 istio 的新手,对配置请求身份验证策略有疑问。该策略使用一个 jwksuri,它是一个外部 URI。该策略应用于 istio-system 命名空间。当我应用此策略并执行

应用该策略的入口网关 LDS 被标记为过时。如果我删除此策略,网关将返回 SYNCED 状态。由于我们位于公司代理后面,因此似乎无法访问此 jwksuri。我创建了服务条目来访问像这样的外部 jwks uri

还尝试参考此文档https://istio.io/latest/docs/tasks/traffic-management/egress/http-proxy/创建另一个服务条目“配置到外部代理的流量”

但这不起作用。我应该如何在 Istio 中配置公司代理。

编辑这是 istiod 中的日志(请注意https://authorization.company.com/jwk是外部 url)

无法找到解决此问题的方法。截至目前,将 jwks 嵌入到 jwt 规则中。但这有一个问题,每当公钥密钥被轮换时。jwt 规则失败。这是一个代理问题,但不确定如何绕过

0 投票
2 回答
132 浏览

istio - 删除 Istio Sidecar 的报告指标

我将 Istio 1.8 用于服务网格,使用 Prometheus 从边卡收集指标。目前,这些指标由边卡提供:

这一数量的指标使用了大量的网络带宽。(我们有大约 5k 个 pod)

我们现在需要的只是istio_requests_total并且istio_request_duration_milliseconds_bucket仅来自Inbound。我知道如何删除标签,EnvoyFilter但我无法找到删除指标的文档。

0 投票
0 回答
337 浏览

kubernetes - 我想从 Istio 入口修改 http 响应代码和正文

我目前已在 Istio 的身份验证清单下方编写。

我从浏览器得到以下响应

RBAC: access denied

但不是这个,我想得到一个 Json 响应

带有状态码403 现在我尝试了下面的 Lua 过滤器

请用正确的片段指导我

0 投票
1 回答
454 浏览

istio - 如何将 AKS 中的 Istio 从版本 1.7 升级到 1.8

我对 ISTIO 很陌生,想澄清我的以下疑问。

我们计划在生产中的 AKS 集群 1.18.14 中将 Istio 版本从 1.7 升级到 1.8。

但是我不确定在生产中要遵循的正确升级方法,因为 Istio 提供了多种方法。

我不知道当前 Istio 设置是如何在我的环境中完成的,以及我们使用了哪些配置文件设置,因为它很久以前就完成了。可以理解以下是安装 istio 所遵循的步骤..


Istio 的安装方式如下:

  1. 创建的清单:

    istioctl manifest generate --set profile=default -f /manifests/overlay/overlay.yaml > $HOME/generated-manifest.yaml

  2. 安装的 istio:

    istioctl install --set profile=default -f /manifests/overlay/overlay.yaml

  3. 针对已部署的清单验证了 istio:

    istioctl verify-install -f $HOME/generated-manifest.yaml

是否有任何方法可以导出所有现有设置(当前正在运行的设置)并进行升级?

因此,我正在寻找一种生产就绪的方法来升级 Istio,并放置所有现有设置。

0 投票
0 回答
90 浏览

kubernetes - istio 的默认超时值

我有一项服务,我在其中添加了 5 分钟的延迟。因此,对该服务的请求将需要 5 分钟才能给出响应。现在我已经使用 istio v1.5 在 kubernetes 中部署了这个服务。当我通过入口网关调用此服务时,我会在 3 分钟内超时。

我尝试将虚拟服务中的超时设置为大于 3 分钟,但这不起作用。只有在虚拟服务中设置的小于 3 分钟的超时有效。

除了VirtualService,还有其他可以设置超时的配置吗?

3分钟(180s)是我们可以在VirtualService中设置的最大值吗?

0 投票
0 回答
43 浏览

kubernetes - 不同的 Istio 配置文件有什么区别?

我正在经历 Istio v1.8.6 的升级过程,其中提到了多个配置文件。

  1. installed-state.yml 文件 2) 清单文件。3)覆盖文件等。

我想了解每个文件的用例是什么,每个文件有什么区别以及可以在哪里应用。

当我们考虑从 Istio 1.7.3 升级到 1.8.6 时,这些将有助于将 istio 1.7..3 的自定义环境升级到 1.8.6,并使用 v1.7.3 中的所有现有设置。

  1. 我尝试使用从当前 istio 1.7.3 导出的 installed-state.yml,当我尝试将此作为标志传递给 v1.8.6 cananry 安装时,它失败并出现与“遥测”相关的多个错误。“策略” ETC..

  2. 当我们尝试升级 1.8.6 istio canary 时,是否可以使用与 V1.7.3 版本 tinstallation 相同的覆盖文件?

例如:./istioctl1.8 install --set revision=1-8 --set profile=default -f /tmp/overlay1-7-3.yaml 这将使所有自定义设置可用于默认配置文件 v1.7.3。 . 或者这会错过新控制平面中的任何配置或组件吗?

  1. 由于不建议安装状态 yaml 进行升级..覆盖文件会解决我的问题吗?

  2. 在 Overlay1-7-3.yml 中还为“telemetry”和“prometheus”启用了属性,这对 v1.8.6 不支持。因此,在这种情况下,从 overlay.yml 中删除 tjose 是可取的,否则它将从新的控制平面中删除这些组件?

0 投票
1 回答
188 浏览

kubernetes - 如何将 Istio 回滚到旧的控制平面,而不是完成金丝雀升级?

我们正在对我们的 Istio 设置从版本1.7.31.8.6版本的 Canary 升级进行测试。

因此,我们1-8-6为 istio 控制平面安装了金丝雀版本,并将一个命名空间映射到升级版本。我们测试了应用程序,得到了 200 个响应。

到目前为止,一切都按预期工作。所以为了尝试回滚,我们只是去了文档,但是关于回滚的步骤还不够清楚。

在此处输入图像描述

这里重装网关的方法是什么?我们使用istioctl覆盖和默认配置文件进行v1.7.3安装。那么,如何重新安装网关?

卸载金丝雀版本后,入口网关 pod 被删除,我们的应用程序因500错误而停机。

所以想弄清楚从金丝雀版本回滚到以前安装的版本的确切过程。但是由于一些问题,我们想回滚到以前的版本。

0 投票
0 回答
10 浏览

envoyproxy - 有什么方法可以禁用 istio envoy 代理(zipking)做出的采样决策?

有什么方法可以禁用 istio envoy 代理(zipking)做出的采样决策?

0 投票
2 回答
1283 浏览

kubernetes - Kubernetes postStart 生命周期总是失败

尝试使用 postStart 生命周期解决 pod 之间的依赖关系。

用例:微服务A应该在微服务B启动后启动。

为此,我们添加了一个容器(curl),它将使用 curl 命令检查相关服务是否已启动。

但是当我们在 postStart 生命周期钩子中添加任何命令时,Pod 会不断重启并进入 crashlookbackoff 状态

部署.yaml:

注意:不使用 init-container 的原因:因为我们使用严格的 MTLS 策略实现了 Istio。https://github.com/istio/istio/issues/32039

在互联网上搜索此问题时在下面找到。 在此处输入图像描述