当前位置: 首页 > 知识库问答 >
问题:

Swagger UI在kubernetes内部试用

子车劲
2023-03-14

我在Kubernetes上部署了swagger UI。现在,当点击试用按钮时,它不会向Kubernetes的内部服务发送请求。

由于所有服务都在Kubernetes本地运行,我们必须使用HTTP,但我的招摇过市用户界面是在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: >-

共有2个答案

劳高爽
2023-03-14

您可以使用端口转发:

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

然后转到localhost:

另一种方法是使用内部负载均衡器。有些选项取决于您的云提供商。

仉磊
2023-03-14

我宁愿建议使用入口和添加进一步的规则与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更新入口,然后尝试使用port forward,则将无法工作,并且会出现浏览器混合内容错误。

 类似资料:
  • SwaggerUI 汉化版;修改了部分样式;结合SpringFox SpringFox-Swagger-UI实现API管理

  • 我在Kubernetes集群中配置了Keycloak(10.0.3)服务器。 问题是,当我试图访问我的web应用程序时,它总是重定向到'http://keycloak-cluster-http.keycloak-cluster.svc.cluster.local/auth/realms/myrealm',这在K8S之外无法解决。 如果我将issuiser-uri更改为http://keycloak

  • TiCDC 是一款 TiDB 增量数据同步工具,本文介绍如何使用 TiDB Operator 在 Kubernetes 上部署 TiCDC。 前置条件 TiDB Operator 部署完成。 全新部署 TiDB 集群同时部署 TiCDC 参考 在标准 Kubernetes 上部署 TiDB 集群进行部署。 在现有 TiDB 集群上新增 TiCDC 组件 编辑 TidbCluster Custom

  • 本文介绍如何在 Kubernetes 上部署 TiFlash。 前置条件 TiDB Operator 部署完成。 全新部署 TiDB 集群同时部署 TiFlash 参考 在标准 Kubernetes 上部署 TiDB 集群进行部署。 在现有 TiDB 集群上新增 TiFlash 组件 编辑 TidbCluster Custom Resource: kubectl edit tc ${cluster

  • 如何在docker容器中运行基于的测试用例? 我有一个简单的Spring Boot应用程序,它具有集成测试(组件级),使用与容器交互。测试用例正在破坏来自外部容器(本地机器)的罚款。 我们正在容器中运行所有内容,并且build正在docker jenkins映像上运行。Docker文件正在创建jar,然后创建image。找不到安装的docker。下面是我的docker文件。 处理这个案子最好的办法

  • 我有一个连接到外部数据库的应用服务器的吊舱。为了冗馀,我希望运行多个POD,所以我使用rolingupdate策略将部署扩展到3个(MAXSURABE=1和MAXUNAVABLE=1)。 有时(大多数情况下)pods在第一次创建时失败,因为我使用的是liquibase,所有pods都试图同时锁定数据库。