我正在努力学习.NET微服务。我一直在学习一个关于YouTube的很好的教程(时间: 4:44:55,添加了一个API )。一切都进行得很顺利,直到恩吉克斯·安妞出现在这幅画上。我从培训师的GitHub帐户粘贴了相同的YAML文件,我加倍检查了所有的东西,但什么也找不到:
我可以看到所有的吊舱和服务都很好:


我更新了我的主机文件。

我错过了什么?
网址,我使用的是:http://acme.com/api/platforms/
错误: HTTP错误404。找不到请求的资源。
输入YAML的输出:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"networking.k8s.io/v1","kind":"Ingress","metadata":{"annotations":{"kubernetes.io/ingress.class":"nginx","nginx.ingress.kubernetes.io/use-regex":"true"},"name":"ingress-srv","namespace":"default"},"spec":{"rules":[{"host":"acme.com","http":{"paths":[{"backend":{"service":{"name":"platforms-clusterip-srv","port":{"number":80}}},"path":"/api/platforms","pathType":"Prefix"},{"backend":{"service":{"name":"commands-clusterip-srv","port":{"number":80}}},"path":"/api/c/platforms","pathType":"Prefix"}]}}]}}
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/use-regex: "true"
creationTimestamp: "2021-09-18T00:12:41Z"
generation: 1
name: ingress-srv
namespace: default
resourceVersion: "2274742"
uid: a7376202-8b1b-4f1a-a42f-08de5f602192
spec:
rules:
- host: acme.com
http:
paths:
- backend:
service:
name: platforms-clusterip-srv
port:
number: 80
path: /api/platforms
pathType: Prefix
- backend:
service:
name: commands-clusterip-srv
port:
number: 80
path: /api/c/platforms
pathType: Prefix
status:
loadBalancer:
ingress:
- hostname: localhost服务:

更新:尝试了以下命令并获得了一些新信息:

最新情况:结果
Kubectl获取豆荚-命名空间=ingress nginx

发布于 2021-11-13 13:48:18
尝试从入口删除regex注释。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
name: ingress-srv
namespace: default
spec:
rules:
- host: acme.com
http:
paths:
- backend:
service:
name: platforms-clusterip-srv
port:
number: 80
path: /api/platforms
pathType: Prefix
- backend:
service:
name: commands-clusterip-srv
port:
number: 80
path: /api/c/platforms
pathType: Prefix或者试试这个nginx.ingress.kubernetes.io/rewrite-target: /
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: minimal-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: acme.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: commands-clusterip-srv
port:
number: 80在上述入口中,所有请求都将转到服务commands-clusterip-srv,因此如果主机是acme.com,则从浏览器端传递任何/api或/api/c入口都会将流量路由到该服务。
错误 404 显然意味着您的Nginx配置存在一些问题path不匹配或主机问题,Nginx无法找到上游或目标,因此它抛出404。
更新
尝试将IP和条目添加到主机文件中
192.168.1.28 acme.com我不确定您是否使用了IP来卷曲,理想情况下,您应该尽可能地使用acme.com来访问数据。
还希望您的服务、部署和入口位于相同的名称空间中。
发布于 2021-11-14 06:14:28
首先,谢谢你宝贵的时间。我尝试了所有的事情,但没有发现错误。
我能够解决HTTPS上的问题真是个奇迹。我可以访问"https://acme.com/api/platforms"“。但是,HTTP给了我同样的错误。
https://stackoverflow.com/questions/69230795
复制相似问题