使用 YAML 将自承载网关部署到 Kubernetes
可用性
重要
此功能在 API 管理的“高级”和“开发人员”层中可用。
本文描述了将 Azure API 管理的自承载网关组件部署到 Kubernetes 群集的步骤。
重要
对 Azure API 管理自承载网关版本 0 和版本 1 容器映像的支持及其相应配置 API v1 将于 2023 年 10 月 1 日结束。 使用迁移指南,将自承载网关 v2.0.0 或更高版本与配置 API v2 结合使用。 在弃用文档中了解详细信息
先决条件
- 完成以下快速入门:创建一个 Azure API 管理实例。
- 创建 Kubernetes 群集,或访问现有群集。
提示
单节点群集非常适用于开发和评估目的。 将本地或云中的 Kubernetes 认证多节点群集用于生产工作负载。
- 在 API 管理实例中预配自承载网关资源。
部署到 Kubernetes
提示
以下步骤将自承载网关部署到 Kubernetes,并使用网关访问令牌(身份验证密钥)对 API Management 实例启用身份验证。 还可将自承载网关部署到 Kubernetes,并使用 Microsoft Entra ID 对 API 管理实例启用身份验证。
- 选择“部署和基础结构”下的“网关” 。
- 选择要部署的自承载网关资源。
- 选择“部署”。
- 根据默认的“过期时间”和“机密密钥”值,“令牌”文本框中已自动生成了访问令牌 。 如果需要,请在其中一个或两个控件中选择值以生成新令牌。
- 选择“部署脚本”下的“Kubernetes”选项卡 。
- 选择“<gateway-name>.yml”文件链接并下载 YAML 文件。
- 选择“部署”文本框右下角的“复制”图标,将
kubectl
命令保存到剪贴板 。 - 使用 Azure Kubernetes 服务 (AKS) 时,请在新的终端会话中运行
az aks get-credentials --resource-group <resource-group-name> --name <resource-name> --admin
。 - 运行命令以在默认命名空间中创建必要的 Kubernetes 对象,并通过从 Microsoft Artifact Registry 下载的容器映像启动自承载网关 Pod。
- 第一个步骤创建 Kubernetes 机密,其中包含在步骤 4 中生成的访问令牌。 接下来,它为将 ConfigMap 和网关配置结合使用的自承载网关创建 Kubernetes 部署。
确认网关正在运行
运行以下命令,检查部署是否成功。 创建所有对象和初始化 Pod 可能需要一些时间。
kubectl get deployments
它应该返回
NAME READY UP-TO-DATE AVAILABLE AGE <gateway-name> 1/1 1 1 18s
运行以下命令,检查是否已成功创建服务。 你的服务 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
返回到 Azure 门户,选择“概述”。
确认“状态”显示绿色复选标记,后跟与 YAML 文件中指定的副本数匹配的节点计数。 此状态表示部署的自承载网关 Pod 正在成功地与 API 管理服务通信,并且具有常规的“检测信号”。
提示
- 运行
kubectl logs deployment/<gateway-name>
命令以查看随机选择的 Pod 的日志(如果有多个 Pod)。 - 运行
kubectl logs -h
以获得一组完整的命令选项,例如如何查看特定 Pod 或容器的日志。
后续步骤
- 若要详细了解自承载网关,请参阅自承载网关概述。
- 详细了解如何在生产环境中的 Kubernetes 上运行自承载网关。