Kubernetes 入口控制器中的主机获取到默认后端的路由

Kubernetes 入口控制器中的主机获取到默认后端的路由,kubernetes,google-compute-engine,Kubernetes,Google Compute Engine,我设置了一个入口控制器,一个带有节点端口的服务,设置了运行状况路由,并验证了我的服务是否正在运行,但我的请求仍然被路由到默认后端,而不是入口控制器。我不知道为什么,也不知道如何调试这个 我已经检查过了: 我的豆荚是健康的(并且有健康路线) 我有一个节点端口 服务的描述中没有错误 我的服务从另一个吊舱开始工作 当我卷曲我的URL时,我得到以下信息: $ curl image-pin.thejsj.com -v * Rebuilt URL to: image-pin.thejsj.com/ *

我设置了一个入口控制器,一个带有节点端口的服务,设置了运行状况路由,并验证了我的服务是否正在运行,但我的请求仍然被路由到默认后端,而不是入口控制器。我不知道为什么,也不知道如何调试这个

我已经检查过了:

  • 我的豆荚是健康的(并且有健康路线)
  • 我有一个节点端口
  • 服务的
    描述中没有错误
  • 我的服务从另一个吊舱开始工作
  • 当我卷曲我的URL时,我得到以下信息:

    $ curl image-pin.thejsj.com -v
    * Rebuilt URL to: image-pin.thejsj.com/
    *   Trying 35.186.225.114...
    * Connected to image-pin.thejsj.com (35.186.225.114) port 80 (#0)
    > GET / HTTP/1.1
    > Host: image-pin.thejsj.com
    > User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
    > Accept: */*
    > Referer:
    >
    < HTTP/1.1 404 Not Found
    < Date: Mon, 19 Jun 2017 05:06:09 GMT
    < Content-Length: 21
    < Content-Type: text/plain; charset=utf-8
    < Via: 1.1 google
    <
    * Connection #0 to host image-pin.thejsj.com left intact
    default backend - 404
    
    服务:

    部署:

    当前状态:

    入口控制器:

    每2.0秒:kubectl描述ingress main Ingres Jorges-MacBook-Pro-2。当地时间:2017年6月18日22:01:35
    名称:主入口
    名称空间:默认值
    地址:35.186.225.114
    默认后端:默认http后端:80(10.0.0.6:8080)
    规则:
    主机路径后端
    ----                  ----    --------
    image-pin.thejsj.com
    /*imagepin:80()
    注释:
    转发规则:k8s fw默认主入口--02988768080308CD
    目标代理:k8s tp默认主入口--02988768080308CD
    url映射:k8s um默认主入口--02988768080308CD
    后端:{“k8s-be-31582--02988768680308cd:“健康”,“k8s-be-32222--029887680308CD:“健康”}
    活动:
    子对象路径类型原因消息中的FirstSeen LastSeen计数
    ---------     --------        -----   ----                    -------------   --------        ------  -------
    3m 3m 1负载平衡器控制器正常创建ip:35.186.225.114
    3m 3m 2负载平衡器控制器正常服务无用户指定的默认bac
    kend,使用系统默认值
    
    服务

    $kubectl描述服务映像PIN
    姓名:imagepin
    名称空间:默认值
    标签:
    注释:kubectl.kubernetes.io/last applicated configuration={“apiVersion”:“v1”,“种类”:“服务”,“元数据”:{“注释”:{},“名称”:“imagepin”,“命名空间”:“默认”},“规范”:{“端口”:[{“节点端口”:32222,“端口”:80,。。。
    选择器:app=imagepin
    类型:节点端口
    IP:10.3.241.98
    端口:80/TCP
    节点端口:32222/TCP
    终点:10.0.2.6:80
    会话关联:无
    活动:
    
    尝试按如下方式发送您的curl请求:

    curl入口ip/-H“主机:映像pin.thejsj.com


    这可能对您有用。

    通过转到GCP UI并删除所有未使用的后端解决了此问题。但不确定这两者之间的关系……这不会有任何区别。这只是执行相同操作的不同方式。
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: "main-ingress"
      labels:
        # Timestamp used in order to force reload of the secret
        last_updated: "1497848257"
    spec:
      rules:
      - host: image-pin.thejsj.com
        http:
          paths:
          - path: /*
            backend:
              serviceName: imagepin
              servicePort: 80
    
    apiVersion: v1
    kind: Service
    metadata:
      name: imagepin
    spec:
      selector:
        app: imagepin
      type: NodePort
      ports:
      - protocol: "TCP"
        port: 80
        nodePort: 32222
        targetPort: 80
    
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      name: imagepin
    spec:
      replicas: 1
      template:
        metadata:
          labels:
            app: imagepin
        spec:
          containers:
            - name: imagepin
              image: quay.io/hiphipjorge/imagepin_server:latest
              args:
                - "npm"
                - "start"
              ports:
                - containerPort: 80
              env: ...
              readinessProbe:
                httpGet:
                  path: /
                  port: 80
              livenessProbe:
                httpGet:
                  path: /
                  port: 80
    
    Every 2.0s: kubectl describe ingress  main-ingress                               Jorges-MacBook-Pro-2.local: Sun Jun 18 22:01:35 2017
    
    Name:                   main-ingress
    Namespace:              default
    Address:                35.186.225.114
    Default backend:        default-http-backend:80 (10.0.0.6:8080)
    Rules:
      Host                  Path    Backends
      ----                  ----    --------
      image-pin.thejsj.com
                            /*      imagepin:80 (<none>)
    Annotations:
      forwarding-rule:      k8s-fw-default-main-ingress--02988768680308cd
      target-proxy:         k8s-tp-default-main-ingress--02988768680308cd
      url-map:              k8s-um-default-main-ingress--02988768680308cd
      backends:             {"k8s-be-31582--02988768680308cd":"HEALTHY","k8s-be-32222--02988768680308cd":"HEALTHY"}
    Events:
      FirstSeen     LastSeen        Count   From                    SubObjectPath   Type            Reason  Message
      ---------     --------        -----   ----                    -------------   --------        ------  -------
      3m            3m              1       loadbalancer-controller                 Normal          CREATE  ip: 35.186.225.114
      3m            3m              2       loadbalancer-controller                 Normal          Service no user specified default bac
    kend, using system default
    
    $ kubectl describe service imagepin
    Name:           imagepin
    Namespace:      default
    Labels:         <none>
    Annotations:        kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"name":"imagepin","namespace":"default"},"spec":{"ports":[{"nodePort":32222,"port":80,...
    Selector:       app=imagepin
    Type:           NodePort
    IP:         10.3.241.98
    Port:           <unset> 80/TCP
    NodePort:       <unset> 32222/TCP
    Endpoints:      10.0.2.6:80
    Session Affinity:   None
    Events:         <none>