Я настроил кластер kubernetes в Azure с помощью nginx ingress. При переходе по определенному пути я получаю сообщение об ошибке 404.
Я установил несколько примеров приложений, которые возвращают простое эхо, которое прекрасно работает. Мое приложение ban api всегда возвращает ошибку 404.
Когда я иду к входному пути, например,
http://51.145.17.105/apple
Работает нормально. Однако, когда я перехожу к приложению API, я получаю сообщение об ошибке 404, используя URL:
http://51.145.17.105/ban-simple
Если я войду в кластер и сверну бан-простой сервис (не входящий ip), например
curl -L 10.1.1.40
Я получил правильный ответ. Когда я пытаюсь использовать вход nginx, я получаю ошибку 404.
Входное отображение выглядит мне правильно. Вот копия входного yaml, содержащего пути.
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: fruit-ingress
namespace: ban
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/rewrite-target: /$
spec:
rules:
- http:
paths:
- path: /apple
backend:
serviceName: apple-service
servicePort: 5678
- path: /ban-simple
backend:
serviceName: ban-service
servicePort: 80
Копия "хорошего" сервиса:
kind: Pod
apiVersion: v1
metadata:
name: apple-app
namespace: ban
labels:
app: apple
spec:
containers:
- name: apple-app
image: hashicorp/http-echo
args:
- "-text=apple"
---
kind: Service
apiVersion: v1
metadata:
name: apple-service
namespace: ban
spec:
selector:
app: apple
ports:
- port: 5678 # Default port for image
Служба, которая не работает:
kind: Pod
apiVersion: v1
metadata:
name: ban-simple
namespace: ban
labels:
app: ban-simple
spec:
containers:
- name: ban-simple
image: xxxxx.azurecr.io/services/ban
---
kind: Service
apiVersion: v1
metadata:
name: ban-simple-service
namespace: ban
spec:
selector:
app: ban-simple
ports:
- port: 80 # Default port for image
Я запустил контейнер локально, и он работает на моей машине. Он перенаправляет на localhost / index.html, если это имеет значение.
Любые предложения приветствуются.