Вызывая конечную точку, она возвращает 404 с настроенным VirtualService и шлюзом. - PullRequest
0 голосов
/ 02 апреля 2019

Я настраиваю кластер, используя Istio и Kubernetes.Я хочу сделать простой поток для приложения, приложение представляет собой хранилище под названием «gogs».Прежде всего, я хочу получить доступ к Istio Ingressport 80 (31380) и перейти к своему сервису, который открыт с портом 8004 (привязан к 3000 в сервисе).

Я пробовал разные конфигурации VirtualService, Gateway,ServiceEntry, DestinationRules, но ничего, что 404.

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  creationTimestamp: "2019-04-02T08:18:27Z"
  generation: 24
  name: repository-gogs
  namespace: alm
  resourceVersion: "2077079"
  selfLink: /apis/networking.istio.io/v1alpha3/namespaces/alm/virtualservices/repository-gogs
  uid: e4254ec1-551f-11e9-a886-000d3ab0595e
spec:
  gateways:
  - repository-gogs
  hosts:
  - repository.kube.int
  http:
  - match:
    - port: 80
    route:
    - destination:
        host: repository-gogs
        port:
          number: 8004

---

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  annotations:
  creationTimestamp: "2019-04-02T08:18:27Z"
  generation: 7
  name: repository-gogs
  namespace: alm
  resourceVersion: "2060363"
  selfLink: /apis/networking.istio.io/v1alpha3/namespaces/alm/gateways/repository-gogs
  uid: e4213d6a-551f-11e9-a886-000d3ab0595e
spec:
  selector:
    istio: ingressgateway
  servers:
  - hosts:
    - repository.kube.int
    port:
      name: http
      number: 80
      protocol: HTTP

---

Name:         repository-gogs
Namespace:    alm
Labels:       <none>
Kind:         DestinationRule
Metadata:
  Creation Timestamp:  2019-04-02T10:47:59Z
  Generation:          1
  Resource Version:    2051550
  Self Link:           /apis/networking.istio.io/v1alpha3/namespaces/alm/destinationrules/repository-gogs
  UID:                 c812e074-5534-11e9-a886-000d3ab0595e
Spec:
  Host:  repository-gogs
  Traffic Policy:
    Connection Pool:
      Http:
        Http 1 Max Pending Requests:  1
        Max Requests Per Connection:  1
      Tcp:
        Max Connections:  1
    Outlier Detection:
      Base Ejection Time:    3m
      Consecutive Errors:    1
      Interval:              1s
      Max Ejection Percent:  100
Events:                      <none>

Входные порты:

istio-system istio-ingressgateway LoadBalancer 10.109.51.165 80: 31380 / TCP, 443: 31390 / TCP, 31400: 31400 / TCP, 15011: 31989 / TCP, 8060: 30857 / TCP, 853: 30890 / TCP, 8d

Порты приложений:

alm repository-gogs ClusterIP 10.103.61.149 8004 / TCP,22 / TCP 4d23h

все объекты находятся в одном и том же пространстве имен

У меня есть repository.kube.int в / etc / hosts, привязанном к 172.17.1.6

Когда я делаю:

curl -v http://repository.kube.int:31380/

актуально:


* About to connect() to repository.kube.int port 31380 (#0)
*   Trying 172.17.1.6...
* Connected to repository.kube.int (172.17.1.6) port 31380 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: repository.kube.int:31380
> Accept: */*
>
< HTTP/1.1 404 Not Found
< date: Tue, 02 Apr 2019 15:35:50 GMT
< server: envoy
< content-length: 0
<
* Connection #0 to host repository.kube.int left intact

Если я изменю

- host:
    - repository.kube.int

на

 - host:
     - '*'

Возвращается нормально

* About to connect() to repository.kube.int port 31380 (#0)
*   Trying 172.17.1.6...
* Connected to repository.kube.int (172.17.1.6) port 31380 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: repository.kube.int:31380
> Accept: */*
>
< HTTP/1.1 200 OK
< content-type: text/html; charset=UTF-8
< set-cookie: lang=en-US; Path=/; Max-Age=2147483647
< set-cookie: i_like_gogs=c1968b7f9886cc0f; Path=/; HttpOnly
< set-cookie: _csrf=hacKNx2Ik5wxjJgWx1m7VRTY2go6MTU1NDIxOTUwNDM3ODI2MDQzMA%3D%3D; Path=/; Expires=Wed, 03 Apr 2019 15:38:24 GMT; HttpOnly
< date: Tue, 02 Apr 2019 15:38:24 GMT
< x-envoy-upstream-service-time: 3
< server: envoy
< transfer-encoding: chunked
<
<!DOCTYPE html>

что я делаю не так?

...