我在kubernetes中有一个休息的api,暴露为NodePort,但是当我尝试在api管理中添加api时,使用下一个网址http://10.35.748.671:31285/swagger/v1/swagger.json破坏了OpenApiSpecification,这显示了一个错误:
无法下载指定的文件。请确保该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中的服务连接?
答案 0 :(得分:0)
该地址似乎是内部地址。如果托管开放API规范文件的URL不公开,则无法通过Azure Portal导入API。如果是这样的话-将swagger.json下载到您的计算机上,并通过上传该文件导入此API。
答案 1 :(得分:0)
API管理是外观/网关。首先检查一下,您可以直接访问API端点吗?如果否,则需要先解决此问题。
API文档所需的Swagger文件,我假设您必须已创建。如果否,是否从端点创建并访问该文件?
另一个建议,您需要使用静态IP,否则,每当您的VM重新启动时,您的IP都会更改,您的API会抛出502错误。
答案 2 :(得分:-1)
由于以下原因,我们无法从API管理访问Kubernetes服务: