开发者社区> 问答> 正文

默认后端 - 使用dns时从nginx-controller返回404

k8s小能手 2019-01-11 11:20:18 485

一点背景是我已经设置了Azure Kubernetes服务集群并部署了一个基本的.Net Core api作为部署对象。然后我部署了一个nodeport服务来公开api,然后部署了一个nginx-controller和一个ingress对象来配置它。我使用入口控制器的IP来路由请求,例如。http://1.2.3.4/hello-world-one/api/values。但是当我用生成的dns替换Ip时,路径被忽略了,我得到了默认的后端 - 从nginx控制器返回的404。预期的行为是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
Kubernetes 网络协议 应用服务中间件 API nginx 容器
分享到
取消 提交回答
全部回答(1)
  • k8s小能手
    2019-07-17 23:25:14

    非常肯定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
    0 0

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题