Swagger UI опробовать его внутри в kubernetes - PullRequest
0 голосов
/ 15 апреля 2020

Я развернул Swagger UI в Kubernetes. теперь он не отправляет запрос во внутреннюю службу Kubernetes при нажатии на кнопку Try it out.

Поскольку все службы, работающие локально в Kubernetes, мы должны использовать HTTP, но мой пользовательский интерфейс swagger включен HTTPS, поэтому также появляется ошибка смешанного содержимого.

есть ли способ, которым мы можем вызвать внутреннюю сервис с использованием пользовательского интерфейса Swagger, работающего внутри Kubernetes.

это моя демонстрационная версия swagger.yaml:

openapi: 3.0.1
servers:
  - url: '{scheme}://test-service'
    variables:
      scheme:
        description: 'The Data Set API is accessible via https and http'
        enum:
          - 'https'
          - 'http'
        default: 'https'
info:
  description: >-

Ответы [ 2 ]

1 голос
/ 15 апреля 2020

Я бы предпочел использовать вход и добавить дополнительное правило с https доменом.

ingress:

 apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    cert-manager.io/cluster-issuer: swagger-staging
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /$2
  name: swagger-ingress
  namespace: default
spec:
  rules:
  - host: example.com
    http:
      paths:
      - path: /test-service(/|$)(.*)
        backend:
          serviceName: service-1
          servicePort: 80
      - path: service-2(/|$)(.*)
        backend:
          serviceName: service-2
          servicePort: 80
      - path: /service-3(/|$)(.*)
        backend:
          serviceName: service-3
          servicePort: 80
      - path: /service-4(/|$)(.*)
        backend:
          serviceName: service-4
          servicePort: 80
      - path: /service-5(/|$)(.*)
        backend:
          serviceName: service-5
          servicePort: 80

примечание: если вы попытаетесь обновить вход с помощью https, а позже попробуйте с port-forward он не будет работать и выдает ошибку смешанного содержимого браузера.

0 голосов
/ 15 апреля 2020

Вы можете использовать переадресацию портов :

kubectl -n <namespace> port-forward svc/<your-swagger-service> <localhost-port>:<swagger-port-in-your-svc>

И затем go до localhost:<localhost-port>

Другой способ - использование внутреннего балансировщик нагрузки есть некоторые опции, зависящие от вашего облачного провайдера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...