小窍门
有关本教程使用 Azure Kubernetes 服务的更新版本,请参阅 教程:在 Azure Kubernetes 服务(AKS)中缩放应用程序。
警告
Azure 容器服务 (ACS) 正在被弃用。 不会向 ACS 添加新特性或功能。 所有 API、门户体验、CLI 命令和文档都标记为已弃用。
2017 年,我们推出了 Azure Kubernetes 服务 (AKS),以简化 Kubernetes 的管理、部署和操作。 如果使用 Kubernetes 业务流程协调程序,请在 2020 年 1 月 31 日前迁移到 AKS。 若要开始,请参阅 迁移到 Azure Kubernetes 服务。
有关详细信息,请参阅 Azure.com 上的 Azure 容器服务弃用声明。
如果已按照教程作,则 Azure 容器服务中有一个正在运行的 Kubernetes 群集,并部署了 Azure Voting 应用。
在本教程的第 5 部分(共 7 部分)中,你将扩展应用中的 Pod 并尝试 Pod 自动扩展。 此外,还了解如何缩放 Azure VM 代理节点数,以更改群集托管工作负荷的容量。 已完成的任务包括:
- 手动缩放 Kubernetes 容器组
- 配置运行应用前端的自动缩放 Pod
- 缩放 Kubernetes Azure 代理节点
在后续教程中,Azure Vote 应用程序已更新,Log Analytics 配置为监视 Kubernetes 群集。
在您开始之前
在前面的教程中,应用程序已打包到容器映像中,此映像上传到 Azure 容器注册表,并创建了 Kubernetes 群集。 然后,应用程序在 Kubernetes 群集上运行。
如果尚未完成这些步骤,并且想要继续作,请返回到 教程 1 – 创建容器映像。
手动缩放容器组
到目前为止,已部署 Azure Vote 前端和 Redis 实例,每个实例都有一个副本。 若要验证,请运行 kubectl get 命令。
在浏览器中访问 https://shell.azure.com 以打开 Cloud Shell。
kubectl get pods
输出:
NAME READY STATUS RESTARTS AGE
azure-vote-back-2549686872-4d2r5 1/1 Running 0 31m
azure-vote-front-848767080-tf34m 1/1 Running 0 31m
使用命令 kubectl scale 手动更改 azure-vote-front 部署中的 Pod 数。 此示例将数字增加到 5。
kubectl scale --replicas=5 deployment/azure-vote-front
运行 kubectl get pods,验证 Kubernetes 是否正在创建 Pod。 在大约一分钟之后,额外的 Pod 开始运行。
kubectl get pods
输出:
NAME READY STATUS RESTARTS AGE
azure-vote-back-2606967446-nmpcf 1/1 Running 0 15m
azure-vote-front-3309479140-2hfh0 1/1 Running 0 3m
azure-vote-front-3309479140-bzt05 1/1 Running 0 3m
azure-vote-front-3309479140-fvcvm 1/1 Running 0 3m
azure-vote-front-3309479140-hrbf2 1/1 Running 0 15m
azure-vote-front-3309479140-qphz8 1/1 Running 0 3m
自动缩放容器组
Kubernetes 支持 水平 Pod 自动缩放 ,以根据 CPU 利用率或其他选择指标调整部署中的 Pod 数。
若要使用自动缩放程序,Pod 必须定义 CPU 请求和限制。 在部署中 azure-vote-front ,前端容器请求 0.25 CPU,限制为 0.5 CPU。 设置如下所示:
resources:
requests:
cpu: 250m
limits:
cpu: 500m
以下示例使用 kubectl 自动扩缩 命令自动扩缩部署中的 azure-vote-front pod 数。 此处,如果 CPU 使用率超过 50%,则自动缩放程序将 Pod 增加到最多 10 个。
kubectl autoscale deployment azure-vote-front --cpu-percent=50 --min=3 --max=10
若要查看自动缩放程序的状态,请运行以下命令:
kubectl get hpa
输出:
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
azure-vote-front Deployment/azure-vote-front 0% / 50% 3 10 3 2m
几分钟后,在 Azure Vote 应用上负载很小的情况下,Pod 副本的数量会自动减少到 3。
扩展代理
如果在上一教程中使用默认命令创建了 Kubernetes 群集,则它具有三个代理节点。 如果在群集上规划了更多或更少的容器工作负荷,可以手动调整代理数。 使用 az acs scale 命令,并使用参数指定代理 --new-agent-count 数。
以下示例将名为 myK8sCluster 的 Kubernetes 群集中的代理节点数增加到 4。 该命令需要几分钟才能完成。
az acs scale --resource-group=myResourceGroup --name=myK8SCluster --new-agent-count 4
命令输出显示值 agentPoolProfiles:count中的代理节点数:
{
"agentPoolProfiles": [
{
"count": 4,
"dnsPrefix": "myK8SCluster-myK8SCluster-e44f25-k8s-agents",
"fqdn": "",
"name": "agentpools",
"vmSize": "Standard_D2_v2"
}
],
...
后续步骤
在本教程中,你在 Kubernetes 群集中使用了不同的缩放功能。 涵盖的任务包括:
- 手动缩放 Kubernetes Pod
- 配置运行应用前端的自动缩放 Pod
- 缩放 Kubernetes Azure 代理节点
转到下一教程,了解如何在 Kubernetes 中更新应用程序。