Назад | Перейти на главную страницу

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

Я пытаюсь настроить очень простой кластер Kubernetes с веб-интерфейсом, серверной частью и службами базы данных. Вот часть файла определения сервиса 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-трафик на интерфейс, так как это единственная 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 ничего не пересылает моему интерфейсу, а просто пробует свой собственный бэкэнд по умолчанию.

Как я могу это исправить?

Проблема в сервисе Ingress.

В yaml типа Ingress вы используете аннотацию для определения "серверной части входящего трафика". Для AKS это "addon-http-application-routing", но для minikube "из коробки" работает kubernetes.io/ingress.class: nginx

Обновление Ingress с соответствующими аннотациями должно включить службу для вашей настройки minikube.