教程:在 Azure Stack HCI 和 Windows Server 上的 Azure Kubernetes 服务中缩放应用程序
如果已完成先前的教程,那么在 Azure Stack HCI 和 Windows Server 上的 Azure Kubernetes 服务 (AKS) 中应该会有一个可正常工作的 Kubernetes 群集,并且已部署示例 Azure 投票应用。 本教程第 5 部分(共 7 部分)介绍了在应用中横向扩展 Pod。 将了解如何执行以下操作:
- 缩放 Kubernetes 节点
- 手动缩放运行应用程序的 Kubernetes Pod
在后面的教程中,Azure 投票应用程序将更新为新版本。
开始之前
前面的教程介绍了如何将应用程序打包到容器映像中,如何将映像上传到 Azure 容器注册表,以及如何创建 Azure Stack HCI 和 Windows Server 上的 AKS 群集。 然后,应用程序部署到了 AKS 群集。 如果尚未完成这些步骤,请先阅读教程 1 - 创建容器映像。
手动缩放 Pod
前面的教程介绍了如何部署 Azure 投票应用前端和 Redis 实例来创建单个副本。 若要查看群集中 Pod 的数目和状态,请使用以下 kubectl get 命令:
kubectl get pods
以下示例输出显示一个前端 Pod 和一个后端 Pod:
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
若要手动更改 azure-vote-front 部署中的 Pod 数,请使用 kubectl scale 命令。 以下示例将前端 Pod 数增加到 5:
kubectl scale --replicas=5 deployment/azure-vote-front
再次运行 kubectl get pods,验证命令是否成功创建其他 Pod。 大约一分钟后,即可在群集中使用 Pod:
kubectl get pods
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 群集,则部署将拥有一个名为 mycluster 的群集,其中有一个名为 linuxnodepool 的 Linux 节点池,节点计数为 1 。
使用 Set-AksHciNodePool 命令缩放节点池。 以下示例将节点池从 1 个扩展为 3 个 Linux 节点。
Set-AksHciNodePool -clusterName mycluster -name linuxnodepool -count 3
如果需要缩放控制平面节点,请使用 Set-AksHciCluster 命令。
注意
在 Azure Stack HCI 和 Windows Server 上的 AKS 早期版本中,Set-AksHciCluster 命令还用于缩放工作器节点。 Azure Stack HCI 和 Windows Server 上的 AKS 正在现在引入工作负荷群集中的节点池,因此,如果群集是使用 New-AksHciCluster 中设置的旧参数创建的,则此命令只能用于缩放工作器节点。 若要缩放节点池中的工作器节点,请使用 Set-AksHciNodePool 命令。
运行以下命令以确认缩放成功。
Get-AksHciNodePool -clusterName mycluster
输出
ClusterName : mycluster
NodePoolName : linuxnodepool
Version : v1.20.7
OsType : Linux
NodeCount : 3
VmSize : Standard_K8S3_v1
Phase : Deployed
后续步骤
在本教程中,在 Azure Stack HCI 和 Windows Server 上的 AKS 群集中使用了不同的缩放功能。 你已了解如何执行以下操作:
- 手动缩放运行应用程序的 Kubernetes Pod
- 手动缩放 Kubernetes 节点
继续学习下一教程,了解如何在 Kubrnetes 中更新应用程序。