首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

K8S:使用Istio路由返回404

K8S是指Kubernetes,是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它提供了一个可靠的、可扩展的平台,用于在集群中运行和管理容器化应用程序。

Istio是一个开源的服务网格平台,用于连接、管理和保护微服务。它提供了流量管理、安全性、可观察性等功能,可以与Kubernetes集成,为应用程序提供更强大的网络控制能力。

当使用Istio进行路由配置时,如果返回404错误,可能有以下几个原因:

  1. 路由规则配置错误:在Istio中,路由规则用于定义流量的转发规则。如果路由规则配置错误,比如目标服务不存在或路径匹配错误,就会导致返回404错误。解决方法是检查路由规则配置,确保目标服务和路径配置正确。
  2. 服务未部署或未启动:如果目标服务未部署或未启动,Istio将无法将流量转发到该服务,从而导致返回404错误。解决方法是确保目标服务已经成功部署并且正在运行。
  3. 网络连接问题:如果存在网络连接问题,比如目标服务的网络不可达或网络延迟过高,Istio将无法将流量正确转发到目标服务,从而导致返回404错误。解决方法是检查网络连接是否正常,并确保网络延迟在可接受范围内。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云容器服务(Tencent Kubernetes Engine,TKE):https://cloud.tencent.com/product/tke
  • 腾讯云微服务网格(Tencent Service Mesh,TSM):https://cloud.tencent.com/product/tsm

腾讯云容器服务(TKE)是腾讯云提供的一种高度可扩展的容器管理服务,可帮助用户轻松部署、管理和扩展容器化应用程序。它与Kubernetes紧密集成,提供了稳定可靠的容器运行环境。

腾讯云微服务网格(TSM)是腾讯云提供的一种全托管的服务网格平台,基于Istio构建。它提供了流量管理、安全性、可观察性等功能,可帮助用户更好地管理和保护微服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

istio 问题排查: 使用 apollo 的 java 应用启动报 404

本文摘自 istio 学习笔记 问题描述 项目中使用了 apollo 插件,在非 istio 环境正常运行,但部署到 istio 后启动报类似如下错误: Sync config from upstream...表示请求 apollo 的 config service 返回 404 了。...然后走到 RDS 规则进行路由路由时会匹配 hosts,hosts 列表中列举了所有可能的 service 地址 (没有 Pod IP),如果都匹配不到就会返回 404。...问题原因 由于请求 apollo 的 config service 时,Host 没有使用 service 地址,而是直接使用了 PodIP:Port,所以 RDS 匹配时找不到相应 hosts,就会返回...),从而导致请求 config service 时没有将其 k8s service 地址作为 Host,最后 hosts 匹配不到返回 404

1.6K71

istio-in-action - 08 VirtualService 使用 header 重写路由

istio 中, 除了 path 之外还可以使用 Header 进行路由规则管理。 为了更好的展示 header 路由效果, 这里配合使用了 uri 的精确匹配模式。...实现之后, 只能访问地址 http://istio.tangx.in/ , 其他均为 404。具体哪个服务应答, 完全根据 header 匹配选择。...效果如下: 使用 Header 匹配有几个必要条件 Header 的 key 只能包含 小写字母 和 连字符 -。 从实际测试中来看。这个规则只是一个 建议。...使用 驼峰(SrvReview) 时依旧可以转发。 Header 的 value 大小写敏感。 如果 Header 的值为 空, 则只检测 key 是否存在。 将 key 的匹配 值 设置为 空。...: x-prod # 使用 前缀模式 uri: # 为了更好的展示 header 路由

72330

(译)在 Istio使用 Opentracing Baggage 进行传播和路由

除此之外,这一架构的智能路由功能还把金丝雀发布以及类似功能大大的简化了。 接下来的内容会探讨一下,Istio 路由规则是如何使用 Opentracing Baggage 的。 ?...Istio 缺省使用的 B3 传播是没有提供 Baggage 头的。但是可以用 Brave(Zipkin 的 Java 客户端)来配置 Baggage 支持。...一般会使用 baggage-key:value 的格式。Jaeger 实现了一个 B3 解码器,也用同样的格式来处理 Baggage。可以在这里查看 B3 Baggage 实现的进度。...最后一个需要完成的任务就是定义一个识别 Baggage Header 的路由。...下面的路由定义会查看请求是否包含了带有 user-agent:Safari 条目的 Baggage,如果有,就进行转发: apiVersion: config.istio.io/v1alpha2 kind

