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

可用性

重要

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

本文介绍将 Azure API Management的自承载网关组件部署到 Kubernetes 群集的步骤。

先决条件

部署到 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 工件注册表下载的容器映像中启动自承载网关 Pod。
    • 第一个步骤创建 Kubernetes 机密,其中包含在步骤 4 中生成的访问令牌。 接下来,它会为该自承载网关创建一个 Kubernetes 部署,该部署使用一个用于配置网关的 ConfigMap。

确认网关正在运行

  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 管理服务进行通信,并定期发送“心跳信号”。显示门户中自托管网关状态的屏幕截图。

小窍门

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