将 Azure API 管理自承载网关部署到 Azure Kubernetes 服务

可用性

重要

该功能在API管理的高级开发者层级中可用。

本文提供了将 Azure API 管理自承载网关组件部署到 Azure Kubernetes 服务(AKS)的步骤。 若要将自托管网关部署到 Kubernetes 群集,请参阅有关使用 部署 YAML 文件Helm 进行部署的操作指南。

先决条件

将自承载网关部署到 AKS

  1. 选择“部署和基础结构”下的网关

  2. 选择要部署的自承载网关资源。

  3. 选择“部署”。

  4. “令牌”文本框中的新令牌是使用默认“过期时间”和“机密密钥”值自动生成的。 根据需要调整其中的一个或两个值,然后选择“生成”以创建新令牌。

  5. 确保在“部署脚本”下选择“Kubernetes”。

  6. 选择<网关名称>.yml文件链接,该链接位于部署旁边,以下载该文件。

  7. 根据需要调整 .yml 文件中的 config.service.endpoint、端口映射和容器名称。

  8. 根据你的方案,你可能需要更改服务类型

    • 默认值为 LoadBalancer,它是外部负载均衡器。
    • 可以使用内部负载均衡器将对自承载网关的访问限制为仅限内部用户。
    • 下面的示例使用 NodePort
  9. 选择“部署”文本框右侧的“复制”图标,将 命令保存到剪贴板。

  10. 将该命令粘贴到终端(或命令)窗口。 该命令要求下载的环境文件位于当前目录中。

    kubectl apply -f <gateway-name>.yaml
    
  11. 执行命令。 此命令指示 AKS 群集:

    • 使用从 Microsoft Container Registry 下载的自承载网关映像运行容器。
    • 配置容器以公开 HTTP (8080) 和 HTTPS (443) 端口。
  12. 运行以下命令,检查网关 Pod 是否正在运行。 此 Pod 名称是一个示例。

    kubectl get pods
    NAME                                   READY     STATUS    RESTARTS   AGE
    contoso-apim-gateway-59f5fb94c-s9stz   1/1       Running   0          1m
    
  13. 运行以下命令,检查网关服务是否正在运行。 服务名称和 IP 地址是示例。

    kubectl get services
    NAME             TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
    contosogateway   NodePort    10.110.230.87   <none>        80:32504/TCP,443:30043/TCP   1m
    
  14. 返回到 Azure 门户,确认部署的网关节点报告正常状态。

小窍门

使用kubectl logs <gateway-pod-name>命令查看自托管网关日志的快照。