1.2K20

Knative通过外部域名访问集群内服务

#0 to host 10.190.16.26 left intact 可以看到都无法正常返回,通过域名访问的时候返回了426,通过IP:PORT访问的时候返回404。..."1"问题就解决了,即**ISTIO_META_HTTP10: '"1"'** 404 Not Found 这个问题就涉及到VirtualService了,简称vs,在介绍vs之前我们先大致过一下knative...了解源码也是必须的,说到源码,只能感叹knative的源码要比k8s的源码封装的好太多了,其中一个原因也使得益于k8s提供的丰富的扩展机制:crd、operator、informer、webhook等。...回到正题,网路路由能力我们选择的是istio,我们大致分两种类型的资源进行介绍,和网络有关的 vs 和网络无关的 和网络无关的资源创建流程 ksvc --> configuration --> revision...knative中很多类型的属性并没有在上层暴露,导致无法直接使用ksvc进行管理,要么改源码,要么自己负责管理原本由ksvc统一管理的组件,虽然更加灵活,但是使用成本也更高,违背ksvc设计的初衷 通过此次问题排查

1.3K20

istio 常见异常分析

Service 端口命名约束 istio 支持多平台,不过 Istiok8s 的兼容性是最优的,不管是设计理念,核心团队还是社区, 都有一脉相承的意思。...但 istiok8s 的适配并非完全没有冲突, 一个典型问题就是 istio 需要 k8s service 按照协议进行端口命名(port naming)。...请求中断分析 请求异常,到底是 istio 流控规则导致,还是业务应用的返回,流量断点出现在哪个具体的 pod?...用户服务监听地址限制 异常描述 如果用户容器中业务进程监听的地址是具体ip (pod ip),而不是0.0.0.0, 该用户容器无法正常接入 istio,流量路由失败。...如果业务方认为改造难度大,可以参考之前分享的一个解决方案:服务监听pod ip 在istio路由异常分析

3.6K62

Service Mesh在接入层流量管理的应用

:基础流量管理 要求接入层具有基于流量内容路由的能力(最基础的服务发现能力) 方案一:Load Balancer + NodePort 在容器化的早期阶段,应用同时部署在虚拟机和 k8s 集群上,很多用户会使用原有负载均衡...CRD 配置更灵活易用,下面介绍如何使用 Istio VirtualService 配置灰度发布路由规则 方案一:基于权重 这种方案是配置成本最低的一个方案,很简单,基于k8s的service进行路由流量...CIDR} Istio 1.9 增强了对 AuthorizationPolicy 对于对接外部鉴权系统的支持,可配置 Ingress Gateway 按照外部鉴权系统返回的结果放通或拒绝流量。...Istio 对流量管理模型提供了更高程度的抽象,可以直接使用 Istio API 实现更灵活的流量管理能力,实现灰度发布,跨集群路由,地域感知等高级特性 Istio Ingress Gateway 基于...,在 k8s 中不存在 sub-zone 的概念,Istio 使用节点的 topology.istio.io/subzone 标签来定义 sub-zone 如果使用云厂商托管的 k8s 服务,节点的 Region

45641

腾讯云TKE Mesh 实践

这时候网格里的服务还无法被外网访问到, 我们还需要对网格边缘流量进行配置. 2.4 创建 ingress gateway Istio 使用 Gateway 定义网格边缘的流量行为, 对比原生的k8s ingress..., k8s ingress 依赖云平台解析和实现ingress rule, 同时k8s ingress rule只能定义简单的七层路由规则和virtual host....而Istio Gateway资源本身可以配置L4-L6的功能,例如暴露的端口,TLS设置等;同时Gateway可以和绑定多个VirtualService,在VirtualService 中可以配置七层路由规则...Istio Gateway默认使用和数据面相同的代理envoy实现, 这使得2者的配置完全统一, 因此Gateway也具有其他高级的流控功能. istio gateway 仅是一个描述边缘流控的CRD,...(图中蓝色备注) 调用users服务返回错误, 经查是因为业务查询不到输入用户, 返回404. ---- 6.

1.5K54

istio-in-action - 06 使用 DestinationRule Subset 进行路由分组(版本控制)

