【问题标题】:Azure Api managament and kubernetesAzure Api 管理和 Kubernetes
【发布时间】:2018-06-19 18:44:28
【问题描述】:

我在 kubernetes 中有一个 rest api 暴露为 NodePort,但是当我尝试在 api 管理中添加 api 时,OpenApiSpecification 与下一个 url http://10.35.748.671:31285/swagger/v1/swagger.json 它显示了一个错误:

无法下载指定文件。请确保 URL 有效且文件可公开访问。

这是我的服务说明

kubectl 描述 svc kservice

Name:                     kservice

Namespace:                default

Labels:                   app=apis

Annotations:              <none>

Selector:                 app=apikb

Type:                     NodePort

IP:                       10.0.0.123

Port:                     <unset>  80/TCP

TargetPort:               80/TCP

**NodePort:                 <unset>  31285/TCP**

Endpoints:                10.35.748.671:80,10.35.748.697:80

Session Affinity:         None

External Traffic Policy:  Cluster

Events:                   <none>

¿如何将 api 管理与 kubertes 中的服务连接起来?

【问题讨论】:

    标签: api asp.net-core kubernetes azure-api-management


    【解决方案1】:

    地址似乎是内部地址。如果托管开放 API 规范文件的 URL 未公开可用,则通过 Azure 门户导入 API 可能不起作用。如果是这样 - 将 swagger.json 下载到您的计算机并通过上传该文件来导入此 API。

    【讨论】:

      【解决方案2】:

      API 管理是一个门面/网关。首先检查,您是否能够直接访问您的 API 端点?如果否,您需要先解决此问题。

      您的 API 文档需要 Swagger 文件,我假设您必须已创建。如果否,从端点创建并访问该文件?

      还有一个建议,你需要使用静态 IP,否则当你的虚拟机重启时,你的 IP 会发生变化,你的 API 会抛出 502 错误。

      【讨论】:

        【解决方案3】:

        我们无法从 API 管理访问 Kubernetes 服务,因为:

        1. 两者需要在同一个子网上。
        2. 我们必须将 kubernetes 版本升级到 1.10.3 才能看到使用 NodePort 部署的服务。

        【讨论】:

          猜你喜欢
          • 2021-01-18
          • 2021-01-16
          • 1970-01-01
          • 2021-01-16
          • 1970-01-01
          • 1970-01-01
          • 2014-11-25
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多