google cloud - kubectl - ingress - "默认后端 - 404"

时间:2018-05-15 18:30:16

标签: google-cloud-platform kubectl google-kubernetes-engine kubernetes-ingress

我有一个google cloud kubernetes集群, 服务定义:

apiVersion: v1
kind: Service
metadata:
  creationTimestamp: 2018-05-14T18:53:57Z
  labels:
    run: sv-security
  name: sv-security
  namespace: default
  resourceVersion: "554"
  selfLink: /api/v1/namespaces/default/services/sv-security
  uid: 27e476db-57a8-11e8-9053-42010a84014c
spec:
  clusterIP: 10.47.245.44
  externalTrafficPolicy: Cluster
  ports:
  - nodePort: 32290
    port: 80
    protocol: TCP
    targetPort: 8080
  selector:
    run: sv-security
  sessionAffinity: None
  type: LoadBalancer
status:
  loadBalancer:
    ingress:
    - ip: 35.205.38.34

我希望启用HTTPS。 我按照了一些教程并获得了以下入口配置:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-sv-security
  annotations:
    kubernetes.io/ingress.allow-http: "false"
spec:
  backend:
    serviceName: sv-security
    servicePort: 80

(尝试使用serivce端口32290)。 并使用" kubectl apply -f ingress-sv-security.yaml"

创建它

当我转到ip地址时,我得到"默认后端 - 404"。

当我跑步" kubectl描述"时,我得到:

Name:             ingress-sv-security
Namespace:        default
Address:          35.201.113.164
Default backend:  sv-security:32290 (<none>)
Rules:
  Host  Path  Backends
  ----  ----  --------
  *     *     sv-security:32290 (<none>)
Annotations:
  url-map:          k8s-um-default-ingress-sv-security--d01e081d01fdd251
  backends:         {"k8s-be-32062--d01e081d01fdd251":"HEALTHY"}
  forwarding-rule:  k8s-fw-default-ingress-sv-security--d01e081d01fdd251
  target-proxy:     k8s-tp-default-ingress-sv-security--d01e081d01fdd251
Events:
  Type     Reason   Age               From                     Message
  ----     ------   ----              ----                     -------
  Normal   ADD      19m               loadbalancer-controller  default/ingress-sv-security
  Normal   CREATE   18m               loadbalancer-controller  ip: 35.201.113.164
  Warning  Service  0s (x8 over 18m)  loadbalancer-controller  failed to identify user specified default backend, couldn't find nodeport for default/sv-security, using system default

我在这里做错了什么?

问题移至:https://serverfault.com/questions/913593/google-cloud-kubectl-ingress-default-backend-404

1 个答案:

答案 0 :(得分:0)

您缺少“规则”部分,但我不确定注解是否对您有好处。尝试这样的规范:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-sv-security
  annotations:
    kubernetes.io/ingress.class: nginx
spec:
  rules:
  - http:
      paths:
      - path: /
        backend:
          serviceName: sv-security
          servicePort: 80