入口返回404



Rancher入口返回404到服务。

设置:我有6个虚拟机,一个Rancher服务器x.x.51(dns domain.company所指向的位置,TLS(和5个虚拟机(一个主服务器和4个工作服务器x.x.52-56(。

我的服务,gvm gsad在gvm命名空间中运行:

apiVersion: v1
kind: Service
metadata:
annotations:
field.cattle.io/publicEndpoints: "null"
meta.helm.sh/release-name: gvm
meta.helm.sh/release-namespace: gvm
creationTimestamp: "2021-11-15T21:14:21Z"
labels:
app.kubernetes.io/instance: gvm-gvm
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: gvm-gsad
app.kubernetes.io/version: "21.04"
helm.sh/chart: gvm-1.3.0
name: gvm-gsad
namespace: gvm
resourceVersion: "3488107"
uid: c1ddfdfa-3799-4945-841d-b6aa9a89f93a
spec:
clusterIP: 10.43.195.239
clusterIPs:
- 10.43.195.239
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
ports:
- name: gsad
port: 80
protocol: TCP
targetPort: gsad
selector:
app.kubernetes.io/instance: gvm-gvm
app.kubernetes.io/name: gvm-gsad
sessionAffinity: None
type: ClusterIP
status:
loadBalancer: {}

我的入口配置:入口控制器是牧场主的默认控制器。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
field.cattle.io/publicEndpoints: '[{"addresses":["172.16.12.53"],"port":443,"protocol":"HTTPS","serviceName":"gvm:gvm-gsad","ingressName":"gvm:gvm","hostname":"dtl.miproad.ad","path":"/gvm","allNodes":true}]'
creationTimestamp: "2021-11-16T19:22:45Z"
generation: 10
name: gvm
namespace: gvm
resourceVersion: "3508472"
uid: e99271a8-8553-45c8-b027-b259a453793c
spec:
rules:
- host: domain.company
http:
paths:
- backend:
service:
name: gvm-gsad
port:
number: 80
path: /gvm
pathType: Prefix
tls:
- hosts:
- domain.company
status:
loadBalancer:
ingress:
- ip: x.x.x.53
- ip: x.x.x.54
- ip: x.x.x.55
- ip: x.x.x.56

当我使用访问它时https://domain.company/gvm然后我得到404。

但是,当我将服务更改为NodePort时,我可以正常使用x.x.x.52:PORT访问它。这意味着部署运行良好,只是ingress中的一些配置问题。

我检查了这个:rancher 2.x through ingress控制器返回404,但它没有帮助。

提前谢谢!

找到了解决方案。

domain.company指向rancher(x.x.x.51(。入口在何处运行(x.x.x.53、.54、.55、.56(。

因此,解决方案是创建一个名为gvm.domain.company的新DNS,指向任何入口(x.x.x.53、.54、.55、.56((您可以在此处使用LoadBalancer或使用循环DNS(。

然后,入口定义是gvm.domain.company,路径是"/&";。

希望它能帮助别人!