教程:在 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 中更新应用程序。