问题标签 [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 - Istio 请求身份验证 - 使用结果 404 获取 Cors
这是我的请求认证,
我的 AuthorizationPolicy 是这个,
下面帮助我排除没有有效令牌的健康路径(/user/ping)。
我的虚拟服务是
但是当检查时我可以看到只有健康 api 得到 200 其余的都得到 404,当检查浏览器时我看到了
从源“https://<>”访问“https://”处的 XMLHttpRequest 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:没有“Access-Control-Allow-Origin”标头存在于请求的资源上。
在虚拟服务中,我尝试添加“corsPolicy”,但没有任何效果。
示例虚拟服务尝试示例是
<<上面不是我们的例子,但我已经复制了,但我应用了我当前的环境,但仍然没有运气!任何人都可以帮助,为此奋斗一整天:)
istio - 配置 istio 目标规则以使用后备 URL 而不是 503
我知道您可以在服务没有响应时使用 istio 来打开断路器。除了返回 a 503
,是否可以重定向到不同的 URL?同样的问题,但是当原始服务返回 a500
时,我们可以重定向到另一个 URL 吗?
或者是否可以让istio 提供离线模式响应?我认为最简单的方法是通过 URL 重定向到离线模式服务URL,但对想法持开放态度......
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
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
istio - istio-ingressgateway LoadBalancer 在 AWS EKS 中显示“待处理”
我已经安装了一个私有 EKS 集群,其中附加的子网是私有子网。我的要求是“安装 Istio 的私有 EKS”并创建多个微服务并在 vpc 中公开它们。为了在 VPC 中公开它们,我预计“istio-ingressgateway”会创建一个内部 ALB,但它显示“待定”
我的需要是使用“NodePort”在不同的端口中安装多个微服务并通过网关公开它们。
在此请求任何帮助或查看。
谢谢!
http-headers - Istio 添加的 header 会不会太大?
安装 Istio 后,我的应用程序出现“请求标头太大”错误。Istio 添加的附加标头会不会太大?
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 调用,并通过部署上的注释关闭侧车注入。这并不理想。
谢谢
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 个节点。使用印花布。
如果您需要更多详细信息,请告诉我们。提前致谢。
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 可以更改。
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.