问题标签 [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 回答
389 浏览

kubernetes - Istio 请求身份验证 - 使用结果 404 获取 Cors

这是我的请求认证,

我的 AuthorizationPolicy 是这个,

下面帮助我排除没有有效令牌的健康路径(/user/ping)。

我的虚拟服务是

但是当检查时我可以看到只有健康 api 得到 200 其余的都得到 404,当检查浏览器时我看到了

从源“https://<>”访问“https://”处的 XMLHttpRequest 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:没有“Access-Control-Allow-Origin”标头存在于请求的资源上。

在虚拟服务中,我尝试添加“corsPolicy”,但没有任何效果。

示例虚拟服务尝试示例是

<<上面不是我们的例子,但我已经复制了,但我应用了我当前的环境,但仍然没有运气!任何人都可以帮助,为此奋斗一整天:)

0 投票
1 回答
387 浏览

istio - 配置 istio 目标规则以使用后备 URL 而不是 503

我知道您可以在服务没有响应时使用 istio 来打开断路器。除了返回 a 503,是否可以重定向到不同的 URL?同样的问题,但是当原始服务返回 a500时,我们可以重定向到另一个 URL 吗?

或者是否可以让istio 提供离线模式响应?我认为最简单的方法是通过 URL 重定向到离线模式服务URL,但对想法持开放态度......

0 投票
1 回答
436 浏览

kubernetes - gRPC 节点微服务与 istio 网格中的另一个微服务通信

我已经通过 Istio 在我的 k8s pod 中部署了几个 gRPC 微服务,位于处理 Web 客户端路由的网关后面。当我需要从客户端(浏览器)向这些服务中的任何一个发送 RPC 时,一切都很好。

我现在想直接从服务 B 调用服务 A。我该怎么做呢?

两个服务器如何实例化的代码:

服务帐户与 GOOGLE_APPLICATION_CREDENTIALS 和我的部署 YAML 中的机密一起使用。

要从服务 B 调用服务 A,我认为服务 B 中的代码如下所示:

这很天真吗?我不确定的一件事是实例化客户端时需要传递的凭据。我收到投诉说我需要通过 ChannelCredentials,但我尝试创建这些凭据的每一种机制都没有奏效。

我意识到的另一件事是 0.0.0.0 不可能是正确的,因为每个服务都在自己的容器中,并与 sidecar 代理配对......那么我如何正确路由 RPC 并附加正确的凭据?

我正在尝试以这种方式构建信用:

我神秘地得到以下错误堆栈:

这很奇怪,因为 channelCreds 是一个 ComposedChannelCredentialsImpl,实际上它扩展了 ChannelCredentials

0 投票
0 回答
449 浏览

kubernetes - 使用 RBAC 为上游和下游配置 Istio 入口网关

istio 入口网关有问题。我们为进入网格的流量配置了 SIMPLE tls 模式的网关。但我们也希望 istio 入口网关通过 mTLS 与应用程序服务(使用 istio-proxy sidecar)通信。配置虚拟服务,以便将来自白名单主机的请求导航到处理命名空间中的服务。istio 入口 pod 位于 istio-system 中(没有 istio-proxy sidecar)。gateway 和 istio ingress gateway pod 也在 istio-system 中。我们希望将 RBAC 应用于处理命名空间工作负载,如下所示 -

处理和 istio 系统的对等身份验证策略是许可模式下的 mTLS。istio-system 中的目标规则-

但这没有按预期工作。当从 istio 入口网关 pod 卷曲到处理命名空间中的工作负载时,来自工作负载 pod 的 istio-proxy 容器的日志 -

我们应该如何为下游配置 SIMPLE TLS 和 ISTIO_MUTUAL 以连接网关对象上的上游?istio ingress gateway 也有 mTLS 身份。但在日志中,我看到 ssl: None。我真的不明白为什么。有人遇到过这种问题吗?

编辑的 curl 命令输出

身份验证策略

网关.yaml

虚拟服务.yaml

协议.yaml

0 投票
1 回答
880 浏览

istio - istio-ingressgateway LoadBalancer 在 AWS EKS 中显示“待处理”

我已经安装了一个私有 EKS 集群,其中附加的子网是私有子网。我的要求是“安装 Istio 的私有 EKS”并创建多个微服务并在 vpc 中公开它们。为了在 VPC 中公开它们,我预计“istio-ingressgateway”会创建一个内部 ALB,但它显示“待定”

