бэкэнд по умолчанию - 404 возвращается из nginx-controller при использовании dns - PullRequest
0 голосов
/ 08 января 2019

немного предыстории: я настроил кластер Azure Kubernetes Service и развернул базовый API .Net Core в качестве объекта развертывания. Затем я развернул службу portport для предоставления API, а затем развернул nginx-контроллер и входной объект для его настройки. Я использую IP-адрес входного контроллера для маршрутизации запроса, и это работает, например. http://1.2.3.4/hello-world-one/api/values. Но когда я заменяю Ip на сгенерированный dns, путь каким-то образом игнорируется, и я получаю бэкэнд по умолчанию - 404, возвращаемый контроллером nginx. Ожидаемое поведение заключается в том, что DNS разрешит, а затем путь "api / values" будет отправлен в мой сервис.

Может кто-нибудь помочь мне с этим? Заранее спасибо.

Мои настройки развертывания, обслуживания и входа приведены ниже.

    apiVersion: apps/v1beta1
    kind: Deployment
    metadata:
      name: test-deployment
      labels:
        app: test
    spec:
      replicas: 1
      selector:
         matchLabels: 
           app: test
      strategy:
        type: RollingUpdate
        rollingUpdate:
           maxUnavailable: 1
           maxSurge: 1 
      template:
        metadata:
          labels: 
            app: test
        spec:
          containers:
          - name: test-service
            image: <my-repo>.azurecr.io/testservice
            imagePullPolicy: Always
            ports:
            - name: tcp
              containerPort: 80
          imagePullSecrets:
          - name: regsecret
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: frontend
    spec:
      type: NodePort
      selector:
        app: test
      ports:
      - name: http
        port: 32768
        targetPort: 80
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: hello-world-ingress
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
    nginx.ingress.kubernetes.io/rewrite-target: /
    kubernetes.io/ingress.global-static-ip-name: dev-pip-usw-qa-aks
    kubernetes.io/ingress.class: addon-http-application-routing
spec:
  rules:
  - host: hello-world-ingress.be543d4af69d4c7ca489.westus.aksapp.io
  - http:
      paths:
      - path: /
        backend:
          serviceName: frontend
          servicePort: http
      - path: /hello-world-one
        backend:
          serviceName: frontend
          servicePort: http
      - path: /hello-world-two
        backend:
          serviceName: frontend
          servicePort: http

1 Ответ

0 голосов
/ 08 января 2019

уверен, rules должно выглядеть так:

rules:
- host: hello-world-ingress.be543d4af69d4c7ca489.westus.aksapp.io
  http:
    paths:
    - path: /
      backend:
        serviceName: frontend
        servicePort: http
    - path: /hello-world-one
      backend:
        serviceName: frontend
        servicePort: http
    - path: /hello-world-two
      backend:
        serviceName: frontend
        servicePort: http

чтение: https://kubernetes.io/docs/concepts/services-networking/ingress/#types-of-ingress

...