如何解决具有静态内容尤其是kubevious UI的网站的Istio配置
我正在尝试配置istio VirtualService,以便可以通过它打开kubevious仪表板(https://github.com/kubevious/kubevious)。
我有以下设置:
resource "kubernetes_manifest" "kubevious" {
provider = kubernetes-alpha
manifest = {
apiVersion = "networking.istio.io/v1alpha3"
kind = "VirtualService"
metadata = {
name = "kubevious"
namespace = "kubevious"
}
spec = {
gateways = [
"istio-system/space-gateway"
]
hosts = [
"*"
]
http = [
{
match = [
{
uri = {
prefix = "/kubevious"
}
}
]
rewrite = {
uri = "/"
}
route = [
{
destination = {
host = "kubevious-ui-svc.kubevious.svc.cluster.local"
}
}
]
},{
match = [
{
uri = {
prefix = "/static"
}
},{
uri = {
prefix = "/socket"
}
},{
uri = {
regex: "^.*\\.(ico|png|jpg)$"
}
}
]
route = [
{
destination = {
host = "kubevious-ui-svc.kubevious.svc.cluster.local"
}
}
]
}
]
}
}
}
kubevious网站正在打开(尽管我认为有些套接字错误与kubevious有关)。
我对这种方法有一个问题。如果我想托管更多具有静态内容的网站怎么办?目前,%istio_ingress_ip%/ static 的所有内容都将转发给kubevious。其他任何配置方式,例如,当我调用%istio_ingress_ip%/ kubevious 时,它将静态内容解析为%istio_ingress_ip%/ kubevious / static ?
>解决方法
如果我想托管更多具有静态内容的网站怎么办?
AFAIK,您应该为此指定主机,而不是*
例如,假设您有两个静态网站example.com和sample.com,然后在虚拟服务中创建了2个主机。
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: example-vs
spec:
hosts:
- example.com <----
http:
- match:
- uri:
prefix: /example
- uri:
prefix: /static
- uri:
prefix: /socket
- uri:
regex: "^.*\\.(ico|png|jpg)$"
route:
- destination:
host: example.default.svc.cluster.local
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: sample-vs
spec:
hosts:
- sample.com <----
http:
- match:
- uri:
prefix: /sample
- uri:
prefix: /static
- uri:
prefix: /socket
- uri:
regex: "^.*\\.(ico|png|jpg)$"
route:
- destination:
host: sample.default.svc.cluster.local
其他资源:
是否可以通过其他任何方式配置它,即当我调用%istio_ingress_ip%/ kubevious时,它将静态内容解析为%istio_ingress_ip%/ kubevious / static?
几乎没有值得检查的有关istio中重写的资源。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。