Я настраиваю кластер, используя 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>
что я делаю не так?