Tutorial: Uso de servicios PaaS con un clúster de Azure Kubernetes Service (AKS)
Con Kubernetes, puede usar servicios PaaS, como Azure Service Bus, para desarrollar y ejecutar aplicaciones.
En este tutorial, parte cinco de siete, creará un espacio de nombres y una cola de Azure Service Bus para probar la aplicación. Aprenderá a:
- Cree un espacio de nombres y una cola de Azure Service Bus.
- Actualice el archivo de manifiesto de Kubernetes para usar la cola de Azure Service Bus.
- Pruebe la aplicación actualizada mediante la realización de un pedido.
Antes de empezar
En los tutoriales anteriores, empaquetó una aplicación en una imagen de contenedor, cargó la imagen en Azure Container Registry, creó un clúster de Kubernetes e implementó una aplicación. Para completar este tutorial, necesita el archivo de manifiesto de Kubernetes aks-store-quickstart.yaml
creado previamente. El código fuente de la aplicación incluía esta descarga de archivo en un tutorial anterior. Asegúrese de clonar el repositorio y de cambiar los directorios en el repositorio clonado. Si no ha realizado estos pasos, pero quiere seguir con el tutorial, comience con Tutorial 1: Preparación de una aplicación para AKS.
Para este tutorial se necesita la versión 2.34.1 o posterior de la CLI de Azure. Ejecute az --version
para encontrar la versión. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure.
Creación de variables de entorno
Cree las siguientes variables de entorno que se usarán para los comandos de este tutorial:
LOC_NAME=eastus RAND=$RANDOM RG_NAME=myResourceGroup AKS_NAME=myAKSCluster SB_NS=sb-store-demo-$RAND
Crear un espacio de nombres de Service Bus y una cola
En los tutoriales anteriores, usó un contenedor RabbitMQ para almacenar los pedidos enviados por el order-service
. En este tutorial, usará un espacio de nombres de Azure Service Bus para proporcionar un contenedor de ámbito para los recursos de Service Bus dentro de la aplicación. También se usa una cola de Azure Service Bus para enviar y recibir mensajes entre los componentes de la aplicación. Para más información sobre Azure Service Bus, consulte Creación de un espacio de nombres y una cola de Azure Service Bus.
Creación de un espacio de nombres de Azure Service Bus con el comando
az servicebus namespace create
.az servicebus namespace create --name $SB_NS --resource-group $RG_NAME --location $LOC_NAME
Creación de una cola de Azure Service Bus con el comando
az servicebus queue create
.az servicebus queue create --name orders --resource-group $RG_NAME --namespace-name $SB_NS
Creación de una regla de autorización de Azure Service Bus con el comando
az servicebus queue authorization-rule create
.az servicebus queue authorization-rule create \ --name sender \ --namespace-name $SB_NS \ --resource-group $RG_NAME \ --queue-name orders \ --rights Send
Obtenga las credenciales de Azure Service Bus para su uso posterior mediante los comandos
az servicebus namespace show
yaz servicebus queue authorization-rule keys list
.az servicebus namespace show --name $SB_NS --resource-group $RG_NAME --query name -o tsv az servicebus queue authorization-rule keys list --namespace-name $SB_NS --resource-group $RG_NAME --queue-name orders --name sender --query primaryKey -o tsv
Actualización del archivo de manifiesto de Kubernetes
Configure
kubectl
para conectarse al clúster ejecutando el comandoaz aks get-credentials
.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Abra el archivo
aks-store-quickstart.yaml
en un editor de texto.Quite las secciones StatefulSet, ConfigMap y Service
rabbitmq
existentes y reemplace la sección implementación deorder-service
existente por el siguiente contenido:apiVersion: apps/v1 kind: Deployment metadata: name: order-service spec: replicas: 1 selector: matchLabels: app: order-service template: metadata: labels: app: order-service spec: nodeSelector: "kubernetes.io/os": linux containers: - name: order-service image: <REPLACE_WITH_YOUR_ACR_NAME>.azurecr.io/aks-store-demo/order-service:latest ports: - containerPort: 3000 env: - name: ORDER_QUEUE_HOSTNAME value: "<REPLACE_WITH_YOUR_SB_NS_HOSTNAME>" # Example: sb-store-demo-123456.servicebus.windows.net - name: ORDER_QUEUE_PORT value: "5671" - name: ORDER_QUEUE_TRANSPORT value: "tls" - name: ORDER_QUEUE_USERNAME value: "sender" - name: ORDER_QUEUE_PASSWORD value: "<REPLACE_WITH_YOUR_SB_SENDER_PASSWORD>" - name: ORDER_QUEUE_NAME value: "orders" - name: FASTIFY_ADDRESS value: "0.0.0.0" resources: requests: cpu: 1m memory: 50Mi limits: cpu: 75m memory: 128Mi
Nota:
La adición directa de información confidencial, como las claves de API, a los archivos de manifiesto de Kubernetes no es segura y puede confirmarse accidentalmente en los repositorios de código. Lo agregamos aquí por motivos de simplicidad. En el caso de las cargas de trabajo de producción, use Identidad administrada para autenticarse con Azure Service Bus o almacenar los secretos en Azure Key Vault.
Guarde y cierre el archivo
aks-store-quickstart.yaml
actualizado.
Implementación de la aplicación actualizada
Implemente la aplicación actualizada con el comando
kubectl apply
.kubectl apply -f aks-store-quickstart.yaml
En la siguiente salida de ejemplo se muestran los recursos que se han actualizado correctamente:
deployment.apps/order-service configured service/order-service unchanged deployment.apps/product-service unchanged service/product-service unchanged deployment.apps/store-front configured service/store-front unchanged
Prueba de la aplicación
Realizar un pedido de ejemplo
Obtenga la dirección IP externa del servicio
store-front
usando el comandokubectl get service
.kubectl get service store-front
Navegue hasta la dirección IP externa del servicio
store-front
en su explorador mediantehttp://<external-ip>
.Para realizar un pedido, elija un producto y seleccione Agregar al carro.
Seleccione Carro para ver el pedido y, a continuación, seleccione Pasar por caja.
Ver el orden en la cola de Azure Service Bus
- Vaya a Azure Portal y abra el espacio de nombres de Azure Service Bus que creó anteriormente.
- En Entidades, seleccione Colas y, a continuación, seleccione la cola de pedidos.
- En la cola de pedidos, seleccione Service Bus Explorer.
- Seleccione Ver desde el inicio para ver el pedido enviado.
Pasos siguientes
En este tutorial, ha usado Azure Service Bus para actualizar y probar la aplicación de ejemplo. Ha aprendido a:
- Cree un espacio de nombres y una cola de Azure Service Bus.
- Actualice el archivo de manifiesto de Kubernetes para usar la cola de Azure Service Bus.
- Pruebe la aplicación actualizada mediante la realización de un pedido.
En el siguiente tutorial aprenderá a escalar una aplicación en AKS.
Azure Kubernetes Service