如何解决在整个集群中传播传入服务网格的标头
我已在 istio
集群上设置了启用 kubernetes
的微服务架构。
我的 istio-ingressgateway
由 Cloudflare 代理。
后者生成特定标头,即 cf-ray
以支持对与 cloudflare 相关的问题进行故障排除。
我的问题是如何启用我的服务网格,即在边缘(即 istio-ingressgateway
)和所有边车中传播 cf-ray
id 标头。
istio
关于 VirtualService
资源的文档,在关于 HeaderOperations
的 section 中,列出了 3 个可用操作,即 set
、add
和remove
。
add
和 remove
似乎与我要执行的操作更无关,但是 set
似乎也要求设置特定值。
我只想要一个传递/传播类型的操作,其中 istio
在看到 cf-ray
标头时会传递它
a) 在集群中(当它关于入口网关时)
b) 从每个 sidecar 到主容器(不用说,在这种情况下,主容器的应用程序有责任从那时起继续传播)
解决方法
您没有边车传播标题的问题,因为边车默认这样做。就像您必须在 Istio 中配置跟踪一样。您只需生成并传播一些标头,无需对边车做任何事情。
关于生成部分,其实你要使用的字段是add
。 set
将通过其他方式更改标头值(例如,您有 set
的 foo: bar
,如果您收到带有 foo: baz
的请求,它将设置为 {{1} })。另一方面,foo: bar
会将 add
添加到您的请求中。
关于如何让请求进入集群的部分,在边缘应该没有问题,通过cf-ray
你不用配置headers。所以,它只会传递给服务。
示例
Gateway
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。