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

istio - 通过 Kubernetes 服务的域名配置到外部 HTTPS 代理(Squid)的流量

我已经关注了使用外部 HTTPS 代理的整个主题,指出它是基于 VIP 的示例,而不是 k8s 服务方法。但在我的情况下,Squid 可以通过 k8s 服务访问,我想使用 FQDN 而不是 VIP 地址。

我已经更改了配置删除addresses部分:

Squid Istio 服务入口:

externalns中的网格外部 Squid 部件:

鱿鱼荚:

鱿鱼k8s服务:

来自硬币的冰壶sleep

在 sleep sidecar 上给出结果:

其中 192.168.101.185 是 squid 服务 IP。

Envoy 报错说没有路由,但是找到了服务。缺少什么,出了什么问题?我感谢任何帮助或建议。

0 投票
1 回答
135 浏览

kubernetes - 使用 ISTIO 从客户端证书中提取信息

我计划使用 ISTIO 来实现服务网格并在服务之间使用 mTLS。

一些服务需要一些关于客户端的信息,比如来自客户端证书的 CN。

如何配置 ISTIO 从客户端证书中提取 CN 并将其插入自定义标头?

0 投票
0 回答
355 浏览

istio - envoy lua 过滤器 - envoy_on_response() 方法的授权标头

我有一个特使 lua 过滤器来拦截上游响应并从 lua 过滤器的“envoy_on_response”方法调用外部 api。我需要 envoy_on_response()" 协程中 request_handle 的 "授权" 值并将其传递给外部 api 调用。我目前正在做如下:

在特使文档中的某些地方,提到“envoy_on_request()”和“envoy_on_response()”都被称为协同程序,它们之间不应共享任何内容。所以,我的问题是,在“envoy_on_response()”中获取和传递“授权”标头的正确方法是什么?

谢谢。

0 投票
1 回答
99 浏览

kubernetes - Istio:无法将秘密挂载到 pod

我是 Istio 和 K8s 的菜鸟,如果这个问题听起来有点愚蠢,我很抱歉。

我正在尝试向网关部署提供我自己的证书,我为此创建了如下秘密。

编辑了我的部署

按照此处此处提供的步骤进行操作,但我仍然没有看到已安装的文件。

我错过了什么吗?

0 投票
2 回答
125 浏览

java - 作为 Pod 工作的 Java 容器不在 Job 中工作

我正在尝试使用包含 Java 工具的容器在 Kubernetes 作业中对 MySQL 数据库进行一些数据库迁移。

当我在 Docker 中本地运行容器时(使用同一网络中的 MySQL 容器),该工具按预期运行。如果我使用容器创建一个 Pod 并将命令参数设置为指向mysql在同一命名空间中运行的服务,它也可以。

但是,如果我将该 Pod 规范转换为作业,则创建的容器由于某种原因无法再连接到 MySQL 服务。

该容器基于amazoncorretto:8-al2-jdkJAR 并将其复制到/opt/.

MySQL DB 可通过mysql集群中的服务获得:

这些是 Pod 的规格:

将容器作为 Pod 运行:

这些是作业的规格:

将容器作为作业运行:

我没有看到正在创建的容器有任何显着差异。我唯一能想到的是某种字符编码问题,但我不明白为什么这只发生在为 Job 创建的 Pod 而不是直接创建的 Pod 中。

提前感谢您对此问题的任何帮助!

编辑:我忘了提到 Istio 在命名空间上处于活动状态,结果证明是导致问题的原因。

0 投票
0 回答
30 浏览

kubernetes - 启用 istio 时无法创建 redis 集群

命令执行“redis-cli --cluster create --cluster-yes --cluster-replicas 1 ...”没有成功。根据我的研究,它似乎与以下内容有关: https ://github.com/istio/istio/issues/5453

0 投票
1 回答
122 浏览

kubernetes - 如何设置 istio sidecar 生命周期

如何配置一些东西,以便注入的 istio sidecar 使用 sidecar 的最近 Kubernetes 容器生命周期?边车生命周期在这里这里讨论。更具体地说,是否有类似于sidecar.istio.io/inject: "true"CRD 中的注释或其他一些属性可以做到这一点?我正在使用 istio 1.6。谢谢你。

0 投票
1 回答
40 浏览

kubernetes - Istio-在路由前检查另一台主机

我想配置 istio gateways 虚拟服务以在将请求路由到某些主机之前检查“auth-service”主机。有什么选项可以配置这个吗?

0 投票
1 回答
98 浏览

kubernetes - 传出集群流量的 SSL 证书验证错误

错误描述

x.cmp.net/doc.pdf我的集群使用 Istio 和部署在网格中的服务 (java) 之一需要使用 http 和 443 端口连接到外部资源。此外部资源使用带有主题的受信任通配符证书 (DigiCert)*.cmp.netcmp.net. 当我尝试使用 openssl 验证(从应用程序容器)ssl 证书时,我正在获取Google 证书(?? istio 证书?):

应用程序是用java编写的,当应用程序尝试下载资源时:

我的配置:

我也有阻塞模式:

版本

附加信息

没有反应

0 投票
0 回答
211 浏览

go - 在 go 中解组嵌套的 GRPC 结构

我们想要解组(在 golang 中)一个 GRPC 消息并将其转换为 amap[string]interface{}以进一步处理它。使用此代码后:

我们得到以下结构:

字段TypedConfig保持编码的位置。我们如何解码这个TypedConfig领域?我们知道type_url并且我们知道value,但是要解组该字段,它必须是pbany.Any类型。但是因为TypedConfig结构是 a map[string] interface {},所以我们的程序要么编译失败,要么崩溃,抱怨它期待一个pbany.Any类型,但它却得到了一个map[string] interface {}.

我们有以下问题:

  1. 有没有办法将结构TypedConfig转换pbany.Any为随后可以解组的类型?
  2. 有没有办法递归解组整个 GRPC 消息?

编辑(提供有关使用的代码、模式/包的更多信息)

我们正在查看xds_proxy.go这里的代码:https ://github.com/istio/istio/blob/master/pkg/istio-agent/xds_proxy.go

此代码*discovery.DiscoveryResponse在此函数中使用了一个结构:

discovery.DiscoveryResponse(以及代码中使用的所有其他结构)的 protobuf 模式位于此文件的https://github.com/envoyproxy/go-control-plane/存储库中: https ://github.com/envoyproxy/go-控制平面/blob/main/envoy/service/discovery/v3/discovery.pb.go

我们在forwardToEnvoy函数中添加了代码来查看结构的整个未编组的内容*discovery.DiscoveryResponse

这很好用,除了现在我们有这些TypedConfig仍然编码的字段:

可视化TypedConfig字段内容的一种方法是使用以下代码:

但是代码变得非常复杂,因为我们有大量的结构,并且这些结构可以在消息中以不同的顺序出现。因此,我们希望通过使用来获得一种通用的方式来解组这些TypedConfig消息pbAny,从而解决我们的问题。