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

可用性

重要

此功能在 API 管理的“高级”和“开发人员”层中可用。

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

重要

对 Azure API 管理自承载网关版本 0 和版本 1 容器映像的支持及其相应配置 API v1 将于 2023 年 10 月 1 日结束。 使用迁移指南,将自承载网关 v2.0.0 或更高版本与配置 API v2 结合使用。 在弃用文档中了解详细信息

先决条件

将自承载网关部署到 AKS

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

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

  3. 选择“部署”。

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

  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> 命令查看自承载网关日志的快照。

后续步骤