docker - Swagger UI 在 kubernetes 内部试用
问题描述
我已经在 Kubernetes 上部署了 swagger UI。现在单击Try it out
按钮时,它不会向 Kubernetes 的内部服务发送请求。
由于所有服务都在 Kubernetes 中本地运行,我们必须使用HTTP
,但我的 swagger UI 是打开的,HTTPS
所以也会出现混合内容错误。
有什么方法可以使用在 Kubernetes 中运行的 swagger UI 调用内部服务。
这是我的演示 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: >-
解决方案
我宁愿建议使用入口并在https
域中添加更多规则。
入口:
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 更新入口,然后尝试使用端口转发,它将无法正常工作,并且同样会出现浏览器混合内容的错误。
推荐阅读
- java - 如何从另一个类调用存储在 applicationScope 中的 ArrayList
- angular - 如何使用 mocha 设置 angular.io 测试
- python - 如何将应用程序附加到原始 IP 和 TCP 层
- python - 如何通过在循环中向后访问来访问字符串的一部分
- struct - 结构的swift变量在switch语句中不可用
- dart - 如何在构建方法之外访问 State 类中的 Stateful 小部件变量?
- html - 如何在文本“John Doe”下移动文本“Github”?
- php - 如何在 php 脚本中接受 PostgreSQL 数据库数量?
- c - 了解 c 语言代码片段的预期行为
- python - 如何在 django 的同一页面上拆分帖子视图