【发布时间】:2020-07-22 21:21:11
【问题描述】:
我创建了 yaml 文件并将服务部署在 kubernetes 和 istio 上。一切看起来都很好,但是当我测试服务时,它给出了 404 NOT FOUND。我不确定我是否错过了什么。有没有人对此有任何解决方案或我可能错的地方?以下是 yaml 文件:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: login-register-vs
spec:
hosts:
- "*"
gateways:
- webapp-gateway
http:
- match:
- uri:
prefix: /loginregister
route:
- destination:
port:
number: 8080
host: login-register-service
以上代码是虚拟服务代码。 这是网络服务代码。
apiVersion: v1
kind: Service
metadata:
name: login-register-service
labels:
app: login-register-service
spec:
ports:
- name: http
port: 8080
selector:
app: login-register-service
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: login-register
spec:
replicas: 1
template:
metadata:
labels:
app: login-register-service
version: v1
spec:
containers:
- name: login-register-service
image: {ImageName}
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080
我在邮递员上收到的错误消息是 404 未找到
{
"timestamp": "2020-07-22T18:15:28.206+00:00",
"status": 404,
"error": "Not Found",
"message": "",
"path": "/loginregister/sms/auth"
}
【问题讨论】:
-
你如何测试它? CURL 还是浏览器?网关的外观如何?
-
我使用 CURL 对其进行了测试。网关显示 404 NOT FOUND。但是在 gke 和 kubernetes 上它显示 OK。那么yaml文件有问题吗?
-
您是否使用网关资源对其进行配置以允许流量进入网关,并且您是否使用 VirtualServices 将流量引导至服务?
-
你在vs中的路径是/loginregister,试着把它改成/loginregister/sms/auth或者像documentation中提到的那样对/loginregister/sms/auth添加重写。
标签: java spring-boot google-kubernetes-engine kubernetes-ingress istio