- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
帮助!
我正在使用 Istio 在 Kubernetes 中设置服务网格。虚拟服务定义将流量路由到所需的服务:
(...)
http:
- match:
- uri:
prefix: /drill/
rewrite:
uri: /
route:
- destination:
host: drill-service.drill.svc.cluster.local
port:
number: 8047
但是,调用入口点时
https://<HOST>:<NODEPORT_INGRESS_GW>/drill
我确实看到了 HTML 页面,但 URL 已损坏且 CSS 表未正确加载。原因是 HTML 源代码指向了错误的目标:
li><a href="/storage">Storage</a></li>
代替
li><a href="/drill/storage">Storage</a></li>
我该如何解决这个问题?
谢谢,
马特
最佳答案
当您使用 rewrite 时您需要在虚拟服务中为您的依赖项(如 css 和 js)添加路径。
@Rinor here 很好地解释了重写的整个过程以及应该如何配置它.
这Istio in practise tutorial也解释的很好。
Let’s break down the requests that should be routed to Frontend:
Exact path / should be routed to Frontend to get the Index.html
Prefix path /static/* should be routed to Frontend to get any static files needed by the frontend, like Cascading Style Sheets and JavaScript files.
Paths matching the regex ^.*.(ico|png|jpg)$ should be routed to Frontend as it is an image, that the page needs to show.
http:
- match:
- uri:
exact: /
- uri:
exact: /callback
- uri:
prefix: /static
- uri:
regex: '^.*\.(ico|png|jpg)$'
route:
- destination:
host: frontend
port:
number: 80
另外你可以看看here .
编辑
对于您当前的虚拟服务,您的请求如下:
http://www.page.com/drill/
Rewritten: http://www.page.com/
http://www.page.com/drill/storage
Rewritten: http://www.page.com/storage
所以现在您必须更改虚拟服务配置,例如不重写的路径或更改您的应用程序依赖项位置,这样 istio 实际上可以看到 /drill/storage
路径与您当前的虚拟服务,现在它看到的是 /storage
路径,这里什么也没有,因为真正的路径是 /drill/storage
。
http:
- match:
- uri:
prefix: /
- uri:
prefix: /drill/storage/
- uri:
prefix: /...
如果您将域配置为虚拟服务主机,您可以尝试使用此虚拟服务:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: istio-vs
spec:
hosts:
- "drill.domain.com"
gateways:
- gateway
http:
- match:
- uri:
prefix: /
rewrite:
uri: /drill/
route:
- destination:
host: drill-service.drill.svc.cluster.local
port:
number: 8047
使用此虚拟服务,您的请求如下:
http://www.page.com/
Rewritten: http://www.page.com/drill/
http://www.page.com/storage
Rewritten: http://www.page.com/drill/storage
关于url - Istio VirtualService - 损坏的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65213843/
我不能使用 Kubernetes 服务,因为我需要 retry虚拟服务功能。如何从 Pod 访问 VirtualService? 如果我通过网关使用 VirtualService:Pod -> Kub
以下 Istio 0.8 VirtualService 无法匹配 HTTP header 。 apiVersion: networking.istio.io/v1alpha3 kind: Virtua
帮助! 我正在使用 Istio 在 Kubernetes 中设置服务网格。虚拟服务定义将流量路由到所需的服务: (...) http: - match: - uri:
我有一个 Istio 1.4.6 VirtualService,它有一个匹配项和一个 url 重写,定义如下: match: - authority: prefix:
在 document有一个关于 的例子使用 Cert-Manager 保护 Kubernetes Ingress 不使用网关 + VirtualService。 我试图让它与 acme http01
在我目前正在进行的项目中,我想为位于另一个命名空间中的 Kubernetes 服务创建一个 DNS 别名。为此,我创建了一个 ExternalName 服务,如下所示: kind: Service a
我正在尝试在我的默认网关上公开 kiali。我有其他服务适用于默认命名空间中的应用程序,但无法将流量路由到 istio 命名空间中的任何内容 apiVersion: networking.istio.
据我了解,Istio VirtualService是一种抽象的东西,它试图在实际实现中添加一个接口(interface),比如 Kubernetes 中的服务或 Consul 中的类似东西。 当使用
在 Istio 中,我想知道为什么 VirtualService 和 DestinationRule 被分成两个单独的配置文件? AFAICT,DestinationRule 定义了子集和 Virtu
我如何为我的 VirtuelService 编写规则,使带有 url“/v1/myservice”和 header “x-client-id:test”的流量应该路由到“my-service-v2-d
我仍在与其他几个人一起在开发集群中试验 Istio。我们有一个示例虚拟服务、部署和目标规则,对指定 uri 的请求将转到与部署关联的 pod。这工作正常。 如果存在特定的 header 和值,我正在尝
我正在尝试使用 istio 虚拟服务进行反向代理 可以在虚拟服务中转发请求吗? (如 nginx 的 proxy_pass) 结果, http://myservice.com/about/ * ->
是否有通用(或任何)工作流程来为在 Istio VirtualService 和网关中配置的应用程序颁发和更新 LE 证书? Istio 文档仅涵盖 Ingress 用例,我认为它不涵盖处理续订。 M
如果我编写如下所示的 Gateway 和 VirtualService 条目,主机属性匹配什么标准来确定是否应将传入请求路由到服务?它是 HTTP 请求中的“主机” header ,还是其他什么? a
我是一名优秀的程序员,十分优秀!