开发者社区 > 域名解析DNS > DNS最佳实践 > 正文

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

一点背景是我已经设置了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

展开
收起
k8s小能手 2019-01-11 11:20:18 2376 0
1 条回答
写回答
取消 提交回答
  • 整合最优质的专家资源和技术资料,问答解疑

    非常肯定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
    2019-07-17 23:25:14
    赞同 展开评论 打赏

使用DNS和运维DNS相关的最佳实践

相关产品

  • 云解析DNS
  • 相关电子书

    更多
    ECS块存储产品全面解析 立即下载
    CentOS Nginx PHP JAVA 多语言镜像使用手 立即下载
    CentOS Nginx PHP JAVA多语言镜像使用手册 立即下载

    相关镜像