Kubernetes k8s/istio-什么';s是服务之间HTTP缓存的替代方案,而特使不';你不支持吗?
我正在寻找Kubernetes中服务之间可缓存数据的快速HTTP响应 因为我的应用程序已经是容器本机的,所以我不想在我的应用程序中编写缓存逻辑,也不想通过缓存库编写。这些应用程序主要关注业务逻辑 我搜索了如何在服务之间配置缓存,但没有找到任何Istio配置来实现这一点,只是特使存储库和这些正在进行的相关PRs中存在一个问题:,还有这个和这个 在问题页面的第一条评论中,有人提到他们正在使用Nginx作为代理来缓存一些API调用。但我不知道这是否是正确的选择Kubernetes k8s/istio-什么';s是服务之间HTTP缓存的替代方案,而特使不';你不支持吗?,kubernetes,istio,envoyproxy,Kubernetes,Istio,Envoyproxy,我正在寻找Kubernetes中服务之间可缓存数据的快速HTTP响应 因为我的应用程序已经是容器本机的,所以我不想在我的应用程序中编写缓存逻辑,也不想通过缓存库编写。这些应用程序主要关注业务逻辑 我搜索了如何在服务之间配置缓存,但没有找到任何Istio配置来实现这一点,只是特使存储库和这些正在进行的相关PRs中存在一个问题:,还有这个和这个 在问题页面的第一条评论中,有人提到他们正在使用Nginx作为代理来缓存一些API调用。但我不知道这是否是正确的选择 有没有一种更简单的方法来实现网格中的HT
有没有一种更简单的方法来实现网格中的HTTP缓存 最近,我们开发了一个使用istio和golang缓存服务到服务通信的解决方案 该解决方案称为“反向代理侧车缓存” 基本上,您可以在pod中部署另一个容器(即缓存容器)。您还可以通过istio的VirtualService为pod配置路由规则。您在VirtualService中指定的请求首先进入缓存容器,它会检查缓存存储并返回响应(如果存在数据),否则会将请求代理到应用程序容器 整体设计如下所示: 例如,这里有一个istio VirtualService yaml,它将所有get请求路由到缓存容器(在9191端口上运行): 在这里你可以找到我们写的关于它的文章:
这是项目存储库:特使团队已经合并了相关的PRs,但当时似乎还不能完全使用(例如,使用redis)。
存在一个
SimpleHttpCache
,但它尚未准备好生产:
介绍:
Istio目前不支持HTTP内容缓存。正如你在问题中提到的,Nginx用于此。您可以查看nginx以了解更多信息。也是一种常见的反向缓存proxy@PiotrMalec说,你可以使用nginxcaching@ethanxyz_0这些评论回答了你的问题吗?你还有这个问题吗?@matt_j不太可能。特使缓存筛选器已合并,但当时不完全可用。我最终直接在应用程序中对redis访问进行了编码
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: foo
spec:
gateways:
- foo-gateway
hosts:
- foo
http:
- match:
- method:
exact: GET
route:
- destination:
host: foo
port:
number: 9191
- route:
- destination:
host: foo
port:
number: 8080