使用 YAML 将自承载网关部署到 Kubernetes

本文描述了将 Azure API 管理的自承载网关组件部署到 Kubernetes 群集的步骤。

重要

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

可用性

重要

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

先决条件

部署到 Kubernetes

提示

以下步骤将自承载网关部署到 Kubernetes,并使用网关访问令牌(身份验证密钥)对 API Management 实例启用身份验证。 还可将自承载网关部署到 Kubernetes,并使用 Microsoft Entra ID 对 API 管理实例启用身份验证。

  1. 选择“部署和基础结构”下的“网关” 。
  2. 选择要部署的自承载网关资源。
  3. 选择“部署”。
  4. 根据默认的“过期时间”和“机密密钥”值,“令牌”文本框中已自动生成了访问令牌 。 如果需要,请在其中一个或两个控件中选择值以生成新令牌。
  5. 选择“部署脚本”下的“Kubernetes”选项卡 。
  6. 选择“<gateway-name>.yml”文件链接并下载 YAML 文件。
  7. 选择“部署”文本框右下角的“复制”图标,将 kubectl 命令保存到剪贴板 。
  8. 使用 Azure Kubernetes 服务 (AKS) 时,请在新的终端会话中运行 az aks get-credentials --resource-group <resource-group-name> --name <resource-name> --admin
  9. 运行命令以在默认命名空间中创建必要的 Kubernetes 对象,并通过从 Microsoft Artifact Registry 下载的容器映像启动自承载网关 Pod。
    • 第一个步骤创建 Kubernetes 机密,其中包含在步骤 4 中生成的访问令牌。 接下来,它为将 ConfigMap 和网关配置结合使用的自承载网关创建 Kubernetes 部署。

确认网关正在运行

  1. 运行以下命令,检查部署是否成功。 创建所有对象和初始化 Pod 可能需要一些时间。

    kubectl get deployments
    

    它应该返回

    NAME             READY   UP-TO-DATE   AVAILABLE   AGE
    <gateway-name>   1/1     1            1           18s
    
  2. 运行以下命令,检查是否已成功创建服务。 你的服务 IP 和端口与此不同。

    kubectl get services
    

    它应该返回

    NAME                                TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
    <gateway-name>-live-traffic         ClusterIP      None            <none>        4290/UDP,4291/UDP   9m1s
    <gateway-name>-instance-discovery   LoadBalancer   10.99.236.168   <pending>     80:31620/TCP,443:30456/TCP   9m1s
    
  3. 返回到 Azure 门户,选择“概述”。

  4. 确认“状态”显示绿色复选标记,后跟与 YAML 文件中指定的副本数匹配的节点计数。 此状态表示部署的自承载网关 Pod 正在成功地与 API 管理服务通信,并且具有常规的“检测信号”。Screenshot showing status of self-hosted gateway in the portal.

提示

  • 运行 kubectl logs deployment/<gateway-name> 命令以查看随机选择的 Pod 的日志(如果有多个 Pod)。
  • 运行 kubectl logs -h 以获得一组完整的命令选项,例如如何查看特定 Pod 或容器的日志。

后续步骤