다음을 통해 공유

使用 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 或容器的日志。