Входной путь Openshift `http` против` https` - PullRequest
0 голосов
/ 21 апреля 2019

Я установил istio на мой кластер openshift. Для тестирования я получил пример приложения bookinfo, работающего на http. Когда я попробовал это для моего реального приложения, http работает, но не https. Я не уверен, что мне нужно что-то изменить в конфигурации роутера? Ниже приводится yaml

Ниже показаны правильные сертификаты на входных воротах

kubectl exec -ti $(kubectl get po -l istio=ingressgateway -n istio-system -o jsonpath='{.items[0].metadata.name}') -n istio-system -- curl  127.0.0.1:15000/certs

Следующий маршрут

 oc get route istio-wildcard-ingress -n istio-system
NAME                     HOST/PORT                         PATH      SERVICES               PORT      TERMINATION   WILDCARD
istio-wildcard-ingress   www.istio.myurl.myexample.com             istio-ingressgateway   http2                   Subdomain

Когда я пытаюсь свернуться на http

curl -kv http://asdfgapi.istio.myurl.myexample.com/api/v1/applicant/searchByANumber?aNumber=A123456789

Я получаю 200 и правильный ответ обратно. Я вижу правильные журналы в модулях и в прокси-сервере посланника

НО Следующий локон на https не работает

curl -kv https://asdfgapi.istio.myurl.myexample.com/api/v1/applicant/searchByANumber?aNumber=A123456789

Я получаю 503 обратно вместе со следующим

<div>
      <h1>Application is not available</h1>
      <p>The application is currently not serving requests at this endpoint. It may not have been started or is still starting.</p>

      <div class="alert alert-info">
        <p class="info">
          Possible reasons you are seeing this page:
        </p>
        .....
      </div>
    </div>
---
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: asdfgapi-gateway
spec:
  selector:
    istio: ingressgateway # use istio default controller
  servers:
  - port:
      number: 443
      name: https
      protocol: HTTPS
    tls:
      mode: SIMPLE
      serverCertificate: /etc/istio/ingressgateway-certs/tls.crt
      privateKey: /etc/istio/ingressgateway-certs/tls.key
    hosts:
    - "*.istio.myurl.myexample.com"
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "*.istio.myurl.myexample.com"

---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: asdfgapi
spec:
  hosts:
  - "asdfgapi.istio.myurl.myexample.com"
  gateways:
  - asdfgapi-gateway
  http:
  - route:
    - destination:
        host: asdfgapi.myexample-dt.svc.cluster.local
        port:
          number: 8080


---
apiVersion: v1
kind: Service
metadata:
  name: asdfgapi
  labels:
    app: asdfgapi
    service: asdfgapi
spec:
  ports:
  - port: 8080
    name: http
  selector:
    app: asdfgapi

---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: asdfgapi
  labels:
    app: asdfgapi
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: asdfgapi
    spec:
      containers:
        - env:
            - name: SPRING_PROFILES_ACTIVE
              value: dt
          image: 'nexus.myexample.com:9083/asdfgapi:162db1e'
          imagePullPolicy: Always
          name: asdfgapi
          ports:
            - containerPort: 8080
              protocol: TCP
          volumeMounts:
            - mountPath: /var/log/app
              name: volume1
      volumes:
        - emptyDir: {}
          name: volume1

---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: asdfgapi
spec:
  host: asdfgapi
  trafficPolicy:
    tls:
      mode: ISTIO_MUTUAL

---

Следующее не возвращает никаких журналов, связанных с моим модулем

kubectl logs istio-ingressgateway-7f8dd8f46f-xnlwq -n istio-system

Очевидно, что запрос не достигает пакета

Есть предложения по вопросу, почему https не работает?

...