Azure Api 管理和 kubernetes

Azure Api managament and kubernetes

我在作为 NodePort 公开的 kubernetes 中休息 api 但是当我尝试在 api 管理 trought OpenApiSpecification 中添加 api 和下一个 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 规范文件的 URL 不是公开可用的,则通过 Azure 门户导入 API 可能无法工作。如果是这样 - 下载 swagger.json 到您的机器并通过上传该文件导入此 API。

API管理是facade/Gateway。首先检查一下,您是否能够直接访问 API 端点?如果否,您需要先解决这个问题。

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

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

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

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