我的需要是使用“NodePort”在不同的端口中安装多个微服务并通过网关公开它们。

在此请求任何帮助或查看。

谢谢!

0 投票
1 回答
305 浏览

http-headers - Istio 添加的 header 会不会太大?

安装 Istio 后,我的应用程序出现“请求标头太大”错误。Istio 添加的附加标头会不会太大?

0 投票
0 回答
81 浏览

azure - 有没有办法在 azure 上的虚拟节点中运行 Istio sidecar?

我在 Azure 上有一个启用了虚拟节点的 AKS 集群(virtual-kubelet/azure-aci v1.3.2),它工作正常(有点不稳定,但大部分都可以工作)。我的问题是,一旦我在我想在虚拟节点上运行的任何部署上启用 istio sidecar 注入,istio-proxy sidecar 就不会启动,从而阻止整个 pod 启动。我认为问题在于 virtual-kubelet/azure-aci 尚不支持 v1:status.podIP,而 istio sidecar 规范使用了它。

有人遇到过这个问题吗?我在 googlez 上找不到关于 istio + virtual kubelet 的任何信息。

我暂时解决了这个问题,方法是在一个依赖项上使用 PERMISSIVE mtls 模式,它依赖于能够进行 http 调用,并通过部署上的注释关闭侧车注入。这并不理想。

谢谢

0 投票
2 回答
637 浏览

kubernetes - 启用 Istio sidecar 后,Rook Ceph pod 无法正常启动

启用 istio sidecar 后,我们在 Kubernetes 中部署 rook-ceph 时遇到问题。问题是 OSD 没有出现,因为 crashcollector 没有正确初始化。如下图卡住了。

当我们在这个 pod 上执行 kubectl describe 时,我们会遇到以下问题:

还注意到没有创建秘密“rook-ceph-crash-collector-keyring”。

经过大量调试后,注意到“mon” pod 无法通过服务端点访问。但所有其他通信,如 Kubernetes API、其他命名空间中的其他服务等都运行良好。

当我们执行到“mon”pod 并执行 curl 时,如果我们使用它连接的主机名。

但使用服务名称不起作用

在 rook-ceph-operator 日志中也注意到,有一些潜在的线索表明没有让 mons 进入 quorum。

看起来 mons 不再可以通过服务端点访问,这使得整个初始化过程卡住了。

以下是在 rook-ceph 命名空间下运行的服务。

其他注意事项: Wee 使用所有最新版本的 istio、rook-ceph 等。集群是使用 Kubespray 创建的,在 Ubuntu bionic 上运行,具有 3 个节点。使用印花布。

如果您需要更多详细信息,请告诉我们。提前致谢。

0 投票
0 回答
97 浏览

istio - 使用 envoy,在 nginx 中使用集群 IP 和 fqdn 作为 proxy_pass 的地址有什么不同?

我正在尝试在 Kubernetes 1.20.2(本地)上测试 Istio 1.9

首先,当 Nginx proxy_pass 有 fqdn 的服务用于 tomcat 部署时

虽然显示 404 错误,但它不起作用,我在 Nginx pod 中的 tcpdump 中找不到任何指向 tomcat 的 tcp 数据包。

其次,如果我将proxy_pass中的fqdn改为clusterIP或tomcat pod的pod IP,效果很好。

最后,如果我删除注入到 nginx 中的 istio sidecar(envoy),它可以与 proxy_pass 中的 fqdn 一起使用。

在这种情况下,当 fqdn 与 envoy 一起使用时,为什么 proxy_pass 不起作用?带有特使的 Nginx 是否有任何必需的配置?

我可以预期 fqdn 是常用的,因为 clusterIP 可以更改。

0 投票
2 回答
1061 浏览

istio - Istio Sidecar to retry on specified status codes (503)

By default, if we don't define any VirtualService, Istio will generate something like the following Envoy route/retry configuration:

But if we specify our own VirtualService, e.g.:

The generated config will look like:

Notice that the retriable_status_codes is missing.

For the default, looks like it's defined in https://github.com/istio/istio/blob/1.9.0/pilot/pkg/networking/core/v1alpha3/route/retry/retry.go#L38-L39. But there is no option/field to configure retriable_status_codes via VirtualService.

How could we define the retriable_status_codes in Istio?

Update #1: My Istio version is 1.6.9. But if any newer version can support it, it's also appreciated.