Ingress 在 Minikube 上返回“默认后端 - 404”

Ingress 在 Minikube 上返回“默认后端 - 404”

我正在尝试建立一个非常简单的 Kubernetes 集群,其中包含前端、后端和数据库服务。以下是前端服务定义文件的一部分:

apiVersion: v1
kind: Service
metadata:
  name: frontend
  labels:
    tier: frontend
spec:
  selector:
    tier: frontend
  ports:
  - port: 80
    nodePort: 30080
  type: LoadBalancer

当我通过端口 30080 访问集群的 IP 时,一切正常。

现在,我正在尝试设置一个将在端口 80 上运行的 Ingress(为将集群部署到 Azure 做准备)。我想将所有 HTTP 流量定向到前端,因为这是我集群中唯一的 HTTP 服务。因此,入口定义文件如下:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: zippori
  annotations:
    kubernetes.io/ingress.class: addon-http-application-routing
spec:
  backend:
    serviceName: frontend
    servicePort: 80

但是当我访问http://minikube-ip我收到以下非常简单的错误:

默认后端 - 404

就好像 Ingress 没有转发任何东西到我的前端,而只是尝试它自己的默认后端。

我怎样才能解决这个问题?

答案1

该问题出在 Ingress 服务上。

在 Ingress kind yaml 中,您使用注释来定义“ingress backend”。对于 AKS,它是“addon-http-application-routing”,但对于 minikube,开箱即用的是kubernetes.io/ingress.class: nginx

使用适当的注释更新 Ingress 应该可以为您的 minikube 设置提供服务。

相关内容