可用性
重要
该功能在API管理的高级和开发者层级中可用。
本文提供了将 Azure API 管理自承载网关组件部署到 Azure Kubernetes 服务(AKS)的步骤。 若要将自托管网关部署到 Kubernetes 群集,请参阅有关使用 部署 YAML 文件或 Helm 进行部署的操作指南。
先决条件
- 创建一个 Azure API 管理实例
- 使用 Azure CLI、使用 Azure PowerShell 或使用 Azure 门户创建 Azure Kubernetes 群集。
- 在 API 管理实例中预配网关资源。
将自承载网关部署到 AKS
选择“部署和基础结构”下的网关。
选择要部署的自承载网关资源。
选择“部署”。
“令牌”文本框中的新令牌是使用默认“过期时间”和“机密密钥”值自动生成的。 根据需要调整其中的一个或两个值,然后选择“生成”以创建新令牌。
确保在“部署脚本”下选择“Kubernetes”。
选择<网关名称>.yml文件链接,该链接位于部署旁边,以下载该文件。
根据需要调整 .yml 文件中的
config.service.endpoint、端口映射和容器名称。根据你的方案,你可能需要更改服务类型。
- 默认值为
LoadBalancer,它是外部负载均衡器。 - 可以使用内部负载均衡器将对自承载网关的访问限制为仅限内部用户。
- 下面的示例使用
NodePort。
- 默认值为
选择“部署”文本框右侧的“复制”图标,将 命令保存到剪贴板。
将该命令粘贴到终端(或命令)窗口。 该命令要求下载的环境文件位于当前目录中。
kubectl apply -f <gateway-name>.yaml执行命令。 此命令指示 AKS 群集:
- 使用从 Microsoft Container Registry 下载的自承载网关映像运行容器。
- 配置容器以公开 HTTP (8080) 和 HTTPS (443) 端口。
运行以下命令,检查网关 Pod 是否正在运行。 此 Pod 名称是一个示例。
kubectl get pods NAME READY STATUS RESTARTS AGE contoso-apim-gateway-59f5fb94c-s9stz 1/1 Running 0 1m运行以下命令,检查网关服务是否正在运行。 服务名称和 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返回到 Azure 门户,确认部署的网关节点报告正常状态。
小窍门
使用kubectl logs <gateway-pod-name>命令查看自托管网关日志的快照。
相关内容
- 若要详细了解自承载网关,请参阅 Azure API 管理自承载网关概述。
- 详细了解 Azure API 管理网关的可观测性功能。
- 详细了解关于在生产环境中的 Kubernetes 上运行自承载网关的指南。
- 详细了解 Azure Kubernetes 服务。