Ingress не работает в движке google kubernetes для нескольких сервисов (Spring Boot)

Я развернул две службы в кластере в облаке Google.

Когда я бегу: kubectl get services получаю->

NAME           TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
hello-java-1   NodePort    10.7.254.204   <none>        8080:31848/TCP   21m
hello-java-2   NodePort    10.7.246.52    <none>        8080:30624/TCP   19m
kubernetes     ClusterIP   10.7.240.1     <none>        443/TCP          23m

Теперь я следовал в соответствии с облачными документами Google: Ingress и настроил входной разветвитель как:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: fanout-ingress
spec:
  rules:
  - http:
      paths:
      - path: /product/*
        backend:
          serviceName: hello-java-1
          servicePort: 8080
      - path: /list/*
        backend:
          serviceName: hello-java-2
          servicePort: 8080

Теперь:

$kubectl get ingress fanout-ingress
NAME             HOSTS     ADDRESS         PORTS     AGE
fanout-ingress   *         35.190.55.204   80        17m

Я получаю эти результаты.

Проверил команду: kubectl describe ingress fanout-ingress

Результат:

  *
        /product/*   hello-java-1:8080 (<none>)
        /list/*      hello-java-2:8080 (<none>)
Annotations:
  ingress.kubernetes.io/backends:         {"k8s-be-30624--e761000d52fd1c80":"HEALTHY","k8s-be-31726--e761000d52fd1c80":"HEALTHY","k8s-be-31848--e761000d52fd1c80":"HEALTHY"}
  ingress.kubernetes.io/forwarding-rule:  k8s-fw-default-fanout-ingress--e761000d52fd1c80
  ingress.kubernetes.io/target-proxy:     k8s-tp-default-fanout-ingress--e761000d52fd1c80
  ingress.kubernetes.io/url-map:          k8s-um-default-fanout-ingress--e761000d52fd1c80
Events:
  Type    Reason   Age               From                     Message
  ----    ------   ----              ----                     -------
  Normal  ADD      18m               loadbalancer-controller  default/fanout-ingress
  Normal  CREATE   17m               loadbalancer-controller  ip: 35.190.55.204
  Normal  Service  8m (x4 over 17m)  loadbalancer-controller  no user specified default backend, using system default

Теперь, когда я обращаюсь к http://35.190.55.204/product/home, я получаю весеннюю ошибку белого ярлыка ... но \ home определен в приложении! Почему это происходит?


person Dillz    schedule 29.10.2018    source источник
comment
похоже на аналогичную проблему. Можете ли вы попробовать обходной путь и проверить. нравится. github.com/kubernetes/ingress-nginx/issues/   -  person Shashank Pai    schedule 29.10.2018


Ответы (1)


У меня проблема! Чтобы путь был /product/*, все сопоставления URL-адресов нашей первой службы. Путь запроса в приложении Spring должен начинаться с /product/

например: / product / list, / product / add, / product / delete и т. д.

Также для правила пути Ingress / list / *, все сопоставления URL-адресов в нашей второй службе Requestpath в приложении Spring должны начинаться с /list/

например: / список / сортировка, / список / добавление, / список / удаление и т. д.

person Dillz    schedule 29.10.2018