Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Con Kubernetes, puede usar servicios PaaS, como Azure Service Bus, para desarrollar y ejecutar aplicaciones.
En este tutorial 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.
En este tutorial se crean recursos de Azure Service Bus facturables. Para completar estos pasos, use una identidad que pueda crear y administrar recursos Service Bus y actualizar las cargas de trabajo de AKS en el grupo de recursos, como Colaborador o Propietario.
Este tutorial requiere la instalación del escritorio de AKS.
Creación de variables de entorno
Use el CLI de Azure para crear las siguientes variables de entorno que se usarán para los comandos de este tutorial:
LOC_NAME=westus2 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.
En este flujo, order-service envía mensajes a la cola orders mediante la regla de autorización sender y la clave que cree en esta sección.
Use el CLI de Azure para crear las siguientes variables de entorno que se usarán para los comandos de este tutorial.
Cree un espacio de nombres de Azure Service Bus mediante el comando
az servicebus namespace create.az servicebus namespace create --name $SB_NS --resource-group $RG_NAME --location $LOC_NAMEContinúe cuando el comando se complete correctamente y devuelva los detalles del espacio de nombres.
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_NSCompruebe que la cola existe antes de continuar:
az servicebus queue show --name orders --resource-group $RG_NAME --namespace-name $SB_NS --query name -o tsvCreació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 SendObtenga las credenciales de Azure Service Bus para su uso posterior mediante los
az servicebus namespace showcomandos 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 tsvGuarde estos valores para el paso de actualización del manifiesto:
-
<REPLACE_WITH_YOUR_ACR_NAME>: el nombre del Azure Container Registry de los tutoriales anteriores. -
<REPLACE_WITH_YOUR_SB_NS_HOSTNAME>:$SB_NS.servicebus.windows.net. -
<REPLACE_WITH_YOUR_SB_SENDER_PASSWORD>: elprimaryKeyvalor de la salida del comando.
-
Actualización del archivo de manifiesto de Kubernetes
Vaya a Proyectos en el escritorio de AKS y seleccione el que creó en el tutorial anterior,
my-dev-frontend.Seleccione la pestaña Recursos y, a continuación, seleccione Cargas de trabajo>Implementación: order-service.
Seleccione el Editor.
Quite las secciones StatefulSet, ConfigMap y Service existentes
rabbitmq. Reemplace la sección Implementación existenteorder-servicepor el siguiente contenido. Copie y pegue el 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 startupProbe: httpGet: path: /health port: 3000 failureThreshold: 5 initialDelaySeconds: 20 periodSeconds: 10 readinessProbe: httpGet: path: /health port: 3000 failureThreshold: 3 initialDelaySeconds: 3 periodSeconds: 5 livenessProbe: httpGet: path: /health port: 3000 failureThreshold: 5 initialDelaySeconds: 3 periodSeconds: 3
Nota:
Añadir directamente información confidencial, como claves de API, en los archivos de manifiesto de Kubernetes no es seguro y podría subirse accidentalmente a repositorios de código. En este ejemplo se agrega 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.
Para conservar la actualización, seleccione Guardar y aplicar.
Comprueba que la implementación actualizada
order-servicealcanza un estado correcto en la vista de carga de trabajo antes de continuar.
Implementación de la aplicación actualizada
Implemente la aplicación actualizada mediante el
kubectl applycomando .kubectl apply -f aks-store-quickstart.yamlEn 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 unchangedCompruebe que se está ejecutando la implementación actualizada.
kubectl get pods
Continúa cuando los pods de la aplicación estén en estado Running.
Prueba de la aplicación
Realizar un pedido de ejemplo
Escritorio de AKS
Obtenga la dirección IP pública yendo a Recurso>Red>Servicio: store-front>IP externa.
Línea de comandos
Obtenga la dirección IP externa del servicio
store-frontusando el comandokubectl get service.kubectl get service store-frontSi
EXTERNAL-IPes<pending>, espere un minuto y vuelva a ejecutar el comando hasta que aparezca una dirección IP pública.Navegue hasta la dirección IP externa del servicio
store-fronten 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.