Ingress возвращает «бэкэнд по умолчанию - 404» на Minikube

Ingress возвращает «бэкэнд по умолчанию - 404» на Minikube

Я пытаюсь настроить очень простой кластер Kubernetes с frontend, backend и db сервисами. Вот часть файла определения Frontend сервиса:

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

Когда я обращаюсь к IP-адресу кластера через порт 30080, все работает нормально.

Сейчас я пытаюсь настроить Ingress, который будет работать на порту 80 (в рамках подготовки к развертыванию кластера в Azure). Я хочу направить весь HTTP-трафик на frontend, так как это единственная HTTP-служба в моем кластере. Поэтому файл определения ingress выглядит следующим образом:

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.

Связанный контент