【发布时间】:2023-04-03 01:34:01
【问题描述】:
我的服务网格上有这个配置:
- mTLS 全局启用,meshpolicy 默认
- 简单的 Web 部署在端口 8080 上公开为 clusterip
- 用于端口 80 的 http 网关和我的服务上的虚拟服务路由
这里是 gw 和 vs yaml
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: http-gateway
spec:
selector:
istio: ingressgateway # Specify the ingressgateway created for us
servers:
- port:
number: 80 # Service port to watch
name: http-gateway
protocol: HTTP
hosts:
- "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: simple-web
spec:
gateways:
- http-gateway
hosts:
- '*'
http:
- match:
- uri:
prefix: /simple-web
rewrite:
uri: /
route:
- destination:
host: simple-web
port:
number: 8080
vs 和 gw 都在同一个命名空间中。 使用以下命令创建和公开部署:
k create deployment --image=yeasy/simple-web:latest simple-web
k expose deployment simple-web --port=8080 --target-port=80 --name=simple-web
通过 k get pods 我收到了这个:
pod/simple-web-9ffc59b4b-n9f85 2/2 Running
发生的情况是,从外部指向入口网关负载平衡器,我收到 503 HTTP 错误。 如果我尝试从 ingressgateway pod 卷曲,我可以访问 simple-web 服务。 为什么我无法访问启用 mTLS 的网站?正确的配置是什么?
【问题讨论】:
-
你能粘贴你的 yaml 文件吗?
-
我会,但我认为这是一个常见问题。这里有类似stackoverflow.com/questions/54160215/…
-
好吧,我已经部署了一堆带有相互 tls 的 istio 应用程序,它几乎总是对我有用。
-
所有内部路由似乎都可以正常工作,问题仅在于入口网关的可达性
-
你好,kubernetes、istio、网络插件什么环境和版本?
标签: kubernetes istio envoyproxy