我使用以下配置来设置 Istio
cat << EOF | kubectl apply -f -
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
namespace: istio-system
name: istio-control-plane
spec:
# Use the default profile as the base
# More details at: https://istio.io/docs/setup/additional-setup/config-profiles/
profile: default
# Enable the addons that we will want to use
addonComponents:
grafana:
enabled: true
prometheus:
enabled: true
tracing:
enabled: true
kiali:
enabled: true
values:
global:
# Ensure that the Istio pods are only scheduled to run on Linux nodes
defaultNodeSelector:
beta.kubernetes.io/os: linux
kiali:
dashboard:
auth: …Run Code Online (Sandbox Code Playgroud) <dashboard>.foobar.com我已经毫无问题地暴露了我的仪表板,现在我正在尝试将上面提到的仪表板公开给www.foobar.com/dashboard/<kiali>
我,我已经使用一个简单的 .net 后端容器进行了测试,并设置了此 VS:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: whatever
spec:
hosts:
- www.foobar.com
gateways:
- some-gateway
http:
- match:
- uri:
prefix: /bla
rewrite:
uri: " "
route:
- destination:
port:
number: 1234
host: dummy-service
Run Code Online (Sandbox Code Playgroud)
然后我有:
foobar.com/bla/api/hello-> dummyservice/api/hello
foobar.com/bla/api/deeper/hello->dummyservice/api/deeper/hello
这很好。但是,如果我将相同的方法应用于这些仪表板,则没有任何效果!这是我对仪表板的设置:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: dashboards
namespace: istio-system
spec:
hosts:
- www.foobar.com
gateways:
- default/somegateway
http:
- name: grafana
match:
- uri:
prefix: /dashboards/grafana
rewrite:
uri: /
route:
- destination:
port: …Run Code Online (Sandbox Code Playgroud)