Ссылка nginx - введите имя хоста для внутренней службы - PullRequest
0 голосов
/ 08 февраля 2020

После создания всех необходимых ресурсов и настройки контроллера nginx -ingress.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: user-api
spec:
  replicas: 1
  selector:
    matchLabels:
      app: user-api
  strategy: {}
  template:
    metadata:
      labels:
        app: user-api
    spec:
      dnsPolicy: ClusterFirstWithHostNet
      hostNetwork: true
      containers:
      - name: user-api
        image: doumeyi/user-api-amd64:1.0
        ports:
        - name: user-api
          containerPort: 3000
        resources: {}
---
apiVersion: v1
kind: Service
metadata:
  name: user-api
spec:
  selector:
    app: user-api
  ports:
  - name: user-api
    port: 3000
    targetPort: 3000
  type: LoadBalancer
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: app-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
    - host: example.com
      http:
        paths:
        - path: /user-api
          backend:
            serviceName: user-api
            servicePort: 3000

Я могу просмотреть example.com показать страницу 404 не найдена, но также не могу увидеть example.com/user -api, чтобы показать любое сообщение, которое я создаю в сервисе user-api.

Кажется, * -980 не может разрешить имя хоста во внутренней службе, как мне это исправить?

1 Ответ

2 голосов
/ 08 февраля 2020

Если NGINX не может найти маршрут к вашему Pod, он не должен отвечать 404. Вместо этого он должен дать 502 (Bad Gateway) AFAIK. Я предполагаю, что 404 из вашего приложения.

NGINX -Ingress изменил поведение в 0.22, как упоминалось здесь Входной ресурс должен выглядеть следующим образом:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: app-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
  rules:
    - host: example.com
      http:
        paths:
        - path: /user-api(/|$)(.*)
          backend:
            serviceName: user-api
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...