我有一个演示应用程序,用于测试本地docker,本地Kubernetes和Istio设置。我最初将演示服务公开为type = NodePort,并且在没有Istio的情况下在http:// localhost:
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: demo-gateway
spec:
selector:
istio: ingressgateway # use istio default controller
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: demoservice
spec:
hosts:
- "*"
gateways:
- demo-gateway
http:
- route:
- destination:
host: demo-service
port:
number: 80
部署此后,导航到http:// localhost /会出现HTTP 404错误。 Service,VS,Gateway在群集上一切正常。 由于我是新手,因此不确定Istio或Kubernetes是否在这里缺少基本知识。
答案 0 :(得分:0)
istio-ingressgateway和virtualservice的配置看起来不错。 IstioByExample(link)有几个在各种用例中使用istio的示例。
由于尝试在本地访问服务时遇到404错误,因此我怀疑istio sidecar未安装在服务本身中。 Istio具有启用自动边车部署(link)的配置,该功能可以在部署新Pod时安装边车。我还建议您仔细阅读本书样本(link),以了解其中的各个组成部分。
样本中的一些片段是
要启用Sidecar注入-使用
$ kubectl label namespace default istio-injection=enabled
启用sidecar注入后,再次执行部署,因为它将在后续部署(以前未部署)中起作用
如果这行得通或行不通,请在此处评论,以便我可以尝试查看导致问题的其他原因。