Tutorial: Escalado de aplicaciones en AKS habilitadas por Azure Arc

Se aplica a: AKS en Azure Stack HCI 22H2, AKS en Windows Server

Si completó los tutoriales anteriores, debe tener un clúster de Kubernetes en funcionamiento en AKS e implementar también la aplicación azure Voting de ejemplo.

En este tutorial, la parte cinco de siete, describe cómo escalar horizontalmente los pods en la aplicación. Aprenderá a:

  • Escalar los nodos de Kubernetes
  • Escalar de forma manual pods de Kubernetes que ejecutan la aplicación

En tutoriales posteriores, la aplicación Azure Vote se actualiza a una nueva versión.

Antes de empezar

En los tutoriales anteriores se describe cómo empaquetar una aplicación en una imagen de contenedor, cargar la imagen en Azure Container Registry y crear un clúster de Kubernetes. Luego, la aplicación se implementó en el clúster. Si no ha completado estos pasos, comience con el Tutorial 1: Preparación de una aplicación para la implementación híbrida de AKS.

Escalado manual de pods

En los tutoriales anteriores se describe cómo implementar la instancia front-end de la aplicación de votación de Azure y Redis para crear una sola réplica. Para ver el número y el estado de los pods del clúster, use el siguiente comando kubectl get:

kubectl get pods

La salida del ejemplo siguiente muestra un pod de front-end y un pod de back-end:

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

Para cambiar manualmente el número de pods en la implementación azure-vote-front, use el comando kubectl scale. El ejemplo siguiente aumenta el número de pods de front-end a 5:

kubectl scale --replicas=5 deployment/azure-vote-front

Vuelva a ejecutar kubectl get pods para comprobar que el comando ha creado correctamente los pods adicionales. Tras un minuto aproximadamente, los pods adicionales estarán disponibles en el clúster:

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

Escalado de los nodos de trabajo en el grupo de nodos

Si ha creado el clúster de Kubernetes mediante los comandos del tutorial anterior, la implementación tiene un clúster denominado mycluster con un grupo de nodos de Linux denominado linuxnodepool, que tiene un recuento de nodos de 1.

Use el comando Set-AksHciNodePool para escalar el grupo de nodos. En el ejemplo siguiente se escala el grupo de nodos de 1 a 3 nodos de Linux:

Set-AksHciNodePool -clusterName mycluster -name linuxnodepool -count 3

Si desea escalar los nodos del plano de control, use el comando Set-AksHciCluster.

Nota:

El comando Set-AksHciNodePool se usa para escalar nodos de trabajo en un grupo de nodos. En versiones anteriores de AKS, que no admitía grupos de nodos en clústeres de cargas de trabajo, se usó el comando Set-AksHciCluster . Solo puede usar Set-AksHciCluster para escalar nodos de trabajo en clústeres creados con el parámetro antiguo establecido en New-AksHciCluster.

Ejecute el siguiente comando para confirmar que el escalado se realizó correctamente:

Get-AksHciNodePool -clusterName mycluster
ClusterName  : mycluster
NodePoolName : linuxnodepool
Version      : v1.20.7
OsType       : Linux
NodeCount    : 3
VmSize       : Standard_K8S3_v1
Phase        : Deployed

Pasos siguientes

En este tutorial, se han usado distintas características de escalado en el clúster de Kubernetes. Ha aprendido a:

  • Escalar de forma manual pods de Kubernetes que ejecutan la aplicación
  • Escalado manual de los nodos de Kubernetes

Pase al siguiente tutorial para aprender a actualizar una aplicación en Kubernetes.