Kubernetes 从入口迁移到istio时找不到404
我正在尝试从入口迁移到istio网关+虚拟服务路由,但我一直收到一个Kubernetes 从入口迁移到istio时找不到404,kubernetes,istio,gateway,Kubernetes,Istio,Gateway,我正在尝试从入口迁移到istio网关+虚拟服务路由,但我一直收到一个404notfound错误 应用程序应该访问的唯一链接是使用本地配置的my todos.com 我错过了什么 注意:入口控制器工作正常。最初,istio.yaml文件中的todo-lb.default.svc.cluster.local刚刚设置为todo-lb,表示配置的负载平衡器,但仍然没有成功 以下是ingres.yaml文件(要从中迁移): 以下是istio.yaml文件(要迁移到): 从我看到的情况来看,您的虚拟服务中的
404notfound
错误
应用程序应该访问的唯一链接是使用本地配置的my todos.com
我错过了什么
注意:入口控制器工作正常。最初,istio.yaml
文件中的todo-lb.default.svc.cluster.local
刚刚设置为todo-lb
,表示配置的负载平衡器,但仍然没有成功
以下是ingres.yaml
文件(要从中迁移):
以下是istio.yaml
文件(要迁移到):
从我看到的情况来看,您的虚拟服务中的网关配置错误,这就是它可能无法工作的原因
如果网关与虚拟服务不在同一名称空间中,则必须在虚拟服务中指定该名称空间 检查
spec.gateways
部分
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: bookinfo-Mongo
spec:
gateways:
- some-config-namespace/my-gateway # can omit the namespace if gateway is in same
namespace as virtual service.
这是有关联的
因此,请将todo istio网关移动到默认名称空间 或使用
gateways:
- istio-system/todo-istio-gateway
如果这不起作用,则需要检查以下几点:
- 您的应用程序是否部署在默认命名空间中
- 你的应用程序是什么
- 除了@Jakub answer,还有一个原因可以导致404错误。您当前在虚拟服务中的入口规则如下所示:
主机名
路径
路线
my-todos.com
/
转发到todo-lb.default.svc.cluster.local
my-todos.com
/原料药
转发到{{.Values.api.apiName}
你好,雅库布!是的,该应用程序部署在默认名称空间中,并且已启用
istio injection=enabled
@DragoșBocancea您可以添加您的部署和服务依赖项吗?http和https都不工作?同样正如Malathi提到的,istio入口网关日志中是否有任何内容?我已经删除了第二个虚拟服务,其中包括/api
前缀,并按照Jakub的建议添加了网关:-istio系统/todo istio网关
,但是没有成功。可能是您可以在istio系统
名称空间中检查istio入口网关吊舱的日志?
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: bookinfo-Mongo
spec:
gateways:
- some-config-namespace/my-gateway # can omit the namespace if gateway is in same
namespace as virtual service.
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: my-gateway
namespace: some-config-namespace
gateways:
- istio-system/todo-istio-gateway