无法在 istio VirtualService 中使用主机“*-pim.webapi.com”和“pim.webapi.com”
Failed to use hosts `*-pim.webapi.com` and `pim.webapi.com` in istio VirtualService
我想为 *-pim.webapi.com
和 pim.webapi.com
配置路由策略。当将 yaml 应用到 k8s 时,它说两个主机是重复的。但我不认为它们是重复的,因为 *-pim.webapi.com
无法匹配 pim.webapi.com
。这是istio的错误还是我的错误?
VirtualService yaml 是:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: public-ingress
namespace: netops
spec:
hosts:
- "*-pim.webapi.com"
- "pim.webapi.com"
gateways:
- public-ingress
http:
- route:
- destination:
host: pim.default.svc.cluster.local
错误信息是
admission webhook "pilot.validation.istio.io" denied the request: configuration is invalid: duplicate hosts in virtual service: *-pim.webapi.com & pim.webapi.com
此错误消息的源代码在此处 https://github.com/istio/istio/blob/master/pilot/pkg/model/validation.go#L1602。但是对理解和解决我的问题没有任何帮助。
这看起来像是 Istio 中的错误。您引用的代码调用 this function 来确定主机是否匹配,在您的情况下它显然做错了事。
我会尝试使用一台主机 *pim.webapi.com
,看看是否可行。我不确定是否会,因为我认为通配符只能用于域名最左侧部分的完整值,即 *.webapi.com
,而不是 *pim.webapi.com
.
我想为 *-pim.webapi.com
和 pim.webapi.com
配置路由策略。当将 yaml 应用到 k8s 时,它说两个主机是重复的。但我不认为它们是重复的,因为 *-pim.webapi.com
无法匹配 pim.webapi.com
。这是istio的错误还是我的错误?
VirtualService yaml 是:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: public-ingress
namespace: netops
spec:
hosts:
- "*-pim.webapi.com"
- "pim.webapi.com"
gateways:
- public-ingress
http:
- route:
- destination:
host: pim.default.svc.cluster.local
错误信息是
admission webhook "pilot.validation.istio.io" denied the request: configuration is invalid: duplicate hosts in virtual service: *-pim.webapi.com & pim.webapi.com
此错误消息的源代码在此处 https://github.com/istio/istio/blob/master/pilot/pkg/model/validation.go#L1602。但是对理解和解决我的问题没有任何帮助。
这看起来像是 Istio 中的错误。您引用的代码调用 this function 来确定主机是否匹配,在您的情况下它显然做错了事。
我会尝试使用一台主机 *pim.webapi.com
,看看是否可行。我不确定是否会,因为我认为通配符只能用于域名最左侧部分的完整值,即 *.webapi.com
,而不是 *pim.webapi.com
.