问题标签 [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.
kubernetes - 两个不同网格之间的 gRPC 连接被重置
我有两个不同的集群(EKS,v1.18),它们有自己的网格(v1.9.0)。
我在集群 A 上有一个 Thanos 部署,在集群 B 上有一个 Prometheus 部署(也运行了 thanos sidecar)。目标是让 thanos 通过内部负载均衡器(ELB 经典)查询远程集群中的这些 sidecar,以代理对每个集群的查询(使用 S3 或类似的块持久性超出此问题的范围)
Gateway、Virtual Service 和 Service 的资源都在集群 B 中,我可以在连接到网络后在本地运行 Thanos,并使用 gRPC 成功连接到集群 B 中的 sidecar。
集群 B 的 FQDN 的 ServiceEntry 已在集群 A 中创建,解析有效,路由正确,但集群 A 中的部署无法连接到集群 B。
Istio sidecars(来自集群 A 中的源工作负载 Thanos)显示连接正在被重置:
我没有在集群 B 的入口网关中看到传入请求(我有一个公共的和一个私有的,我检查了两者以确保)。
我努力了:
- 使用 DR 强制将 http1.1 升级到 http2
- 使用 DR 强制禁用 TLS
- 排除私有 LB CIDR 范围以绕过代理
资源(A 组)
服务入口:
资源(B 组)
网关:
虚拟服务:
服务:
istio - Istio:当我启用 JWT RequestAuthentication 时,健康检查/sidecar 失败
过时的:
我保留这篇文章以供进一步参考,但您可以检查更好的诊断(尚未解决,但已解决)
Istio:RequestAuthentication jwksUri 不解析内部服务名称
更新:
在 Istio 日志中,我们看到了下一个错误。uaa 是一个服务于 OAUTH 身份验证/授权的 kubernetes pod。从普通服务中使用名称 uaa 访问它。我不知道为什么 istiod 找不到 uaa 主机名。我必须使用特定名称吗?(请记住,标准服务完美地找到了 uaa 主机)
原始问题
在将 istio sidecar 注入标准 kubernetes pod 后,我的服务运行良好。
我正在尝试添加 jwt 身份验证,为此,我正在遵循官方指南Authorization with JWT
我的问题是
- 如果我在注入 istio 依赖项之后创建 JWT 资源(
RequestAuthorization
和),一切(似乎)都可以正常工作AuthorizationPolicy
- 但是,如果我创建 JWT 资源(
RequestAuthorization
和AuthorizationPolicy
)然后注入 Istio,则 pod 不会启动。检查日志后,似乎边车无法工作(也许检查健康?)
我的代码:
- 智威汤逊资源
2-我使用目的地规则如下
3-我的服务部署
4- pod中的错误日志(结合服务和边车)
5- Istio 注入
注意:我在 SO 中检查了很多帖子,似乎健康检查会在 sidecar 和其他配置方面产生很多问题。我检查了 Istio 服务的健康检查指南,但没有成功。具体来说,我试图禁用sidecar.istio.io/rewriteAppHTTPProbers: "false"
,但情况更糟(在这种情况下,既不启动边车也不启动服务。
istio - 流量拆分是否需要 Istio 入口网关?
我有两个服务正在运行,它们通过 grpc 相互通信。
服务 B 通过常规 k8s 入口在 处公开example.com
,这就是服务 A 在看到请求时寻址 B 的方式。
我已经安装了 Istio 控制平面,并在 Service B 上启用了 sidecar 注入。
现在,我想在不同版本的服务 B 之间拆分流量。我部署了一个虚拟服务和目标规则,两者都使用<service_name>.<namespace>
格式而不是入口端点 ( example.com
) 引用服务 B,因为后者导致“服务未找到” Kiali 中的错误。不过,使用<service_name>.<namespace>
格式似乎可行。
问题是,我在虚拟服务中包含的加权流量拆分规则似乎没有生效。我想知道我是否需要一个入口网关而不是常规的 k8s 入口才能使其工作。如果没有,您还有什么建议让我解决问题?
提前致谢。
kubernetes - 对某些 url 的 Https 请求不起作用(ssl:wrong_version_number 错误)
我的平台版本:
- AWS EKS 1.18
- istio 1.7.3
您好,我在通过 https 请求时遇到问题。当我尝试在 ssl 上连接到“https://kinesis.ap-northeast-2.amazonaws.com”时,我收到 ssl3_get_record:wrong version number 错误。但是,对“https://www.amazon.com”的 SSL 请求正在运行。对“kinesis.ap-northeast-2.amazonaws.com:443”的 Http 请求也有效。仅供参考,对路由器代理上的 kinesis 的 https 请求也可以正常工作。我认为 Sidecar 代理会出现这个问题。你能告诉我如何解决吗?
我的调试日志:
端口 443 上的 http 请求测试:
我的 istio 代理配置:
我的边车代理容器规格:
我的网关容器规格:
kubernetes - 禁用 Istio 默认重试策略(至少在 POST 请求上)
我有一个使用 Istio 1.7.4 在 kubernets 上运行的应用程序(基于微服务)
微服务有自己的集成失败事务补偿机制。
但是当某些集成有 503 状态码响应时,Istio 正在重试请求。我需要禁用它(至少在 POST 上,这是非同质的)。
并让应用程序处理它。
但是我尝试了很多方法都没有成功。有人能帮我吗?
istio - Istio1.9 中的速率限制功能实现
我已经完成了 Istio 1.9 的初始设置并部署了 bookInfo 应用程序以复制 Istio 站点中提供的示例以进行速率限制。正如我们在应用程序中有实现速率限制的用例一样。我将 Istio 项目作为解决方案,但在运行 Istio 官方链接本身提供的 yaml 时面临挑战。
有人可以帮帮我吗?
https://istio.io/latest/docs/tasks/policy-enforcement/rate-limit/
特使 YAML
应用 envoy yaml 时出错:
kubernetes - k8s,Istio:删除传输编码头
在应用程序的响应中,我们看到双倍的传输编码标头。
假设因为我们在 UI 中得到 503,但同时应用程序在 pod 的日志中返回 201。
除了日志http code: 201
中有transfer-encoding=chunked
和Transfer-Encoding=chunked
标头,这可能是 503 的原因。
我们尝试transfer-encoding
通过 Istio 虚拟服务或特使过滤器删除,但没有运气..
以下是我们尝试过的示例:
VS定义:
EnvoyFilter 定义:
在较旧的特使版本中,我看到envoy.reloadable_features.reject_unsupported_transfer_encodings=false
是一种解决方法。不幸的是,它已被弃用。
请告知 VS/filter 有什么问题,或者是否有任何替代reject_unsupported_transfer_encodings
选项?
Istio v1.8.2
特使 v1.16.1
istio - Istio1.9 与虚拟机 (aws ec2) 的集成将主机文件设为空
我已经在 VM 中安装了 mysql 并希望安装了 istio 1.9 的 EKS 与他们交谈,我正在关注此https://istio.io/latest/docs/setup/install/virtual-machine/但是当我执行此步骤时生成的主机文件是空文件。我尝试使用这个空的主机文件,但是当使用此命令启动 vm 时,我得到了
当跟踪这个文件时
kubernetes - 如何从 fluentbit 中排除 istios side-car 容器日志
我需要从 fluentbit 中排除 istio 的 sidecar 生成的日志。在官方文档中,我设法找到的关于从 fluentbit 中排除日志的唯一内容是元数据部分中的注释,我认为这里不适合:
https://docs.fluentbit.io/manual/pipeline/filters/kubernetes#kubernetes-annotations
有人已经这样做了吗?
kubernetes - ext_authz 集群“x”不存在
我正在尝试使用 istio 进行 jwt 验证。我有一个带有标签 app=auth-verify 的应用程序在端口 3000 上运行,它有 1 个端点/auth
将检查授权标头。主应用程序有标签 app=backend 期望 auth-verify 应用程序验证 jwt 并添加 header x-authenticated
。下面是我的 EnvoyFilter 的 CRD。
当我检查后端 pod 上的日志时,kubectl logs --tail 1 -f backend-695cf5b89d-nkgps istio-proxy
我可以看到这个错误。
我怎样才能解决这个问题?