如何将标头添加到从源Pod到目标Pod的每个请求中?

问题描述 投票:1回答:1

我正在尝试部署此处描述的BookInfo应用程序:https://istio.io/docs/examples/bookinfo/

而且,根据本教程,我正在根据标题“最终用户:jason”路由请求。 https://istio.io/docs/tasks/traffic-management/request-routing/

根据本教程,产品微服务会添加一个请求标头“最终用户:jason” 一旦您登录

我希望它在所有情况下都发送此标头。换句话说,对于所有从[[product微服务发出的请求,无论请求到达何处,我都希望附加此标头。

我该如何实现?

I want to achieve this

kubernetes istio
1个回答
0
投票
正如Anoop在评论中提到的,他想部署2个productpage应用程序

    第一个只会路由到审核v1
  • 仅第二条途径审核v2
  • 因此,我对istio docs中的productpage进行了快速测试,并且您必须配置虚拟服务和目标规则才能实现它。


    安装istio bookinfo

    部署和服务

    kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.5/samples/bookinfo/platform/kube/bookinfo.yaml

    网关和虚拟服务

    kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.5/samples/bookinfo/networking/bookinfo-gateway.yaml


    如上所述here

    在使用Istio控制Bookinfo版本路由之前,您需要在目标规则中定义可用的版本,称为子集。

    如果未启用双向TLS,请执行以下命令:

    kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.5/samples/bookinfo/networking/destination-rule-all.yaml

    如果您确实启用了双向TLS,请执行以下命令:

    kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.5/samples/bookinfo/networking/destination-rule-all-mtls.yaml


    然后只需添加您的虚拟服务

    您可以按照此example的方式使用每个微服务的v1,也可以仅查看v1。

    因此,对于每个要使用v1的微服务,它都是

    kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.5/samples/bookinfo/networking/virtual-service-all-v1.yaml

    仅用于评论v1

    apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: reviews spec: hosts: - reviews http: - route: - destination: host: reviews subset: v1

    这就是第一个productpage应用程序需要做的一切。


    第二产品页面应用

    您必须与第二个完全相同,这里唯一的更改是虚拟服务以匹配子集v2,当然,如果您想同时部署它们,我建议使用2个名称空间并将它们分开,在virtual中更改名称空间服务,部署,网关等。

    apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: reviews spec: hosts: - reviews http: - route: - destination: host: reviews subset: v2


    标题

    istio documentation中所述,您可以使用

    请求标头->在将请求转发到目标服务之前要应用的操作规则

    OR

    响应头->在将响应返回给调用者之前要应用的操作规则

    我不确定您需要什么,此example显示了如何向每个请求添加响应标头,您可以将其添加到虚拟服务中。在下面的示例链接中有关于它的更多信息。

  • © www.soinside.com 2019 - 2024. All rights reserved.