gpt4 book ai didi

kubernetes - 如何使用 Istio 创建服务别名?

转载 作者:行者123 更新时间:2023-12-01 14:19:25 24 4
gpt4 key购买 nike

根据Istio documentation ,VirtualServices 应该能够将请求路由到“与请求完全不同的服务”。我想使用此功能在不同的应用程序中为服务提供不同的别名。

我从这样的 VirtualService 定义开始:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: my-vs
spec:
hosts:
- my-alias
http:
- route:
- destination:
host: my-service

目的是网格中的客户端 pod 应该能够将请求发送到 http://my-alias并将它们路由到我的服务。将来我会用匹配规则扩展它,使别名对不同的客户端有不同的行为,但即使是简单的版本也不起作用。

如果没有其他设置,客户端无法通过 DNS 解析 my-alias。我可以通过添加一个名为 my-alias 的无选择器 k8s 服务来解决这个问题,这样它的 DNS 就可以解析了,但是 VirtualService 似乎没有进行重定向。如果我将 google.com 之类的外部主机添加到 VirtualService,那么它会成功地将任何对 google.com 的请求重定向到我的服务。使用完整的主机名 (my-alias.default.svc.cluster.local) 没有帮助。

所以看起来 VirtualService 不允许我重定向绑定(bind)到网格中另一个服务的流量。这是预期的吗?我有什么办法可以解决这个问题吗?

最佳答案

您必须重写请求的 authority(HOST header ),因为 Istio 中的 HTTP 路由是由 HOST header 执行的。

添加 HTTPRewrite http 子句的子句:


api版本:networking.istio.io/v1alpha3
种类:虚拟服务
元数据:
名称:my-vs
规范:
主持人:
- 我的别名
网址:
- 路线:
- 目的地:
主持人:我的服务
改写:
权限:我的服务

关于kubernetes - 如何使用 Istio 创建服务别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53731804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com