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

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

Другие вопросы по тегам