我有一个入口控制器,在它后面运行两个服务。我也有一个SSL证书安装与让加密和cert-manager。
由于某种原因,每当我向我的端点发出请求时,它都会返回404未找到错误。比如说,
http://stefandeboer.com/api/neume-billing-service/Transaction
退货
<html>
<head>
<title>404 Not Found</title>
</head>
<body>
<center>
<h1>404 Not Found</h1>
</center>
<hr>
<center>nginx</center>
</body>
</html>
这是我的入口的YAML:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
cert-manager.io/cluster-issuer: letsencrypt
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/use-regex: "true"
creationTimestamp: "2023-06-05T22:51:36Z"
generation: 3
name: neume-ingress
namespace: default
resourceVersion: "1888643"
uid: 9abf4d0f-3370-4856-b3e2-c555c7042739
spec:
rules:
- host: stefandeboer.com
- http:
paths:
- backend:
service:
name: neume-user-service
port:
number: 80
path: /api/neume-user-service(/|$)(.*)
pathType: Prefix
- backend:
service:
name: neume-billing-service
port:
number: 80
path: /api/neume-billing-service(/|$)(.*)
pathType: Prefix
tls:
- hosts:
- stefandeboer.com
secretName: tls-secret
status:
loadBalancer:
ingress:
- ip: 20.4.165.91
我的两个pod都在同一个命名空间中运行:
NAME READY STATUS RESTARTS AGE
neume-billing-service-deployment-769ff6487b-sjk5d 1/1 Running 0 31m
neume-user-service-deployment-5674b4b75d-8zhgp 1/1 Running 0 29m
我能做错什么呢?
2条答案
按热度按时间jucafojl1#
看起来你在你的入口上错过了配置,主机声明必须和HTTP声明是同一个对象的一部分。
而不是:
你需要这样做:
8mmmxcuj2#
在对我的YAML文件做了一些调整后,它就像一个魅力!我把http放在host对象下面,并确保在target-rewrite之后添加$2。