入口 return 404

Ingress return 404

Rancher 入口 return 404 服务。

设置:我有 6 个虚拟机,一个 Rancher 服务器 x.x.x.51(dns domain.company 指向 TLS)和 5 个虚拟机(一个主服务器和 4 个工作服务器 x.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: {}

我的 ingress 配置:Ingress 控制器是 rancher 的默认控制器。

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 正常访问它。这意味着部署 运行 很好,只是入口中的一些配置问题。

我检查了这个: 但它没有帮助。

提前致谢!

找出解决方案。

domain.company 指向牧场主 (x.x.x.51)。入口位于 运行 on (x.x.x.53,.54,.55,.56).

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

然后,入口定义为gvm.domain.company,路径为“/”。

希望对大家有所帮助!