使用 subset 实现路由控制 但是在一些特定的环境下,需要对路由或者流量进行精确的认为控制。这个时候就需要对后端服务进行 分组 处理。 这个时候就可以使用 istio 的 subset 功能。...使用 流量权重 实现分组 在 同一个 路由规则下, 可以使用 权重模式 , 将流量分发到不同的后端 subset 组中。 注意: 权重值的总和必须是 100 。...使用 路由重写 实现分组 路由重写 只是路由分组其中一个小的分支。同样还可以使用 header, queryParams 参数。逻辑都是类似的。...还是在 DestinationRule 中, 流量的目的地址都是 k8s service。...注意: 这里的 k8s service 指的是在 istio 以外能满足 FQDN --- # DestinationRule apiVersion: networking.istio.io/v1alpha3

60240

Service Mesh - Istio流量控制篇(上)

中的服务名称,k8s平台的dns机制可以解析出具体的服务地址 subsets: # 定义子集,对应该服务的三个版本,虚拟服务就是根据在这里定义的子集来路由对应的版本的 - name: v1...,转发给网格内的服务 配置对外的端口、协议与内部服务的映射关系 Istio中的Ingress网关控制入口流量,Egress网关控制出口流量,在网关只定义入口点不定义具体的路由k8s中的Ingress...一样,Istio中的Gateway也只是一种资源,需要配合一个真正工作的组件使用,在k8s中通常是ingress-nginx,在Istio中则是基于envoy的istio-ingressgateway...404: ?...客户端语言 实践基于权重的路由Istio中我们可以配置基于权重的路由,将请求按比例路由到对应的服务版本来实现灰度发布的效果。接下来我们利用 reviews 服务的多版本,模拟灰度发布。

1.4K10

Istio 的高级边缘流量控制(一)

本文将会通过 Egress Gateway 来引导 Istio 的出口流量,与 Istio 出口流量的 TLS 任务中描述的功能的相同,唯一的区别就是,这里会使用 Egress Gateway 来完成这一任务...此处的返回结果应该与 Istio 出口流量的 TLS 中没有配置 TLS 发起的情况下的返回结果相同。 3....可以看到流量经过该 Listener 之后被转交给 RDS http.80,由于此时我们还没有创建 VirtualService,所以 RDS http.80 中不会包含任何有意义的路由,它会直接返回...404 状态码。...如果该参数设置为 true且路由指向了不存在的集群,则不会加载该路由表;如果该参数设置为 false 且路由指向了不存在的集群,则会继续加载该路由表,最后找不到路由返回 404

1.6K20

在生产中使用Istio,我们学到了什么?

控制平面负责管理和配置代理来路由流量,此外,控制平面还配置 Mixer 以实施策略和收集遥测数据。 ? Istio有几大块功能,首先是流量控制,这个基本上是通过Istio里的pilot组件来实现的。...Istio还提供了类似k8s rbac的权限实现方式。...我们原来使用独立的微服务作为开关,来判断是否加载新功能。在新的功能代码外层加上调用该微服务的代码,根据返回值来判断是否执行新功能代码,上线完成后再把开关代码删掉,的确有点麻烦。...K8s service里声明的port都必须包含name字段,根据使用的协议name的格式有一定的规则。...Istio的错误注入功能很容易模拟返回错误的状态码,增加请求返回的延迟。 在安全上线方面,在生产环境同时发布新、老版本,通过拓扑图和调用链的数据,来观测新版本是否可以正常工作。

60250

六, 跨语言微服务框架 - Istio Ingress和Egress详解(解决Istio无法外网访问问题)

Ingress(入口网关) Istio的网关运行配置路由规则以及流量如何进入到集群中,我们使用httpbin来作为实验项目 >kubectl apply -n istio-test -f istio-1.0.3...流入流量的流量路由使用 Istio 路由规则进行配置,与内部服务请求完全相同。 让我们看看如何为 Gateway 在 HTTP 80 端口上配置流量。...所有其他外部请求将被拒绝,并返回 404 响应。 请注意,在此配置中,来自网格中其他服务的内部请求不受这些规则约束,而是简单地默认为循环路由。...-o jsonpath={.items..metadata.name}) # 尝试访问(访问任何外部地址都会出现404) > kubectl exec -n istio-test -it $SOURCE_POD...通过 ServiceEntry 访问外部服务的流量,和网格内流量类似,都可以进行 Istio 路由规则 的配置。

3.8K20
领券